To get Google’s Integrated Conversion Measurement (ICM) on iOS, you need an iOS App campaign for installs, on device measurement (ODM) from either the Google Analytics for Firebase SDK or Google’s standalone GoogleAdsOnDeviceConversion SDK, an attribution partner SDK at or above its documented floor with its Google setting switched on, and the conversion info fetched at first launch before first_open is sent. The condition that changes the answer is region: as of 29 September 2026, Google’s documentation says on device measurement is inactive for users in the EEA, the UK and Switzerland, so none of this produces ICM claims for them yet.
Scope: iOS App campaigns for installs, measured through AppsFlyer, Adjust or Singular, by the Firebase or standalone SDK route, checked against each vendor’s own pages on 29 September 2026. Google changes this area often, so check the date before you rely on a version number.
I have run iOS App campaigns with ICM through AppsFlyer, on a subscription app in March 2026. The lesson I would pass on from that account had nothing to do with ICM itself, and it is the last step of the test install below.
What is the difference between ODM and ICM?
ODM is the signal. ICM is where the result shows up.
Google’s page About on-device conversion measurement for iOS App campaigns describes two ODM variants: one uses first party data such as email or phone number from your sign in flow, the other uses what Google calls “de-identified, temporary app event data”, derived from signals like IP address and timestamps. ICM on iOS depends on the second one.
Google’s page About Integrated Conversion Measurement for App Campaigns lists four iOS steps: an active iOS App campaign for installs, your attribution partner’s data imported into Google Ads, ODM using event data, and the latest partner SDK. Server to server integrations must pass the ODM info string to the partner. On Android the same page says no action is required.
So ODM makes Google’s install claims possible, and ICM is Google sending those claims into your MMP, where they appear as probabilistic attributions.
What does each integration route require?
The table puts the five routes side by side, one row per route.
| Route | Documented minimum | Setting | Region scope | Verification step | Source, checked |
|---|---|---|---|---|---|
| Firebase (GA4F) | iOS 12+. GA4F 11.14.0 per Google’s help page and Firebase tutorial; 12.12.1+ per Google’s iOS guide (unresolved, see below) | Link the Google Analytics property to the Google Ads account. The FirebaseAnalytics pod already includes GoogleAdsOnDeviceConversion |
Inactive for users in the EEA, UK and Switzerland | Launch with -FIRDebugEnabled, look for the “framework is linked” log, then the _psmvalue_gads user property after about 15 seconds |
Google 12119136, Firebase tutorial, 29 Sep 2026 |
| Standalone GoogleAdsOnDeviceConversion SDK | No minimum stated on Google’s page. Latest release 3.7.0 (1 Sep 2026). If you also install GA4F, match Google’s version map | setFirstLaunchTime with the real first launch date, then fetchAggregateConversionInfo(for: .installation), then pass the result as odm_info |
Google’s ODM page excludes the EEA, UK and Switzerland; this page’s troubleshooting line contradicts it (see below) | Confirm a non empty info string before first_open is sent, and odm_info on the first install call |
Google 16384720, Google developer page, GitHub repo, 29 Sep 2026 |
| AppsFlyer | iOS SDK 6.17.9+, plus Firebase 11.14.0+ or the standalone SDK | Advanced Data Sharing in the Google Ads integration. first_open imported as a conversion. IDFV with every app open and in app event, IP address with every app open |
Not available for iOS users in the EEA, UK and Switzerland | Raw data match_type: srn for deterministic claims, probabilistic for ICM claims |
AppsFlyer bulletin, AppsFlyer setup, 29 Sep 2026 |
| Adjust | iOS SDK 5.4.1+ with the ODM plugin (tested with GoogleAdsOnDeviceConversion 3.0.0), plus Firebase 11.14.0+ or the standalone SDK | “Enable probabilistic modeling” in the Google Ads partner’s attribution settings. Call initSdk as early as possible |
Adjust’s pages name no regional limit; Google’s ODM exclusion still applies | Adjust documents no verification step on the pages I checked | Adjust Dev Hub, Adjust Help, 29 Sep 2026 |
| Singular | Native iOS SDK 12.8.1+ (Unity 5.5.0+) | enableOdmWithTimeoutInterval, 5 seconds recommended. “Include Integrated Conversion Measurement Attributions” in the Google Ads partner configuration |
Not supported on iOS devices in the EEA and UK (Switzerland not named) | ICM installs appear as click through installs, labeled probabilistic in user level reports | Singular help, 29 Sep 2026 |
Each partner row lists only what that partner documents for itself. The choice between Firebase and the standalone SDK has a bidding consequence the setup pages do not spell out. Google’s About bidding in App campaigns says tROAS requires the Google Analytics for Firebase SDK, and AppsFlyer’s setup article says you can exclude audiences from App campaigns only when the campaign optimizes toward Firebase SDK events, not MMP events. If you plan to bid on value later, the standalone route solves measurement but not that. If you install both, Google’s GoogleAdsOnDeviceConversion repository publishes a version map: GA4F 12.19.0 pairs with ODM 3.7.0, 12.12.1 with 3.5.0, and 11.14.0 with 2.0.0.
Which Firebase version is the minimum, 11.14.0 or 12.12.1?
Google’s documentation gives two answers, and I have not found a source that settles it.
Google’s help page for on device measurement asks for “version 11.14.0 available in June 2025”, and the Firebase Tutorial: Measure iOS Ads conversions using event data (last updated 25 September 2026) says 11.14.0 or higher. Google’s iOS Best Practices Guide: Do the iOS Three to maximize your ROI, which is undated, lists the Firebase SDK at “minimum version 12.12.1+” in its implementation steps. AppsFlyer and Adjust both repeat 11.14.0.
I treat this as an unresolved difference between two Google sources. Record which version the app ships, and raise the gap with Google before you pin the app below 12.12.1.
Why does the order of the first launch matter?
Because the conversion info has to exist before the install is reported. Google’s developer page for the App Conversion API, Integrated Conversion Measurement, says to fetch the conversion info shortly after the app first launches, before the first_open event is sent, and to pass it as the odm_info parameter. Google’s standalone SDK page adds that the fetch applies to both first_open and reinstall_open, and that setFirstLaunchTime must receive the date the app was actually first launched.
The partners handle the wait differently:
- Singular’s SDK waits for ODM info up to the timeout you set, 5 seconds recommended, and Singular warns this delays SDK callbacks, including deep links. For server to server setups it notes the fetch is asynchronous and you may need to hold the session event until it completes.
- Adjust says to call
initSdkas early as possible, ideally inapplication:didFinishLaunchingWithOptions:. With First Session Delay, you still callinitSdkearly so ODM records the launch time, and end the delay later.
In an audit, the first thing to check is whether a consent screen, paywall or onboarding flow starts the MMP SDK later than the documentation expects. The docs give no universal delay value, so test the order on a real install.
Does ICM work for iOS users in the EEA, the UK and Switzerland?
Not in the documentation checked on 29 September 2026.
- Google’s on device measurement page: the feature “will be inactive for all users located within” the EEA, the UK and Switzerland.
- The Firebase tutorial: the verification message will not appear for devices located there.
- AppsFlyer’s Bulletin: AppsFlyer and Google attribution solution [Open BETA] (edited 5 August 2026) excludes iOS traffic from users in all three, and its setup article (edited 15 September 2026) lists the EU, the UK and Switzerland as unsupported.
- Singular (updated 24 September 2026) says ICM is not supported on iOS devices in the EEA and UK.
In May 2026 Google’s iOS App campaign advancements announcement said it is “expanding measurement support for EEA, UK, and Switzerland users”. It gives no date. An announcement is a plan, so I do not plan budget on it until Google’s help page and the MMP docs change.
One documentation inconsistency: the troubleshooting list on Google’s standalone SDK page says to check that your app is running in the EEA, the UK and Switzerland. That contradicts Google’s own on device measurement page. I read it as a documentation error, not as evidence that Europe support has launched.
European iOS users are still measured, only not through ICM. Google’s Understanding iOS App campaign measurement and reporting says modeled conversions in Google Ads and SKAdNetwork are available for all users, including the EEA, the UK and Switzerland. The ICM column makes no such statement.
What does ICM cover, and what does it leave out?
From AppsFlyer’s setup article, which has the most complete list:
- Installs and re-attributions only. No re-engagements.
- Clicks only on iOS. “Google currently claims only clicks on iOS. It does not claim impressions.” Singular also describes click through install measurement only, and Adjust says ICM is supported for App Campaigns for Install only.
- Campaign and ad group, no ad. AppsFlyer says claims include campaign and ad group “in most cases” and no ad information. Singular says the ad group ID is not available, and Google’s guide says campaign level data now, ad group level “soon”. Plan on campaign level.
- A partial channel. The channel field shows
ACI_without a network suffix. - Rounded timestamps. Probabilistic claim timestamps are rounded to 15 minute intervals.
Google’s guide also says ICM supports post install lookback windows up to 180 days, which matters for subscription apps whose paid events arrive weeks after the install. The guide ties those windows to tROAS, but Google’s bidding page still says tROAS requires the Firebase SDK, so the route choice above still applies.
How do I test one install end to end?
For one test install, write down:
- Versions. App build, GA4F or GoogleAdsOnDeviceConversion version, MMP SDK version. Check the pair against Google’s version map.
- Region. Where the device is located. An EEA, UK or Swiss device should not produce ODM info.
- ATT and consent state. The ATT answer and your consent platform’s choices, and whether either holds back the MMP SDK.
- Order. Whether the conversion info was fetched before
first_openwas sent, and whetherodm_infowas present on the first install call. On the Firebase route, the debug log sequence from the table. - Settings. The partner switch from the table, and
first_openimported as a conversion in Google Ads. - The MMP raw row. In AppsFlyer,
match_typeofsrnorprobabilistic. In Singular, the probabilistic breakdown in user level reports. - Values. What each revenue event sends to Google, including events that carry no revenue. On the account above, the revenue event sent $1 instead of $0 when there was no value. Google Ads showed 71.4% ROAS on the iOS campaign against 17.3% lifetime ROAS in AppsFlyer, and ICM was not the cause. How I read that gap is in why Google Ads, your MMP and SKAN report different iOS conversions.
Change one component at a time. One missing claim is not proof of a broken setup: AppsFlyer validates each probabilistic Google claim with its own model, and an accepted claim still has to win against other attribution candidates.
Should you change privacy settings or IP masking to get more claims?
I do not treat these as switches for coverage. They are the app owner’s compliance decisions.
AppsFlyer’s setup article says IP masking may impact ICM and that Google recommends disabling it. It also says that with the Aggregated Advanced Privacy toggle on, Google attributed data shows as restricted in raw reports, and that Advanced Data Sharing sends installs to Google with or without a device ID. Apple’s User Privacy and Data Use page says “you may not derive data from a device for the purpose of uniquely identifying it”, and that tracking a user requires ATT permission.
Two facts help that decision: the FirebaseAnalytics pod already includes the ODM library, and Google’s opt out is to exclude GoogleAdsOnDeviceConversion from the build. Make the call with your privacy counsel, then measure what the chosen setup allows.
Why will Google Ads, the MMP and SKAN still disagree?
Because they are three different measurements. Google’s measurement and reporting page says ICM data is not available in Google Ads reporting today, Google Ads shows its own modeled conversions with delays of up to five days, and SKAdNetwork is Apple’s aggregate feed with its own windows. Google also says iOS reporting in Google Ads will move from modeled conversions to ground truth attribution for campaigns with on device measurement event data. I reconcile the three on the same event, date basis and window rather than adding them up, and I cover that method in why Google Ads, your MMP and SKAN report different iOS conversions.
Where does this sit in my work?
This is the Google iOS part of signal engineering: making sure the bidding system sees the conversions the business actually cares about. In practice that means choosing the Firebase or standalone route with bidding in mind, confirming the first launch order on a real install, and writing down how far apart Google Ads, the MMP and SKAN should be before anyone moves budget. If you are not sure whether measurement is the problem, the growth audit is where I check. Better measurement does not decide where an App campaign spends, which I cover in why an App campaign moves spend into YouTube.
Sources
All checked on 29 September 2026.
- Google Ads Help: About on-device conversion measurement for iOS App campaigns, no page date.
- Google Ads Help: Implement on-device conversion measurement with a standalone SDK, no page date.
- Google Ads Help: About Integrated Conversion Measurement for App Campaigns, rolling out from May 2025.
- Google Ads Help: Understanding iOS App campaign measurement and reporting, no page date.
- Google Ads Help: About bidding in App campaigns, no page date.
- Google for Developers: Integrated Conversion Measurement, last updated 22 October 2025.
- Google: iOS Best Practices Guide: Do the iOS Three to maximize your ROI, undated.
- Google: iOS App campaign advancements, published 13 May 2026.
- Firebase: Tutorial: Measure iOS Ads conversions using event data, step 2, last updated 25 September 2026.
- GitHub: GoogleAdsOnDeviceConversion, release 3.7.0 of 1 September 2026 and the GA4F version map.
- AppsFlyer: Bulletin: AppsFlyer and Google attribution solution [Open BETA], edited 5 August 2026.
- AppsFlyer: Google Ads (AdWords) Integration setup for advertisers, edited 15 September 2026.
- Adjust Dev Hub: Google On-device Conversion Measurement, no page date.
- Adjust Help Center: Set up Google Ads in Adjust, no page date.
- Singular: Google Ads (AdWords) Mobile App Campaigns - Attribution Integration, updated 24 September 2026.
- Apple Developer: User Privacy and Data Use, no page date.
Questions people ask
Do I need Firebase for Google on device measurement on iOS?
Not for the measurement itself. Google documents a standalone GoogleAdsOnDeviceConversion SDK for apps that cannot integrate Google Analytics for Firebase, and AppsFlyer and Adjust accept either route. Firebase matters for bidding: Google says tROAS on App campaigns requires the Firebase SDK, and AppsFlyer says audience exclusion works only when the campaign optimizes toward Firebase events.
Is Google ICM available in Europe for iOS?
Not according to the documentation on 29 September 2026. Google's on device measurement page says the feature is inactive for users in the EEA, the UK and Switzerland, AppsFlyer excludes that iOS traffic from ICM, and Singular excludes iOS devices in the EEA and the UK. Google announced expanded support for those users in May 2026 without a date. Modeled conversions in Google Ads and SKAdNetwork still cover them.
Will ICM installs show up in Google Ads?
Not today. Google says ICM data is not available in Google Ads reporting and appears in your attribution partner instead, while Google Ads shows its own modeled conversions. Google also says iOS reporting in Google Ads will move from modeled conversions to ground truth attribution for campaigns with on device measurement event data.
Should I turn off IP masking or privacy settings to get more ICM claims?
That is a compliance decision for the app owner, not a troubleshooting step. AppsFlyer notes that IP masking may affect ICM and that its privacy toggle shows Google data as restricted. Apple forbids deriving device data to identify a device and requires ATT permission to track. Decide those settings with your privacy counsel, then measure what the chosen setup allows.