adjust-icon

Google On-device Conversion Measurement

With Google On-device Conversion Measurement (ODM), you can attribute ads served on Google iOS apps to corresponding app installs in a way that enhances measurement accuracy while preserving user privacy. This approach ensures that neither the individual user, the device, nor the app is identifiable by you or Google.

To enable Google On-device Conversion Measurement, you need to add the following dependencies to your app’s target inside of the Podfile:

ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
pod 'Adjust/AdjustGoogleOdm'
pod 'GoogleAdsOnDeviceConversion', '2.0.0'
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end

Capturing app launch time

One of the most critical factors for accurate attribution using On-device Conversion Measurement is capturing the app launch time as precisely as possible. The Adjust SDK handles this automatically during its initialization process. Therefore, it is essential to call the initSdk method as early as possible in your app’s launch sequence.

If you need to delay the start of the Adjust SDK, it is still strongly recommended to invoke the initSdk method promptly and use the First Session Delay feature to coordinate the actual start of the SDK with your app’s logic.