Skip to main content

What it is

Google App Campaigns lose iOS installs when there is no click identifier and no IDFA to match on, which is the normal state once a user declines App Tracking Transparency. Integrated Conversion Measurement (ICM) closes that gap. Google’s On-Device Measurement (ODM) SDK keeps the ad click context on the device and turns it into an encrypted value, odm_info. Linkrunner reads that value when the SDK initializes and sends it with the install, so Google can match the conversion without an identifier ever leaving the device. Set this up if you run Google App Campaigns for your iOS app. Google’s SDK requires iOS 12 or later, and Google reports the improved coverage for users on iOS 14 and later.
Google keeps ODM inactive for users located in the European Economic Area, the United Kingdom, and Switzerland. For those users the SDK returns nothing and the field is left out, so ICM recovers no installs there.
On Android there is nothing to install. Google applies the same ICM improvements automatically through the App Conversion API, mainly for EEA users and users who opt out of device-level permissions.
ICM complements SKAdNetwork, it does not replace it. Keep your SKAdNetwork integration in place.

Prerequisites

ICM requires a supported Linkrunner SDK version and three setup steps. It stays inactive until everything is in place, and it fails quietly rather than loudly.

Minimum SDK versions

Older versions do not collect odm_info or provide the consent API.
1

Create an iOS link ID in Google Ads

Link IDs are per platform. An Android link ID does not cover your iOS app, and without an iOS one Google has nowhere to send the conversion, so ICM produces nothing no matter what the app does.In Google Ads, go to ToolsData ManagerThird-party app analytics, create a link ID with provider ID 9936233049, and select the iOS platform and your app.Then in Linkrunner, go to Integrations → Google Ads, open the three-dot menu on the Google Ads row, and paste it into iOS Link ID. Click Save Link IDs.Full walkthrough with screenshots: Create Link ID for Android/iOS App.
2

Add Google's ODM SDK to your iOS app

Linkrunner does not bundle it. The SDK is detected at runtime, so apps that skip ICM carry no extra dependency and no size increase.Your SDK’s installation section has the exact pod or package to add, along with any linker flags: iOS, React Native, Flutter, Expo, Unity.If your app already uses the Firebase iOS SDK 11.14.0 or later, the FirebaseAnalytics pod brings it in and there is nothing to add.
3

Report consent with setConsent

Google’s App Conversion API treats the consent parameters as required whenever their value is known, so an install that arrives with no consent state is matched with less information. Call setConsent with your consent values before you initialize the SDK, and again whenever the user changes their choice.This applies on Android too, even though there is no ODM SDK to add there. See Consent signals below for what each parameter means, and Send Consent for what to report and how to collect it.
Everything else is automatic. There is no ICM API to call and attribution still comes back through getAttributionData.

Platform support

ODM is an iOS-only SDK. There is no Android equivalent and none is needed, because Android installs reach Google through the App Conversion API. That API reads the same consent signals, so setConsent still matters on Android.
setConsent takes three signals, each of which is granted, denied, or unknown. Linkrunner forwards them to Google with your installs and events. A signal left unknown is dropped from the request rather than sent as a denial, so Linkrunner never reports a choice your user did not make. Never map unknown to granted. App Tracking Transparency is not a substitute: it governs IDFA access, not Google’s use of ad user data or personalization, and Linkrunner reports ATT status separately. See Send Consent for what to report for users outside the EEA, and how to collect consent manually or from a Consent Management Platform.

Set it up

Android

Report consent for the App Conversion API

iOS

Add the ODM SDK and report consent

React Native

Add the pod and report consent

Flutter

Add the pod and report consent

Upgrade from a pre-ICM SDK version

Update the Linkrunner SDK before adding Google’s ODM SDK or calling setConsent.
Update the dependency in your app’s build.gradle:
Sync Gradle, then follow the Google Ads consent setup. Android does not need the ODM SDK.
Capacitor and Cordova do not support ICM yet.
Need help? Contact support@linkrunner.io