According to Google and Apple guidelines regarding advertising ID (AdId), publishers who use Outbrain JS-Widget for their apps will need to pass the AdId .
The SDK automatically does it for you, however the JS widget will have to be addressed manually because the webview is 100% under the publisher control.
Android
First update your app build.gradle
to include Google Mobile Ads from Google Play Services: (read more)
dependencies {
.
.
compile 'com.google.android.gms:play-services-ads:9.2.1'
.
.
}
In the main Activity of the app, add the following method and make sure you call it from the Activity onCreate()
method:
private void fetchAdvertisingIDExample() { Log.v("OBSDK", "trying to get AdId from Google Play Services"); final Activity activity = this; GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance(); if (googleAPI.isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS) { new Thread(new Runnable() { public void run() { AdvertisingIdClient.Info adInfo = null; try { adInfo = AdvertisingIdClient.getAdvertisingIdInfo(activity); } catch (IOException e) { Log.e("OBSDK", e.getMessage()); } catch (GooglePlayServicesNotAvailableException e) { Log.e("OBSDK", e.getMessage()); } catch (GooglePlayServicesRepairableException e) { Log.e("OBSDK", e.getMessage()); } String AdId = adInfo.getId(); boolean userOptOutAdTracking = adInfo.isLimitAdTrackingEnabled(); // Respecting user’s “opt out of interest-based advertising” setting // More details in: https://play.google.com/intl/ALL_us/about/developer-content-policy.html if (userOptOutAdTracking) { Log.v("OBSDK", "userOptOutAdTracking --> Removing AdId from Prefs"); } else { Log.v("OBSDK", "Saving AdId: " + AdId + " to Prefs"); } } }).start(); } else { Log.e("OBSDK", "Error: Google Play Services are not available, error: " + GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)); } }
iOS
1) Add AdSupport.framework in Link Binary with Binaries section in the app target Settings.
2) Add the “import” below in file appDelegate.m:
@import AdSupport;
3) In appDelegate.m, add the following method and make sure you call it from application:didFinishLaunchingWithOptions:
- (void) fetchAdvertisingIDExample { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([ASIdentifierManager sharedManager].advertisingTrackingEnabled) { [defaults setObject:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"kAdvertiserID"]; } else { // throw away any tracking info you may have saved before [defaults setObject:nil forKey:@"kAdvertiserID"]; } NSLog(@"Advertiser ID: %@", [defaults valueForKey:@"kAdvertiserID"]); }