With Google On-device Conversion Measurement (ODM), you can attribute app activities to Google Ads iOS campaigns without relying on IDFA. ODM improves campaign optimization and measurement accuracy while keeping identifiable information on the device to protect user privacy.
Use the ODM subspec instead of the Adjust core pod:
1
pod 'Adjust/AdjustGoogleOdm'# replaces 'Adjust', do not include both
If your app uses Google Analytics for Firebase SDK 11.14.0 or later, the GoogleAdsOnDeviceConversion dependency is automatically included by the FirebaseAnalytics pod. You do not need to add it separately.
If your app does not use Google Analytics for Firebase SDK, add the GoogleAdsOnDeviceConversion pod:
1
pod 'GoogleAdsOnDeviceConversion', '3.0.0'
In Xcode, select File > Add Package Dependencies…
Add the Adjust SDK package: https://github.com/adjust/ios_sdk
Select the version of the Adjust SDK you want to use in the Version dropdown. Check the releases page for the latest version.
Select only the AdjustGoogleOdm product for your app target, as it includes Adjust core. Don’t also add AdjustSdk.
To add ODM functionality manually to your application, follow the steps below:
Add the Adjust frameworks to your app.
Download the Adjust SDK and ODM plugin (releases).
In Xcode, drag and drop the following frameworks into your project (for example, the root project folder or a Frameworks folder):
AdjustSdk.xcframework or AdjustSdk.framework
AdjustOdmPlugin.xcframework or AdjustOdmPlugin.framework
AdjustSigSdk.xcframework
For each framework, in the dialog that appears, select Copy files to destination and add it to your app target.
In your app target’s project editor, open the General tab and scroll to Frameworks, Libraries, and Embedded Content. For dynamic frameworks, select Embed & Sign in the Embed field. For static frameworks, select Do Not Embed.
Add Google dependency frameworks.
If your app uses Google Analytics for Firebase SDK 11.14.0 or later, you can skip this step as Firebase already includes the necessary Google dependencies.
If your app does not use Google Analytics for Firebase SDK:
Download the Firebase iOS SDK (releases) and unzip it.
In Xcode, drag and drop the following frameworks from the Firebase/FirebaseAnalytics folder into your project:
GoogleAdsOnDeviceConversion.xcframework
GoogleUtilities.xcframework
nanopb.xcframework
For each framework, in the dialog that appears, select Copy files to destination and add it to your app target.
In your app target’s project editor, open the General tab and scroll to Frameworks, Libraries, and Embedded Content. Verify these frameworks are listed. These frameworks are static, so select Do Not Embed in the Embed field.
Add flags to Other Linker Flags:
In your app target’s project editor, open the Build Settings tab, select All, and search for Other Linker Flags.
Add each flag as a separate entry:
-ObjC: ensures the linker loads all Objective-C classes and categories from static libraries, which is required for the Adjust SDK to discover the ODM plugin at runtime.
-lc++: links the C++ standard library, which is required by the GoogleAdsOnDeviceConversion framework.
Capture app launch time
One of the most critical factors for accurate attribution using On-device Conversion Measurement is capturing the app launch time as precisely as possible. The Adjust SDK handles this automatically during its initialization process. Therefore, it is essential to call the initSdk method as early as possible in your app’s launch sequence — ideally within the application:didFinishLaunchingWithOptions: method of your app delegate.
If your app has logic that requires delaying when the SDK sends data to Adjust’s servers, follow this sequence:
Call initSdk as early as possible when your app starts, just as you normally would. The SDK starts running immediately, and ODM records the app launch time at this point.
Once your app has completed its logic, end First Session Delay so the SDK starts sending data to Adjust’s servers.