What’s new for the Ad Tech announced during the WWDC 2022

Antoine Barrault
Teads Engineering
Published in
8 min readSep 5, 2022

Disclaimer: I work at Teads, as well known as the Global Media Platform. We are an end-to-end platform that helps publishers monetize their content and connects Advertisers to nearly 2 billion people every month in a respectful way. I work on the inApp team, where we made an SDK to help publishers integrate Teads creatives inside their apps.

On the 7th of September, Apple will hold an event where the next iPhone will be revealed. At this event, they will also announce a date for the launch of the next iOS version: iOS 16. Generally, the launch happens one week after the event. We can expect a launch on Monday 12th of September. So now is a good time, if you did not do already, to see the content posted during the last WWDC.

Apple released some videos relevant to the Ad Tech industry. At Teads, we take very seriously the fact of being up to date with new technologies. It is essential for us to watch Apple announcements every year to be sure we are ready as soon as possible. So as I watched the videos related to AdTech myself, I will try to extract the new information that it contains to pass it to you.

New Platform updates

With the venue of iOS 16, there are new features added to the system about privacy and security.

Location attribution

With the new update, the name of the app using the user location will appear in conjunction with the location symbol system-wide, so now, if an app uses your location, you will know which app, even outside the app.

Pasteboard access

With the last version of iOS, Apple started to warn the user when an app used the clipboard. Now to access the shared clipboard or simply paste the content from another app, you have to ask permission to do it. If you don’t want to ask for permission, Apple offers controls that allow the user to paste the content of the clipboard with a tap.

Device name entitlement

Before iOS 16, an app could access the device name (Antoine’s iPhone). Now the API UIDevice.name will return the name of the model of the device -> iPhone / iPad. An app developer will not know out of the box that my iPhone is called Antoine’s iPhone. But if this information is critical for your business, you can still access this name using the device name entitlement (com.apple.developer.device-information.user-assigned-device-name). But remember, as it wrote on Apple documentation: Your app doesn’t use the user-assigned device name for tracking or fingerprinting. And sharing the device name with third parties other than cloud-hosting service is not permitted.

New Privacy Nutrition labels video

At the WWDC 2020, Apple introduced privacy nutrition labels. It is equivalent to food nutrition labels found at the grocery store. This year they added a new video explaining it in detail. There is nothing new, but it is interesting to watch if you don’t know what it is and how to create it. Also, they present a slide showing that an app that integrates SDKs are responsible for the privacy information used by those SDKs.

Example of how an SDK should communicate about privacy information used.

Ads and SharePlay

Last year Apple introduced Share Play, a way to watch a video synchronized with others. It can be a live event video or a VOD. But what about if you want to display ads on the stream? Ads can have a different duration depending on the users. Or maybe one will see an ad, and the other will see no ads.

A video stream shared between two users with ads inside

Apple gives us two different policies to display the ads, no waiting policy or wait for policy. The default one is no waiting. If no waiting is used, the user watching the ad will miss part of the content presented during the ads. On the other side, if we apply the waiting policy, the person without ads or with a shorter ad will have to wait until the other users finish watching their ads because the video stream will remain on pause.

Some best practices suggested by Apple:

  • Try to offer ad breaks of similar durations
  • For live events use the default policy no waiting
  • For VOD use the waiting policy

App Tracking Transparency

For Apple privacy is a fundamental human right. I think that they are right on this point and as a user, I want to be in full control of how companies are using my data and which data I share with them. As an engineer in the AdTech industry, I believe it is more productive and efficient to understand how Apple is thinking and not to try to fight them.

Tracking is the fact of linking user or device data collected inside your app with the data collected from others, it can be other apps, websites, or even offline data, to use for targeting ads or advertising-measurement purposes. Important note that if you share that kind of information between apps of the same publisher it will not be considered tracking.

If you share data with an SDK installed inside your app it is considered tracking, if you want to share this data you will need to have the user's permission.

App tracking transparency was created to give to the user the choice to decide if he wants to be tracked. If the user says no you can still gather information about him for your internal uses, for example, to better understand the use he made of your app but you will not be able to share it with third parties.

