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
@Aditi3 @uerceg
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
FirebaseAnalytics pod depends on the default GoogleAppMeasurement subspec, which does include GoogleAdsOnDeviceConversion.
- However,
@react-native-firebase/analytics does not use the default subspec. It explicitly depends on FirebaseAnalytics/Core and FirebaseAnalytics/IdentitySupport, which resolve to GoogleAppMeasurement/Core and GoogleAppMeasurement/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) |
Issue Report:
ADJOdmPlugin can not be initialized — ODCConversionManager class not foundObjective
Enable Google On Device Conversion (ODC) measurement through the Adjust SDK on iOS, which requires the
ODCConversionManagerclass 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/AdjustGoogleOdmsubspec does not declare a CocoaPods dependency onGoogleAdsOnDeviceConversion. Instead, its plugin (ADJOdmPlugin.m) checks for the class at runtime using: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
@Aditi3 @uerceg
The Adjust documentation states:
This is misleading for React Native Firebase projects. Here's why:
FirebaseAnalyticspod depends on the defaultGoogleAppMeasurementsubspec, which does includeGoogleAdsOnDeviceConversion.@react-native-firebase/analyticsdoes not use the default subspec. It explicitly depends onFirebaseAnalytics/CoreandFirebaseAnalytics/IdentitySupport, which resolve toGoogleAppMeasurement/CoreandGoogleAppMeasurement/IdentitySupport.GoogleAdsOnDeviceConversion.Dependency chain in this project:
As a result,
ODCConversionManageris never bundled into the app, and the Adjust ODM plugin fails its runtime check.How to Solve It
Add
GoogleAdsOnDeviceConversionexplicitly in the Podfile alongsideAdjust/AdjustGoogleOdm:Then run
pod install. This is already applied in the current Podfile.Project Environment