Skip to content
Back to Academia

Programmatic, RTB and display advertising: what to buy and how to measure the effect

04.15The digital ecosystem
On this page

An appliance store in Almaty, the one where order T-310 for a 48,000 ₸ vacuum cleaner was placed, decided this spring to spend on awareness, so that people not yet shopping for a fridge would know its name. For four weeks it ran a video on YouTube and banners on websites and spent 600,000 ₸. The owner opens GA4: on last click the ads brought 9 orders, 66,667 ₸ per order, more than the vacuum cleaner itself. "Switch it off." The contractor who runs the Google Ads account points to another 60 view-through conversions: "That's almost 70 orders at about 8,700 ₸ each. Let's double the budget."

The numbers in this lesson are made up and are no guide to market prices, which the auction sets. They are both wrong, and towards the end of the lesson the store will measure the effect without last click.

How an impression is bought: RTB, SSP and DSP

Programmatic is the automated buying of ad impressions: the advertiser sets the audience, the sites and the price, and algorithms close the deal for each impression. The open market for these impressions runs on RTB (real-time bidding), an auction held in real time: each impression is sold on its own while the page is loading.

Someone opens a news site on their phone. The site's platform, the SSP (supply-side platform), puts the ad slot up on an ad exchange, and the exchange sends a request to the buyers' platforms, the DSPs (demand-side platforms). The DSPs reply with a bid and a creative. Google, acting as the exchange, waits 80 to 1,000 milliseconds for a reply, depending on the format and auction type, and late replies are left out of the auction.

Besides the open auction, Google Ad Manager has deals with invited buyers and deals at a fixed price. The store needs neither, nor a DSP of its own: Google Ads and Yandex Direct buy impressions in their own networks, and the advertiser sets the audience, budget and bid in the ad account.

What you can buy in Kazakhstan

Display advertising suits products that have to be shown to people rather than waiting to be found, and campaigns whose goal is brand awareness rather than leads. In Kazakhstan you can buy it in three places.

Google Ads. Display campaigns show banners across the Google Display Network (GDN): Google cites 35 million websites and apps, plus YouTube and Gmail. Demand Gen campaigns show video and image ads on YouTube, including Shorts, and in Gmail, Maps, Discover and the GDN. Since June 2026 Google has been moving Display campaigns into Demand Gen: first at the advertiser's choice, and later new campaigns will only be created there. Check in the account which bid strategies are available after the move.

Yandex. The Yandex Advertising Network is the websites, apps and Smart TVs of Yandex services and its partners, with contextual, display and video ads. Yandex Direct display campaigns are sold in Kazakhstan too.

Kazakhstani websites, directly. Here a banner is bought from a price list, and the seller sets the price, not an auction. Kolesa Group, for example, publishes a banner price list for Krisha with city targeting and frequency settings.

What follows is a summary of the Law on Advertising as amended up to 17 May 2026, not legal advice. For internet resources the law lifts the requirement to advertise in Kazakh (Art. 6(2)), but the same paragraph requires compliance with the Law on Languages, and its Art. 21 (as amended up to 12 July 2026) says advertising is placed in the state language unless legislation provides otherwise. So agree a Russian-only banner with a lawyer. The advertiser answers for the content and language of the ad (Art. 20(1)) and keeps the ad materials for a year (Art. 16).

Reach, frequency and viewability

After four weeks, the store's Google Ads report looks like this:

YouTube, Video campaignGDN, Display campaign
Cost360,000 ₸240,000 ₸
Impressions600,000600,000
Unique users150,000100,000
Avg. impr. freq. per user4.06.0
Measurable impressions570,000480,000
Viewable impressions456,000240,000
Viewable rate80%50%
Average viewable CPM789 ₸1,000 ₸

Reach and frequency

Google estimates the number of unique users with a model, and someone with a phone and a laptop counts as one person. You still cannot add up the reach of two campaigns: some of the YouTube viewers also saw the banners.

An average frequency of 6 on the GDN hides the spread: according to the "Frequency distribution" columns, 12,000 people saw the banner 10 times or more. The tenth banner with the same fridge tells them nothing new, yet the store pays for every viewable one. A frequency cap is set per day, week or month, and it only works inside one system: Google knows nothing about the same person's impressions on the Yandex network or on Krisha.

Viewability

An impression is counted once the ad has loaded, even if the banner stayed at the bottom of the page. Google checks viewability with Active View: a display ad counts as viewable if at least 50% of its area was on screen for at least one second. A large banner (242,500 pixels or more) needs 30% of its area, and a video needs 50% of its area for two seconds of playback. The same thresholds are set out in the MRC viewability guidelines for desktop.

A viewable impression is an opportunity to see the ad. Whether the person actually looked at the screen, Active View cannot tell, as Google itself says.

The banner is on screen while the person looks away: buying the impression, viewability and the result are three separate steps, and attention is measured separately.
The banner is on screen while the person looks away: buying the impression, viewability and the result are three separate steps, and attention is measured separately.

On the GDN, Google measured 480,000 of the 600,000 impressions and counted 240,000 of those as viewable. The viewable rate is 240,000 / 480,000 = 50%. Divide by all impressions and you get 40%, but then 120,000 unmeasured impressions end up as not viewable when there is simply no viewability data for them. The MRC says viewable impressions as a share of all impressions must not be called the viewable rate, so sites are compared on the same denominator.

The Display campaign was already on the Viewable CPM bid strategy, so the store paid only for the 240,000 viewable impressions. A thousand impressions of any kind cost less on the GDN than on YouTube, but a thousand viewable ones cost more: 1,000 ₸ against 789 ₸.

