Summary
We are starting to use the Google On-device Measurement (ODM) feature as documented at
dev.adjust.com/en/sdk/ios/plugins/google-odm in our Unity projects.
The feature itself works - we confirmed it in production - but the current Unity package
doesn't expose an official path to enable it without modifying the generated Xcode Podfile
manually via a post-process script.
Current workaround
We're importing the SDK via the Unity Package Manager git URL:
`https://github.com/adjust/unity_sdk.git?path=Assets/Adjust#v5.6.0`
The ODM guide states that the iOS
integration requires replacing the standard Adjust CocoaPod with the Adjust/AdjustGoogleOdm
subspec. Since the Unity package's EDM4U dependency resolver emits the standard Adjust pod,
we had to write a PostProcessBuild script that patches the generated Podfile after the build:
// Replaces: pod 'Adjust', '<version>'
// With: pod 'Adjust/AdjustGoogleOdm', '<version>'
This approach has several downsides:
- It is fragile - it relies on exact string matching in a generated file.
- It is invisible - a developer unaware of this script could be confused by the behavior.
- It is not portable - every project that wants ODM must copy and maintain this script.
- It silently breaks if the Podfile format changes between SDK versions.
Proposed solutions
We'd welcome any of the following, roughly in order of preference (open to other solutions)
-
A dedicated google-odm branch in the Unity SDK repo where the EDM4U dependency
configuration already references Adjust/AdjustGoogleOdm instead of Adjust. Teams could
then pin to that branch via UPM until the feature is mainlined:
https://github.com/adjust/unity_sdk.git?path=Assets/Adjust#google-odm
-
A compile-time or runtime feature toggle (e.g., a scripting define symbol
ADJUST_GOOGLE_ODM or an opt-in in AdjustConfig) that causes the SDK's own EDM4U
configuration to emit the correct subspec automatically.
-
Documentation of an officially supported post-process hook or extension point in the
Unity package that enables the ODM subspec without text-patching the Podfile.
Environment
- Unity SDK version:
v5.6.0 (imported via UPM git URL)
- Unity version: 6000.0.x
- Target platform: iOS
We're happy to test any branch or pre-release version against our titles.
Summary
We are starting to use the Google On-device Measurement (ODM) feature as documented at
dev.adjust.com/en/sdk/ios/plugins/google-odm in our Unity projects.
The feature itself works - we confirmed it in production - but the current Unity package
doesn't expose an official path to enable it without modifying the generated Xcode Podfile
manually via a post-process script.
Current workaround
We're importing the SDK via the Unity Package Manager git URL:
The ODM guide states that the iOS
integration requires replacing the standard
AdjustCocoaPod with theAdjust/AdjustGoogleOdmsubspec. Since the Unity package's EDM4U dependency resolver emits the standard
Adjustpod,we had to write a
PostProcessBuildscript that patches the generated Podfile after the build:This approach has several downsides:
Proposed solutions
We'd welcome any of the following, roughly in order of preference (open to other solutions)
A dedicated
google-odmbranch in the Unity SDK repo where the EDM4U dependencyconfiguration already references
Adjust/AdjustGoogleOdminstead ofAdjust. Teams couldthen pin to that branch via UPM until the feature is mainlined:
https://github.com/adjust/unity_sdk.git?path=Assets/Adjust#google-odmA compile-time or runtime feature toggle (e.g., a scripting define symbol
ADJUST_GOOGLE_ODMor an opt-in inAdjustConfig) that causes the SDK's own EDM4Uconfiguration to emit the correct subspec automatically.
Documentation of an officially supported post-process hook or extension point in the
Unity package that enables the ODM subspec without text-patching the Podfile.
Environment
v5.6.0(imported via UPM git URL)We're happy to test any branch or pre-release version against our titles.