Developers must not include any personal data, including demographic or interest-based targeting data, in any fields intended for contextual targeting (i.e. keywords or based on the content of the app). Additionally, developers must not send AppLovin any sensitive personal data or custom data values that are against the AppLovin Terms of Use or AppLovin Privacy Policy.
Starting with SDK version 11.0.0, AppLovin provides an option for developers to send additional data. Developers should send any demographic or interest-based targeting data in the fields designated for such data, as described below.
Data Fields
Set values for the following fields to pass personal data (for demographic or interest-based targeting):
Field | Description |
---|---|
This data is limited to use by publishers for the publishers’ own direct ad serving. AppLovin does not retain this data or pass it downstream to advertising partners. | |
The user’s email address. AppLovin hashes this value before it reaches its ad server. | |
gender | The user’s gender |
interests | A list of the user’s interests |
maximumAdContentRating | The maximum ad content rating shown to the user. The levels are based on IQG Media Ratings: 1 = All Audiences, 2 = Everyone Over 12, 3 = Mature Audiences |
phoneNumber | The user’s phone number. AppLovin hashes this value before it reaches its ad server. |
yearOfBirth | The user’s year of birth |
Set values for the following fields to pass impersonal data (for contextual targeting):
Field | Description |
---|---|
keywords | A list of keywords related to your application |
Here is an example of how to set the user’s email address and the keywords that describe your application:
-
ApplovinSdk.getInstance( this ).getTargetingData().setEmail( "user@email.com" ); AppLovinSdk.getInstance( this ).getTargetingData().setKeywords( Arrays.asList( "fruit:apple", "fruit:banana", "fruit:orange" ) );
-
AppLovinSdk.getInstance( this ).targetingData.email = "user@email.com" AppLovinSdk.getInstance( this ).targetingData.keywords = listOf( "fruit:apple", "fruit:banana", "fruit:orange" )
Once you set any of these fields, the SDK includes them each time you request an AppLovin ad. You can clear these fields at any time, and the SDK then removes them before the next time you request an AppLovin ad. You can clear most fields by setting their values to null
. To clear the gender value, set it to AppLovinGender.UNKNOWN
or null
. To clear the maximumAdContentRating value, set it to AppLovinAdContentRating.NONE
or null
. Also, you can clear all fields with the following snippet:
-
AppLovinSdk.getInstance( this ).getTargetingData().clearAll();
-
AppLovinSdk.getInstance( this ).targetingData.clearAll()
Location Passing
Starting with SDK version 11.0.0, only if your application already has the relevant end-user permissions, the SDK will automatically collect from the device the latitude and longitude coordinates truncated to the hundredths decimal place.
The truncation occurs on the device, which means that the full coordinates do not leave the device.
The following code snippets show how you disable the SDK from automatically collecting location when your application has the relevant end-user permissions:
-
AppLovinSdk sdk = AppLovinSdk.getInstance( context ); sdk.getSettings().setLocationCollectionEnabled( false );
-
val sdk = AppLovinSdk.getInstance( context ) sdk.settings.setLocationCollectionEnabled( false )
Content URL Passing
AppLovin recommends that you pass your App content URL when you make ad requests. The App content URL is passed in the bid request for buy-side contextualization or review and may be required for spend from some DSP buyers.
The following code snippets show how you pass your App content URL when you make an ad request:
-
// Interstitial Ad interstitialAd = new MaxInterstitialAd( "ad_unit_id", this ); interstitialAd.setExtraParameter( "content_url", "value" ); // Rewarded Ad rewardedAd = MaxRewardedAd.getInstance( "ad_unit_id", this ); rewardedAd.setExtraParameter( "content_url", "value" ); // Banner Ad bannerAd = new MaxAdView( "ad_unit_id", this ); bannerAd.setExtraParameter( "content_url", "value" ); // MRec Ad mrecAd = new MaxAdView( "ad_unit_id", MaxAdFormat.MREC, this ); mrecAd.setExtraParameter( "content_url", "value" ); // Native Ad nativeAdLoader = new MaxNativeAdLoader( "ad_unit_id", this ); nativeAdLoader.setExtraParameter( "content_url", "value" );
-
// Interstitial Ad var interstitialAd = MaxInterstitialAd( "ad_unit_id", this ) interstitialAd.setExtraParameter( "content_url", "value" ) // Rewarded Ad var rewardedAd = MaxRewardedAd.getInstance( "ad_unit_id", this ) rewardedAd.setExtraParameter( "content_url", "value" ) // Banner Ad var bannerAd = MaxAdView( "ad_unit_id", this ) bannerAd.setExtraParameter( "content_url", "value" ) // MRec Ad var mrecAd = MaxAdView( "ad_unit_id", MaxAdFormat.MREC, this ) mrecAd.setExtraParameter( "content_url", "value" ) // Native Ad var nativeAdLoader = MaxNativeAdLoader( "ad_unit_id", this ) nativeAdLoader.setExtraParameter( "content_url", "value" )
Unified Identifiers
Publishers can pass the UID2 token as an additional data point for buyers to use for targeting and accurately bidding on app inventory. MAX propagates these tokens into the bid stream it sends to programmatic buyers. The publisher must tokenize the Unified Identifiers and pass them to AppLovin. See the code examples below:
-
// App Open Ad appOpenAd = new MaxAppOpenAd( "ad_unit_id", this ); appOpenAd.setExtraParameter( "uid2_token", "value" ); // Banner Ad bannerAd = new MaxAdView( "ad_unit_id", this ); bannerAd.setExtraParameter( "uid2_token", "value" ); // Interstitial Ad interstitialAd = new MaxInterstitialAd( "ad_unit_id", this ); interstitialAd.setExtraParameter( "uid2_token", "value" ); // MRec Ad mrecAd = new MaxAdView( "ad_unit_id", MaxAdFormat.MREC, this ); mrecAd.setExtraParameter( "uid2_token", "value" ); // Native Ad nativeAdLoader = new MaxNativeAdLoader( "ad_unit_id", this ); nativeAdLoader.setExtraParameter( "uid2_token", "value" ); // Rewarded Ad rewardedAd = MaxRewardedAd.getInstance( "ad_unit_id", this ); rewardedAd.setExtraParameter( "uid2_token", "value" );
-
// App Open Ad var appOpenAd = MaxAppOpenAd( "ad_unit_id", this ) appOpenAd.setExtraParameter( "uid2_token", "value" ) // Banner Ad var bannerAd = MaxAdView( "ad_unit_id", this ) bannerAd.setExtraParameter( "uid2_token", "value" ) // Interstitial Ad var interstitialAd = MaxInterstitialAd( "ad_unit_id", this ) interstitialAd.setExtraParameter( "uid2_token", "value" ) // MRec Ad var mrecAd = MaxAdView( "ad_unit_id", MaxAdFormat.MREC, this ) mrecAd.setExtraParameter( "uid2_token", "value" ) // Native Ad var nativeAdLoader = MaxNativeAdLoader( "ad_unit_id", this ) nativeAdLoader.setExtraParameter( "uid2_token", "value" ) // Rewarded Ad var rewardedAd = MaxRewardedAd.getInstance( "ad_unit_id", this ) rewardedAd.setExtraParameter( "uid2_token", "value" )