Where the ads ran

The sites, apps and videos where the ads ran are listed in the Where ads showed report: the data per placement is often too thin to optimise on, but you can see what the banner appeared next to, and unsuitable placements can be excluded in the campaign or for the whole account under Content suitability. If the list shows an app with hundreds of clicks and not a single GA4 session, look into the traffic: Google filters out invalid clicks on its own, and the ones it missed can be sent for a manual review.

Why last click undervalues display advertising

Someone sees the store's banner on a news site on Saturday, then a week later types the store's name into Google on a laptop and buys a fridge. Under last click the order goes to search: the rule gives everything to the last visit, and the banner nobody clicked gets nothing. And if the same person buys the fridge from the store's shop on Kaspi, the website never sees the order at all. People see display ads today and may buy later by another route, so last-click attribution undervalues it. There is one exception: if someone watched a YouTube ad for at least 10 seconds and triggered a key event within three days, GA4 records that touchpoint as google / cpc.

The contractor makes the opposite mistake. View-through conversions are purchases by people who saw an ad, did not interact with any of the store's ads and bought within the conversion window, which is one day by default. The ads reached at least 150,000 people in a city where the store gets about 115 orders a week without any ads. Those 60 may include regular customers who saw a banner the day before they bought, and this number cannot tell you how many of them would have bought anyway.

Both numbers show how the system counts, not what the ads did. What the ads changed will only show up in a comparison with what would have happened without them.

How to measure the effect

What would have happened without the ads is best estimated from a control group: people or cities that saw no ads. Without one, you compare weeks with and without ads, and that estimate is weaker.

Platform studies

Google offers four kinds of such studies, among them Brand Lift (a survey on ad recall and brand awareness), Search Lift and Conversion Lift. Brand Lift is set up through a Google representative and, for Kazakhstan, starts at 5,000 dollars over 10 days. Yandex needs a reach of at least 3 million users, 4,000,000 ₸ per campaign and 285,500 ₸ a day excluding VAT, for at least 14 full days. A store spending 600,000 ₸ a month is nowhere near that. If the budget clears the bar, a test with a control group shows how many conversions the ads caused, and a business in several cities can use cities as the control group: that is a geo experiment.

Branded searches adjusted for the season

A store in one city has a cheaper option: watch how often people search for it by name. You can see that in two places:

  • in Wordstat, on the Dynamics tab, by week and with a region filter: pick the region where the ads ran, or other cities will dilute the uplift. The series below covers all of Kazakhstan, so its uplift is, if anything, understated;
  • in Search Console, under the Query filter → Branded, with data from 11 March 2025; sites with few impressions may not have this filter.

Branded searches can also grow on their own when demand for appliances grows. To separate out the season, record category searches ("buy a fridge", "vacuum cleaner" and so on) next to them and turn them into an index where the baseline is 100. The expected level without ads is the baseline multiplied by that index. The store took eight baseline weeks, four campaign weeks and four weeks of pause, and counted orders from every storefront, the website and Kaspi: display ads do not choose where a person buys. The store ran no sales during those 16 weeks.

Baseline, 8 weeksCampaign, 4 weeksPause, 4 weeks
Category search index100104108
Branded searches a week, Wordstat, Kazakhstan3,000 (2,800 to 3,250)3,800 (3,650 to 3,950)3,280
Expected without ads-3,1203,240
Orders a week, website and Kaspi115 (100 to 130)128122
Expected without ads-120124

For branded searches the picture is clear. On average there were 680 more a week during the campaign than expected, +22%, and even the weakest campaign week (3,650) is above the strongest baseline week adjusted for the season (3,250 × 1.04 = 3,380). Over the pause weeks, searches went back to the expected level: 3,280 against 3,240. That is what an ad effect would look like. But this is a comparison of periods, not an experiment: if a promotion or a competitor's sale happened in the same weeks, there is nothing to separate it out with.

Orders are a different story. During the campaign there were 8 more a week than expected, about 32 over four weeks. But the baseline weeks varied by 30 orders, and four weeks cannot tell you whether that is an effect or ordinary spread. Nor are there signs of delayed purchases in the four pause weeks: 122 orders against an expected 124.

The owner got this report: searches for the store by name rose by about a fifth above the season, each extra Yandex search cost about 220 ₸ (600,000 ₸ for 2,720 searches), Google searches are not included in that figure, and this data cannot tell the extra orders apart from normal fluctuation. Payback is worked out from margin, using unit economics: if the store keeps, say, 7,000 ₸ per order, 600,000 ₸ pays back at 86 extra orders, about 22 a week. Even twice the uplift the test saw falls short of that.

Exercise: a measurement plan for your own display campaign

Take a project where display ads are running or planned. The result is a one-page plan the client sees before launch.

Start the review by putting two numbers side by side: the baseline spread and the uplift you expect. If a business gets 40 branded searches a week and baseline weeks swing between 30 and 50, a rise of a fifth is 8 searches, less than the normal spread, and a four-week test will show nothing. Then either run the campaign longer or tell the client plainly that this method cannot measure the effect.

The decision rule is written in numbers. "We continue if every campaign week is above the strongest baseline week adjusted for the season" is a working rule: for the store it held for searches (3,650 is above 3,380) and failed for orders (an average of 128 against a threshold of 130 × 1.04 = 135). "We'll see from the results" is not a rule: after launch, any number can be explained in the campaign's favour.

Video: how RTB works

Programmatic and the RTB auction, in plain language

Need help applying this to your analytics? Discuss your project with Goodlabs →