davamosk
Administrator
I'm dealing with Google in 3 different accounts and 3 different apps to test the infamous ODM+ICM for iOS apps so I want to leave this guide here as a special "gift" for all the people in this community.
Before starting, I want to say that it's embarrassing that a TRILLIONAIRE company is making this whole process this complicated for everyone.
They are YEARS behind the industry in terms of iOS advertising and when they finally come up with something, everyone struggles to understand the process and have campaigns running with a decent discrepancy.
Because of that, I wanted to create this thread so everyone can have a "definitive" list to at least, have all the technical elements in place to test these campaigns.
Please keep in mind that ICM+ODM is NOT available in Europe! I'm mainly targeting US so if you want to target another non-European country, talk to your Google rep to see if this feature is available there!
With all of that being said, let's start this guide
1st STEP - Implement On-Device Measurement (ODM Event Data):
ICM relies on these being correctly imported. Importing other post-install events is also highly recommended.
4th STEP - If you are using Consent Mode, verify that the ad_storage parameter is set to "granted".
ODM Event Data will not operate if ad_storage is "denied".
5th STEP - Verify the integration.
Enable debug mode by adding -FIRDebugEnabled under Arguments Passed on Launch in Xcode's scheme editor.
Delete the app in the Simulator or device. Upon launching the app in Xcode, verify that a message like the following appears in the Xcode debug console:

That "_psmvalue_gads" won't appear unless you test with a real device!
6th STEP - Set up your Campaign & Check the data
I have talked to 3 different reps and ALL of them have confirmed that you MUST use FIREBASE events for your CPA (in-app action) campaign. ROAS optimization is still NOT ready but it will be available soon.
I also had some people that used the MMP event and apparently, there was not any issue but I haven't tested it.
After running the campaign for a few days, compare the data in both the MMP and Google dashboard. According to my experience, deviations can be high in the first days but the gap gets smaller with the time so you have to be patient.
I hope it helps!
And please, if someone knows any other steps that are required, please feel free to share them on this thread and I'll be editing the original post so we always have this guide updated.
Have a nice rest of the week dear anonymous friends.
Btw, I'll be sharing this on LinkedIn. You know me but I don't know you so if you can react, that will help to attract more people to the community
Before starting, I want to say that it's embarrassing that a TRILLIONAIRE company is making this whole process this complicated for everyone.
They are YEARS behind the industry in terms of iOS advertising and when they finally come up with something, everyone struggles to understand the process and have campaigns running with a decent discrepancy.
Because of that, I wanted to create this thread so everyone can have a "definitive" list to at least, have all the technical elements in place to test these campaigns.
Please keep in mind that ICM+ODM is NOT available in Europe! I'm mainly targeting US so if you want to target another non-European country, talk to your Google rep to see if this feature is available there!
With all of that being said, let's start this guide
1st STEP - Implement On-Device Measurement (ODM Event Data):
- GA4F SDK(Firebase Integration): Your app must integrate the Google Analytics for Firebase (GA4F) SDK, updated to at least version 11.14.0. The latest available release is always recommended.
- Bidding on GA4F Events: Currently, bidding on native GA4F events is required to fully leverage the campaign performance benefits derived from ODM data.
- Update 3rd party MMP SDK: (e.g., AppsFlyer, Adjust, Branch, Singular, etc.) to update their SDK to the latest version that supports ICM. The specific version required varies by MMP so you must check with your MMP. And yes, YOU NEED A MMP TO HAVE ICM!
- Enable Probabilistic Attribution: Within your MMP's UI or settings, ensure that "probabilistic attribution" is turned on. I'll leave here the top 3 MMPs:
- For AppsFlyer, this is often labeled "Advanced Data Sharing." + ensure the "Aggregated Advanced Privacy (AAP)" toggle is OFF in your AppsFlyer iOS app settings.
- For Adjust, it's typically found under Attribution Settings as a "Probabilistic modeling" option.
- For Singular, you also have a "probabilistic attribution" within the setup module.
ICM relies on these being correctly imported. Importing other post-install events is also highly recommended.
4th STEP - If you are using Consent Mode, verify that the ad_storage parameter is set to "granted".
ODM Event Data will not operate if ad_storage is "denied".
5th STEP - Verify the integration.
Enable debug mode by adding -FIRDebugEnabled under Arguments Passed on Launch in Xcode's scheme editor.
Delete the app in the Simulator or device. Upon launching the app in Xcode, verify that a message like the following appears in the Xcode debug console:

That "_psmvalue_gads" won't appear unless you test with a real device!
6th STEP - Set up your Campaign & Check the data
I have talked to 3 different reps and ALL of them have confirmed that you MUST use FIREBASE events for your CPA (in-app action) campaign. ROAS optimization is still NOT ready but it will be available soon.
I also had some people that used the MMP event and apparently, there was not any issue but I haven't tested it.
After running the campaign for a few days, compare the data in both the MMP and Google dashboard. According to my experience, deviations can be high in the first days but the gap gets smaller with the time so you have to be patient.
I hope it helps!
And please, if someone knows any other steps that are required, please feel free to share them on this thread and I'll be editing the original post so we always have this guide updated.
Have a nice rest of the week dear anonymous friends.
Btw, I'll be sharing this on LinkedIn. You know me but I don't know you so if you can react, that will help to attract more people to the community
Last edited: