-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Issue Report: ADJOdmPlugin can not be initialized — ODCConversionManager class not found
Objective
Enable Google On Device Conversion (ODC) measurement through the Adjust SDK on iOS, which requires the ODCConversionManager class to be available at runtime.
What Is Applied
react-native-adjust(5.5.0) is installed via npm, which provides the base Adjust iOS SDK (5.5.0).pod 'Adjust/AdjustGoogleOdm'is declared in the Podfile to enable the Google ODM plugin.@react-native-firebase/analytics(23.8.6) is installed, which pulls in FirebaseAnalytics 12.8.0 natively.
What Is Causing the Issue
The Adjust/AdjustGoogleOdm subspec does not declare a CocoaPods dependency on GoogleAdsOnDeviceConversion. Instead, its plugin (ADJOdmPlugin.m) checks for the class at runtime using:
Class odmClass = NSClassFromString(@"ODCConversionManager");This means CocoaPods won't raise any errors during pod install — the missing dependency only surfaces at runtime as a log error.
Why It Is Causing the Issue
The Adjust documentation states:
"If you are using Firebase Analytics 11.14.0 and newer, you do not need to add the GoogleAdsOnDeviceConversion dependency manually, as it is automatically included in your app."
This is misleading for React Native Firebase projects. Here's why:
- The default
FirebaseAnalyticspod depends on the defaultGoogleAppMeasurementsubspec, which does includeGoogleAdsOnDeviceConversion. - However,
@react-native-firebase/analyticsdoes not use the default subspec. It explicitly depends onFirebaseAnalytics/CoreandFirebaseAnalytics/IdentitySupport, which resolve toGoogleAppMeasurement/CoreandGoogleAppMeasurement/IdentitySupport. - These specific subspecs do not include
GoogleAdsOnDeviceConversion.
Dependency chain in this project:
RNFBAnalytics (23.8.6)
├── FirebaseAnalytics/Core (12.8.0)
│ └── GoogleAppMeasurement/Core (12.8.0) ← no ODC
└── FirebaseAnalytics/IdentitySupport (12.8.0)
└── GoogleAppMeasurement/IdentitySupport (12.8.0) ← no ODC
As a result, ODCConversionManager is never bundled into the app, and the Adjust ODM plugin fails its runtime check.
How to Solve It
Add GoogleAdsOnDeviceConversion explicitly in the Podfile alongside Adjust/AdjustGoogleOdm:
pod 'Adjust/AdjustGoogleOdm'
pod 'GoogleAdsOnDeviceConversion', '3.0.0'Then run pod install. This is already applied in the current Podfile.
Project Environment
| Dependency | Version |
|---|---|
| React Native | 0.80.2 |
| React | 19.1.0 |
| react-native-adjust | 5.5.0 |
| Adjust iOS SDK (native) | 5.5.0 |
| AdjustSignature (native) | 3.62.0 |
| @react-native-firebase/analytics | 23.8.6 |
| @react-native-firebase/app | 23.2.1 |
| FirebaseAnalytics (native) | 12.8.0 |
| GoogleAppMeasurement (native) | 12.8.0 |
| GoogleAdsOnDeviceConversion | not present (needs 3.0.0) |
| CocoaPods linkage | static frameworks |
| iOS platform | min_ios_version_supported |
| Node requirement | 18 (not 22) |