Skip to content

ADJOdmPlugin can not be initialized — ODCConversionManager class not found #286

@7emretelli

Description

@7emretelli

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions