docs(ios): Google Integrated Conversion Measurement setup [LIN-2078] - #163
Open
Shofiya2003 wants to merge 5 commits into
Open
docs(ios): Google Integrated Conversion Measurement setup [LIN-2078]#163Shofiya2003 wants to merge 5 commits into
Shofiya2003 wants to merge 5 commits into
Conversation
Adds an optional ICM section to the iOS SDK guide covering the three setup steps, the consent API, the TCF alternative, and how to verify the integration from the debug log. Also corrects the Google Ads discrepancies page, which described iOS as effectively SKAN-only with deterministic attribution available only when ATT is granted. That stops being true for the EEA, UK, and Switzerland once ICM is in place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The page said CocoaPods applies the linker flags for you. That holds for -lc++, which Google's podspec declares, but not for -ObjC, which is the flag that actually matters. Branch documents -ObjC as required regardless of integration method, and Adjust gives the same reason we have: the SDK discovers Google's class at runtime, so nothing references it at link time and the linker strips it from the static library without the flag. Also notes that a missing flag is the more likely cause of odm_available=false, since it produces no build warning. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…2078] The step told every reader to add -ObjC, including CocoaPods users who do not need it. CocoaPods writes the flag into its generated xcconfig itself when a target links a vendored static framework, so pod users need no build settings at all. Tested in one project, changing only the flag: SPM, -ObjC set -> ODCConversionManager present (13 symbols) SPM, -ObjC absent -> stripped (0 symbols), build still succeeded CocoaPods, nothing set -> present (13 symbols) The step is now titled for Swift Package Manager and opens with a note telling CocoaPods users to skip it. The troubleshooting line is scoped the same way. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ICM shipped in the 4.1.0 native SDKs and the wrappers built on them, but only
the iOS page documented it. Adds a shared feature page and the per-SDK
installation steps.
- features/google-icm.mdx: what ICM is, prerequisites (minimum SDK version,
an iOS link ID in Google Ads, Google's ODM SDK, setConsent), platform
support, what each consent signal means and why Google needs it.
- React Native, Flutter, Expo, Unity: ICM sections covering the ODM SDK, the
linker flag where it is not automatic, setConsent, and verification.
- Android: a Google Ads consent section. ODM is iOS-only, but Android reaches
Google through the App Conversion API, which reads the same signals.
- Capacitor and Cordova: state plainly that ICM is not supported yet. Both
pin LinkrunnerKit 4.0.x and android-sdk 4.0.1.
- iOS: the Firebase path is FirebaseAnalytics 11.14.0+, note the $(inherited)
case where CocoaPods will not supply -ObjC, and initialize early because
ODM matches on first launch time.
Version pins in the install steps were stale and are corrected to the
published releases: iOS SPM 3.12.0 to 4.1.0, Android gradle 3.10.0 to 4.1.0,
Unity android-sdk 3.6.0 to 4.1.0. The Unity Swift bridge also did not compile
against LinkrunnerKit 4.x, which has required a non-optional paymentId since
4.0.0, and gains a setConsent bridge on both platforms.
Checked against how Adjust, Branch, AppsFlyer and Kochava document the same
integration: all of them have the app supply Google's SDK. The linker flag
claims are verified against Google's Package.swift (linkedLibrary("c++")) and
podspec (libraries 'c++').
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Google's on-device measurement is inactive in the EEA, the UK, and Switzerland, which is the opposite of what the ICM docs claimed. Correct the audience across every SDK guide and the feature page: ICM recovers iOS installs that have no click identifier and no IDFA, and the EEA framing belongs to the Android side, where Google applies the improvement automatically. Also: - Move the ICM section under Installation in each SDK guide - Point link ID setup at Integrations > Google Ads instead of Settings - Show the Podfile target block for the ODM pod, and lead the step with the Firebase skip note - Add features/send-consent.mdx covering the DMA consent signals, what to report outside the EEA, and how to collect it - Drop CMP phrasing and the undocumented TCF path for now Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents Google Integrated Conversion Measurement (ICM) for the iOS SDK, shipping in LinkrunnerKit 4.1.0 (linkrunner-ios#26).
What's here
sdk/ios.mdxgains an optional ICM section:-ObjC -lc++, provide consentodm_available=...debug linead-networks/google-ads-discrepancies.mdxis corrected. It described iOS as effectively SKAN-only, with deterministic attribution available only when ATT is granted and an IDFA exists. That stops being true for the EEA, UK, and Switzerland once ICM is in place.Notes for review
mintlify broken-linksreports nothing in either file (the four hits it reports are pre-existing in other pages).🤖 Generated with Claude Code