Install attribution
See which Apple Ads keyword brought each paying user. Fload's install attribution SDK tells Fload where each install came from, using Apple's own attribution, and Fload joins it to the revenue it already reads from RevenueCat.
What it does for you
- Revenue per Apple Ads keyword. Fload sees the campaign, ad group and keyword Apple credits for each install, then adds up what those users paid. You stop guessing which keywords pay back.
- Apple's numbers, not a model. On iOS the SDK asks Apple's AdServices framework for a signed attribution token. Fload swaps that token with Apple for Apple's own record, on Fload's server.
- Android too. On Android the SDK reads Google Play's Install Referrer: the campaign link an install came from.
- No tracking. No IDFA, no advertising ID and no App Tracking Transparency prompt. Apple says AdServices "does not engage in tracking as defined under the App Tracking Transparency framework".
The SDK is small and open source (MIT). It records one thing, where the install came from. It sends no events, screens, sessions or purchases. Revenue comes only from RevenueCat, never from the phone.
Set it up
- 1
Get your key
In Fload, open Connectors, then Attribution. Press Create key.
- 2
Add the SDK
Pick your stack below. One package, one line.
- 3
Pass your user id
RevenueCat's app user id links installs to revenue.
- 4
Ship it
Installs arrive as people open the new version.
Before you start
- Connect RevenueCat, so Fload can add up what each install paid.
- Connect Apple Ads, so Fload can show your campaign and keyword names next to Apple's ids.
- Get your app's write key.
Pick your stack
- SwiftUISwift Package, set up in your App's init.
- UIKit and Objective-CSwift Package, set up in your app delegate.
- AndroidKotlin or Java, set up in your Application class.
- FlutterOne plugin for iOS and Android, set up in main().
- React NativeOne npm package for bare React Native apps.
- ExpoThe same package, in development builds.
- Kotlin MultiplatformThe native SDKs, called from each platform.
- Capacitor and IonicA Capacitor plugin over both native SDKs.
- CordovaA Cordova plugin over both native SDKs.
- .NET and MAUIA NuGet package for .NET for iOS and Android, with or without MAUI.
Can't ship an app update right now? See Attribution without an app update. Building your own client? See the HTTP API.
What each SDK sends
Each install is sent once, on the first launch of an app version that has the SDK.
| Data | iOS | Android |
|---|---|---|
| Where the install came from | Apple's AdServices attribution token | The Play Install Referrer, with its click and install times |
| A random install reference | Made by the SDK, reset on reinstall | Made by the SDK, reset on reinstall |
| Your app user id | Only when you call setUserId | Only when you call setUserId |
| App details | Bundle id, version and build | Package name, version name and code |
| Device details | OS version, device model and locale | Android version, device maker and model, and locale |
| First launch time | Yes | Yes |
What it never sends: the IDFA, the advertising ID, the Android ID, a device name, screen size, timezone or carrier. The SDK never logs your key, Apple's token, the referrer or the user id.
Details for your App Store privacy label and Play Data safety form are on Privacy.
Good to know
- Existing users count once. The first launch of an app version with the SDK counts as an install, for people who installed before too. Apple's token still tells Fload whether that device's install came from Apple Ads.
- Reinstalls are new installs. So is a phone restored from a backup.
- It works offline. The SDK keeps the install on the phone and sends it when the network is back.
- The key is safe to ship. It can only report installs for one app. It can't read anything.