![]() Since advertiser budgets are global across data centers, this means that the spend information in each data center is incomplete and may underestimate the actual spend of any given advertiser. ![]() However, this creates an issue where the total spend computed in each data center only accounts for engagement events received by that data center but not the others. When the user engages with an ad, the callback event is routed to one of the data centers where it is processed by the callback pipeline. Twitter has multiple data centers, and each one has a replica of the entire ad serving pipeline, including its own Ads Callback pipeline, Live Spend Counter, and Spend Cache. The campaign would get an additional 1,000 free clicks. The Spend Cache would report only $90 spent when in reality the campaign has already spent $100. Suppose the Ads Callback pipeline or the Live Spend Counter experiences a failure causing the Spend Cache not to get updated, missing $10 worth of ad engagements. On each incoming ad request, the Ad Server pipeline queries the Spend Cache to get the current spend of the campaign and determines if the campaign should be served based on the remaining budget. Once the Live Spend Counter receives this event, it computes the aggregate spend from the engagements, and updates the campaign spend in the Spend Cache. When a user engages with an ad on Twitter, we send an engagement event to our Ads Callback pipeline. See this article for more info on some of these services. Note: Ad Server is a term we’ll use here to refer to multiple services that are involved in serving ads to a user.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |