Which ad brought them?

Play this lesson

Which ad brought them?

Shard Garden ran ads on two ad networks this month and paid a creator for a video. 7,000 new players arrived. Kai asks Theo which of the three to keep paying for.

To answer, Theo needs attribution: matching each install to the ad that led to it. The web, Android and iPhones each do it differently.

On the web: the link says where

On the web, the link in the ad carries labels that Google Analytics reads. Its help pages list them:

utm_source: who sent the player, like a newsletter.
utm_medium: the kind of ad, like email or cpc.
utm_campaign: the promotion.
utm_content: "Use to differentiate creatives", two versions of one ad.

Read the link

the link under the video
shardgarden.app/?utm_source=creator_mo&utm_medium=video&utm_campaign=co_op_launch

The creator makes a second video with the same campaign. What does Theo add so the two videos can be told apart?

  1. utm_content, with one value per video
  2. A second utm_medium
  3. Nothing: utm_source already tells them apart
Show the answer

utm_content, with one value per video

Both videos come from the same source, in the same medium, for the same campaign. utm_content is the label Google made for telling creatives apart.

On Android: the install referrer

On Android, the Play Store keeps the referrer from the store link a player tapped. Google's Install Referrer API lets the game read it once it is installed, together with when the click happened and when the install began.

So Remy's first-launch code asks the Play Store for the referrer and logs it with the player's first event.

On iPhones: ask first

Apple calls it tracking when an app collects data about people and shares it with other companies to follow them across apps and websites. Since iOS 14.5, an app must ask permission first, with the App Tracking Transparency prompt.

Until a player says yes, the advertising identifier that ad networks used to match installs returns all zeros.

Quick check

On iOS 14.5 and later, Remy's code can read a player's advertising identifier without asking.

Show the answer

False

Without permission from the App Tracking Transparency prompt, the identifier is 00000000-0000-0000-0000-000000000000. Every player who says no looks the same.

Counting without knowing who

Apple's AdAttributionKit tells the ad network that its ad won an install, without saying who installed. The message, a postback, carries no user or device data.

The game sets a conversion value, a number for what the player did, like finishing the first co-op garden. There are three windows: days 0 to 2, 3 to 7 and 8 to 35. Each postback comes after a random delay of 24 to 48 hours for the first, and up to 144 hours for the others. Ads seen by only a few players get less detail, so no one can be picked out.

Quick check

A player finishes their first co-op garden on day 1, and Remy updates the conversion value without locking it. When does the ad network hear?

  1. After the first window ends on day 2, then 24 to 48 hours later
  2. The moment the garden is finished
  3. Never: postbacks carry nothing about play
Show the answer

After the first window ends on day 2, then 24 to 48 hours later

By default the system waits for the window to close, then adds a random 24 to 48-hour delay, so a single postback cannot be matched to one player's moment. A lock ends the window early but keeps the delay.

True story: a US$10 billion question

On 2 February 2022, Meta reported its results for 2021. Its chief operating officer, Sheryl Sandberg, described two problems Apple's changes made for advertisers: "the accuracy of our ads targeting decreased", and "measuring those outcomes became more difficult."

Its chief financial officer, Dave Wehner, put a number on it: "we believe the impact of iOS overall as a headwind on our business in 2022 is on the order of $10 billion".

Source: Meta: Fourth quarter 2021 results call transcript (2 February 2022), s21.q4cdn.com

Quick check

Without advertising identifiers, how can Theo still judge an iPhone campaign?

  1. From each campaign's postbacks: installs, plus conversion values for early play
  2. By asking every new player which ad they saw
  3. It cannot be judged at all
Show the answer

From each campaign's postbacks: installs, plus conversion values for early play

Postbacks count the installs each campaign won, and the conversion values show what those players did in their first days. Theo gets totals per campaign, never a list of players.

From installs to money

Now Theo knows roughly which ads brought which players, and what those players earn over time. The next question: does each ad earn back what it cost, and how long does that take?

Bolt says: Next: pick a bid that pays back.

Fact-checked 12 October 2026