In AdTech it can be a problem if the user denies the ATT permission because we will not be able to track him but there are alternatives for serving ads to the user that are not using tracking, we can use first-party ads (ads directly presented by the publisher without third party interventions) or contextual ads for example.

There is another important thing in the ad industry is advertising measurement. It is mandatory for a big part of the ad inventory. But what is advertising measurement? To give a bit of explanation we need to measure when a user taps on an ad, and when the user does some action after clicking on the link (downloading another app, buying something…). And this measurement needs to be passed to the ad network, the app owner, and the brand responsible for the ad.

SKAdNetwork 4.0

SKAdNetwork is Apple’s privacy-preserving ad-attribution system, that helps the three actors (ad networks, publishers, advertisers)of this network of doing their business while respecting user privacy.

Ad flow example using SKAdNetwork

Crowd anonymity to better respect privacy

With the launch of iOS 16 will begin version 4.0 of the SKAdNetwork, this version will introduce a new feature called crowd anonymity, which is a method used to pass information to the ad network depending on the number of installations of the app. If the app has few installations the attribution data sent will be limited. With the augmentation of the installations, more data will be sent as it becomes easier to respect user privacy based on the crowd effect. There are 3 levels (Low, Medium, and High).

New attribution values

Another change came in conjunction with the crowd anonymity, the introduction of two new attribution values. First, the source identifier will replace the campaign field and will pass from two to four digits. Depending on the crowded anonymity you will receive two to four digits. The digits that will be always sent are the last ones. It is important to consider this when you assign a value to each number of this identifier.

Examples of crowd anonymity for the source identifier

The second thing to change is the conversion value (that is a 6 bits value today), it will be slipt into two new values: a fine-grained value (that will be the equivalent of the conversion value we already have today) and a coarse-grained value that will only have three possible values (low, medium, hight). Again the value received by the advertiser will depend on the crowd anonymity and only one of those two values will be sent.

Examples of crowd anonymity for the conversion value

Two new conversions postback

Previously the SKAdNetwork had one conversion postback sent. Now there will be three, the first one will have the fine value of the conversion value and the others only the coarse. Not that only the auction winner and the app developer will have the additional postbacks. The first postback is sent in the interval of 0–2 days, the second 3–7 days, and the last one 8 to 35 days.

SKAdNetwork attribution on the Web

Now it is possible to use SKAdNetwork for ads on the Web (it will only work on safari for now) but only ads that advertise an App Store page.

SKAdNetwork flow when the user clicks on an Ad on the Web

To make this works the link on the Web should work like this:

The href value is the app link, the attributionDestination is the place where Apple will try to fetch a signed ad impression, and the attributionSourceNone is an identifier that will be passed to the ad network to retrieve the right impression.

When the user will open the link inside the App Store, the device will do a POST on the following URL:

https://youradnetwork.com/.well-know/skadnetwork/get-signed-payload

With this body:

{
"source_engagement_type": "click_to_App_Store",
"source_domain": "example.com",
"source_nonce": "ABIGIDENTIFIERTOKNOWWHEREITFROM",
"version": 3
}

The ad network needs to respond something like this:

{
"version": "4.0",
"ad_network_id": "fr.asapps.6nations",
"iTunes_item_id": "414001342",
"source_nonce": "ABIGIDENTIFIERTOKNOWWHEREITFROM",
"source_domain": "example.com",
"fidelity_type": 1,
"timestamp": 1661807742
}

As I understand here the source_domain is the domain where the ad was tapped.

The process of the SKAdNetwork on the Web is not very well documented, for now, Apple did not release the full explanation yet, the only information that can be found are inside the WWDC video.

To finish this article, I would like to share Apple's privacy pillars:

  • Data minimization (use only the data you need)
  • On-device processing (do not send sensitive data on your server, do on-device treatment if possible)
  • Transparency and control (explains what data you are using and lets user controls what they send)
  • Security protections (Make sure the data transiting is protected)

For more details, you can watch the following videos:

--

--

Antoine Barrault
Teads Engineering

I write Swift code. Dad of two awesome children with a wonderful wife. Currently Mobile engineer @ Teads.