iAd vs. AdServices: What’s the Difference?
How do these two frameworks differ, and what does this change mean for your app?
Josh Holtz
You’ve likely heard that iAd was deprecated by Apple following the release of iOS 14.3 in favor of the AdServices framework. Are you wondering how these two frameworks differ and what this change means for your app?
In short, iAd gave in-depth attribution information but only if users opted in through App Tracking Transparency (ATT). The new AdServices framework is more focused on privacy, and while it gives less depth on attribution data, you get it for all users.
Using RevenueCat, you can view AdServices attribution data within Charts to quickly filter, segment and track your ASA campaigns’ cohorts over time. With more insight into which ads are converting and how valuable those users from ASA campaigns are, you can make more profitable growth decisions with your ASA spend.
iAD | AdServices | |
Without ATT / denying ATT | No attribution data | Attribution data |
Allowing ATT | Attribution data with click date | Attribution data with click date |
Allowed in children’s apps | No | Yes |
Available platforms | Only iOS but deprecated as of iOS 14.5 | iOS 14.3+ and macOS 11.1+ |
Attribute app-download campaigns that originate from… | Apple Search Ads Campaigns | App Store, Apple News, Stocks |
Below we’ll explore how the frameworks differ, what data you can collect with each and how RevenueCat can help you maximize your return on ad spend.
Two Attribution Frameworks, Two Different Privacy Approaches
Both iAd and AdServices are Apple frameworks that interface with Apple Search Ads, an advertising channel Apple offers to help developers reach more customers through sponsored results on the App Store. Users can install apps directly from these ads, and apps can get information about which ad the install came from.
This is where iAd and AdServices come into play: These frameworks are used within apps to get attribution details. They allow the developer to know when an app was installed from an ad, including detailed information like which campaign, ad group, and keyword drove the conversion.
However, while both serve the same general function, privacy is where the frameworks start to differ.
What is the iAD framework?
iAD launched in 2010 with iOS 4.0 and was originally an in-app ad network to allow developers to sell ad space within their apps. When Apple released Apple Search Ads in 2016, the in-app ad network version of iAd was shut down. iAd then transitioned into the framework we know today. It allowed developers to get attribution details from their ads within App Store search results.
This history lesson provides helpful context for understanding that iAd was designed before user tracking and privacy was as critical as today to both Apple and consumers. As a result, iAd is susceptible to third parties tracking and gaining detailed information about users without their consent.
Below is an example of attribution information using iAd. This information could all be fetched on device, which is a critical privacy flaw. Any third-party SDKs installed could easily read this information, which is available for 30 days.
1{
2"Version3.1" = {
3"iad-attribution" = true;
4"iad-org-name" = "org name";
5"iad-org-id" = "40669820";
6"iad-campaign-id" = "542370539";
7"iad-campaign-name" = "campaign name";
8"iad-purchase-date" = "2020-08-04T17:18:07Z"
9"iad-conversion-date" = "2020-08-04T17:18:07Z";
10"iad-conversion-type" = "newdownload";
11"iad-click-date" = "2020-08-04T17:17:00Z";
12"iad-adgroup-id" = "542317095";
13"iad-adgroup-name" = "adgroup name";
14"iad-country-or-region" = "US";
15"iad-keyword" = "keyword";
16"iad-keyword-id" = "87675432";
17"iad-keyword-matchtype" = "Broad";
18"iad-ad-id" = "542317136";
19}
20}
Apple introduced App Tracking Transparency (ATT) in iOS 14.5. For apps to retrieve detailed attribution information, users need to tap “Allow” on a prompt that asks them if they want the app to track their activity across other companies’ apps and websites. If users click “Ask App Not to Track” then developers get none of this information.
While necessary for user privacy, this prompt is a big roadblock to determining the success of advertising campaigns. In addition, privacy concerns surrounding iAd meant that it wasn’t allowed in children’s apps at all.
What is the AdServices framework?
Apple gave developers a new framework before the introduction of ATT in iOS 14.5, introducing AdServices in iOS 14.3 and marking iAd as deprecated.
AdServices is built with users’ privacy in mind. Instead of getting on-device attribution information, AdService provides a token like this one:
1UIxK4CLVhzupv2hgFQMdIULB88Nf/AaWXMqWL38LHEkCa0YKK9RJ2gJeMR+Xgak21YStB224NujcF20q//K11FEHMwZFywTblQAAAVADAAAA/gAAAIBvo94qiAwNeedX8q2gFLScROI7cdNu1AdvFKdrVCcG/x3rWke5oT08dVoM6Onl2sDhp4mFa/ZYGJVbkXhyfgyGhhvkUK+QwqBK15OYr1QDrHKnc/BlIHrtkTKUbhJ7b+sVjkWNcUMfVhvj5zoimQnMqMu5hgNaHAa/svlJXOsW7AAAABUPsL6djRdIsyBWT9aLXqvlxDbH0GgAAACfAbn8Omt9myjYg+7P2qHr3fVVx1gBAAAAhgAHRRDShz72sTaG1c+lqyc0WGKmBnBbL56582Fp0/S4CoFOwYKGjnFuUsZ1Hk8pomeA/sZS3tKcuaiPbzIAMnZF7ibCwdYrnk/LH41D7aYYNDYutPDusqS38wLj3SqbnIEQnRAk3trfdvERTZQx6fv11C4ENcmL4ctkWXNxYi+8Yc9sZ2l9AAAAAAAAAAAAAAABBEYXAAA=
This token is then used to fetch attribution data through the AdServices REST API. The attribution data that is fetched from this endpoint is still rather limited compared to what iAd offers, though.
1{
2 "attribution": true,
3 "orgId": 40669820,
4 "campaignId": 542370539,
5 "conversionType": "Download",
6 "adGroupId": 542317095,
7 "countryOrRegion": "US",
8 "keywordId": 87675432,
9 "adId": 542317136
10}
11
AdServices only returns the conversion type (either “Download” or “Redownload”), country or region, and several IDs. This is because the AdServices REST API does not require any authentication. AdServices doesn’t give names for the account holder (organization), campaign, ad group, or keyword easily. These names can be fetched using the Campaign Management API, which requires secured access with OAuth 2.0 authentication.
The good news? You’ll likely make up for what you lose in data richness in the number of users for whom you’re now able to get attribution data. Unlike iAd, AdServices doesn’t require the user to opt-in to the App Tracking Transparency prompt, so you’ll be able to collect the attribution data mentioned in this section for all users, even if you operate a children’s app. This is because AdServices tracks installations in a privacy-focused manner and doesn’t give up the names of the organization, campaign, ad group, or keyword without authenticated access.
Prompting for ATT will give an extra “clickDate” data item in the AdServices attribution payload if that is something you need.
Unlock Apple Search Ad Insights with RevenueCat’s AdServices Integration
As of August 9, 2022, RevenueCat’s Apple Search Ads integration supports AdServices. By using this integration, you will see what percentage of your customers and your revenue have come from Apple Search Ads. Here is an example of the Monthly Recurring Revenue chart segmented by ad campaign:
AdServices is the future of Apple Search Ads attribution. It’s a privacy-focused framework that doesn’t require opt-in approval for app users. This means that developers will potentially be getting less information from attributions (compared to iAd) but will always get the attribution payload since an ATT prompt isn’t needed.
Step 1: Update SDK and Code
The first step is to update your iOS SDK to version 4.10.0 and add one new line of code after Purchases.configure
:
Purchases.shared.attribution.enableAdServicesAttributionTokenCollection()
This integration is also available starting in these cross-platform SDK versions:
- React Native: react-native-purchases 5.0.0-beta.4
- Flutter: purchases-flutter 4.1.0
- Cordova: cordova-plugin-purchases 3.0.0-rc.5
Step 2: Find Integration
Next, enable the Apple Search Ads integration from your RevenueCat dashboard.
Go to the Integrations page and click on the “Apple Search Ads” integration.
Step 3: Add Integration
Now all you have to do is click “Add Apple Search Ads Integration” if you have not previously added it.
You are now all done with the integration if you are a user of Apple Search Ads Basic!
Step 4: Configure Integration (Optional, for Advanced Users)
If you are an Advanced user, you will most likely want to grant RevenueCat read access to your Apple Search Ads account. This API access is needed if you want RevenueCat to display the campaign and ad group names. As mentioned earlier, AdServices attribution payloads only contain the IDs for campaigns and ad groups.
There is now an additional step that RevenueCat needs to do for attribution to fetch the names, which requires an authorized request to Apple through the Campaign Management API.
Step 5: Submit to App Store and Enable Campaigns
All that is left is submitting your app for App Store review and ensuring your Apple Search Ads campaigns are running.
This integration is available for Pro and Enterprise plans as well as the legacy Grow plan. You can view the full documentation here.
Summary
AdServices is the future of Apple Search Ads attribution. It’s a privacy-focused framework that doesn’t require opt-in approval for app users. While using it means that developers will potentially get less information from attributions than they did with iAd, they will always get the attribution payload since an ATT prompt isn’t needed.
In-App Subscriptions Made Easy
See why thousands of the world's tops apps use RevenueCat to power in-app purchases, analyze subscription data, and grow revenue on iOS, Android, and the web.