您可以通过两种方式下载 MAX 聚合适配器并将其集成到应用中:
Gradle
AppLovin 建议采用这种方式集成适配器。
AppLovin 的适配器 POM 文件会自动集成被聚合平台的 SDK 及其依赖。
开源适配器
如果需要更高的集成灵活性,则可以集成 AppLovin 的开源适配器。
此时,您将负责集成被聚合 SDK 及其依赖。
您可以在 AppLovn-MAX-SDK-Android GitHub 库 中找到这些适配器。
Gradle
勾选下方复选框,选择要通过 MAX 聚合接入的广告平台。
勾选这些复选框后,本页面会显示这些平台的具体说明。
本页面还会为您定制一个 Gradle 脚本。
将下方的自定义 Gradle 脚本复制到您的应用层级 build.gradle
。
maven { url " https://artifactory.bidmachine.io/bidmachine " }
maven { url " https://cboost.jfrog.io/artifactory/chartboost-ads/ " }
maven { url " https://android-sdk.is.com " }
maven { url " https://imobile-maio.github.io/maven " }
maven { url " https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea " }
maven { url " https://maven.ogury.co " }
maven { url " https://artifact.bytedance.com/repository/pangle " }
maven { url " https://repo.pubmatic.com/artifactory/public-repos " }
maven { url " https://s3.amazonaws.com/smaato-sdk-releases/ " }
maven { url " https://verve.jfrog.io/artifactory/verve-gradle-release " }
maven { url " https://ysonetwork.s3.eu-west-3.amazonaws.com/sdk/android " }
implementation ' com.applovin:applovin-sdk:+ '
implementation ' com.applovin.mediation:amazon-tam-adapter:+ '
implementation ' com.amazon.android:aps-sdk:+ '
implementation ' com.applovin.mediation:bidmachine-adapter:+ '
implementation ' com.applovin.mediation:bigoads-adapter:+ '
implementation ' com.applovin.mediation:chartboost-adapter:+ '
implementation ' com.google.android.gms:play-services-base:16.1.0 '
implementation ' com.applovin.mediation:fyber-adapter:+ '
implementation ' com.applovin.mediation:google-ad-manager-adapter:+ '
implementation ' com.applovin.mediation:google-adapter:+ '
implementation ' com.applovin.mediation:hyprmx-adapter:+ '
implementation ' com.applovin.mediation:inmobi-adapter:+ '
implementation ' com.squareup.picasso:picasso:2.71828 '
implementation ' androidx.recyclerview:recyclerview:1.1.0 '
implementation ' com.applovin.mediation:ironsource-adapter:+ '
implementation ' com.applovin.mediation:vungle-adapter:+ '
implementation ' com.applovin.mediation:line-adapter:+ '
implementation ' com.applovin.mediation:maio-adapter:+ '
implementation ' com.applovin.mediation:facebook-adapter:+ '
implementation ' com.applovin.mediation:mintegral-adapter:+ '
implementation ' com.applovin.mediation:mobilefuse-adapter:+ '
implementation ' com.applovin.mediation:moloco-adapter:+ '
implementation ' com.applovin.mediation:ogury-presage-adapter:+ '
implementation ' com.applovin.mediation:bytedance-adapter:+ '
implementation ' com.applovin.mediation:pubmatic-adapter:+ '
implementation ' com.applovin.mediation:smaato-adapter:+ '
implementation ' com.applovin.mediation:unityads-adapter:+ '
implementation ' com.applovin.mediation:verve-adapter:+ '
implementation ' com.applovin.mediation:mytarget-adapter:+ '
implementation ' com.applovin.mediation:yandex-adapter:+ '
implementation ' com.applovin.mediation:yso-network-adapter:+ '
maven { url = uri ( "https://artifactory.bidmachine.io/bidmachine" ) }
maven { url = uri ( "https://cboost.jfrog.io/artifactory/chartboost-ads/" ) }
maven { url = uri ( "https://android-sdk.is.com" ) }
maven { url = uri ( "https://imobile-maio.github.io/maven" ) }
maven { url = uri ( "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" ) }
maven { url = uri ( "https://maven.ogury.co" ) }
maven { url = uri ( "https://artifact.bytedance.com/repository/pangle" ) }
maven { url = uri ( "https://repo.pubmatic.com/artifactory/public-repos" ) }
maven { url = uri ( "https://s3.amazonaws.com/smaato-sdk-releases/" ) }
maven { url = uri ( "https://verve.jfrog.io/artifactory/verve-gradle-release" ) }
maven { url = uri ( "https://ysonetwork.s3.eu-west-3.amazonaws.com/sdk/android" ) }
implementation ( "com.applovin:applovin-sdk:+" )
implementation ( "com.applovin.mediation:amazon-tam-adapter:+" )
implementation ( "com.amazon.android:aps-sdk:+" )
implementation ( "com.applovin.mediation:bidmachine-adapter:+" )
implementation ( "com.applovin.mediation:bigoads-adapter:+" )
implementation ( "com.applovin.mediation:chartboost-adapter:+" )
implementation ( "com.google.android.gms:play-services-base:16.1.0" )
implementation ( "com.applovin.mediation:fyber-adapter:+" )
implementation ( "com.applovin.mediation:google-ad-manager-adapter:+" )
implementation ( "com.applovin.mediation:google-adapter:+" )
implementation ( "com.applovin.mediation:hyprmx-adapter:+" )
implementation ( "com.applovin.mediation:inmobi-adapter:+" )
implementation ( "com.squareup.picasso:picasso:2.71828" )
implementation ( "androidx.recyclerview:recyclerview:1.1.0" )
implementation ( "com.applovin.mediation:ironsource-adapter:+" )
implementation ( "com.applovin.mediation:vungle-adapter:+" )
implementation ( "com.applovin.mediation:line-adapter:+" )
implementation ( "com.applovin.mediation:maio-adapter:+" )
implementation ( "com.applovin.mediation:facebook-adapter:+" )
implementation ( "com.applovin.mediation:mintegral-adapter:+" )
implementation ( "com.applovin.mediation:mobilefuse-adapter:+" )
implementation ( "com.applovin.mediation:moloco-adapter:+" )
implementation ( "com.applovin.mediation:ogury-presage-adapter:+" )
implementation ( "com.applovin.mediation:bytedance-adapter:+" )
implementation ( "com.applovin.mediation:pubmatic-adapter:+" )
implementation ( "com.applovin.mediation:smaato-adapter:+" )
implementation ( "com.applovin.mediation:unityads-adapter:+" )
implementation ( "com.applovin.mediation:verve-adapter:+" )
implementation ( "com.applovin.mediation:mytarget-adapter:+" )
implementation ( "com.applovin.mediation:yandex-adapter:+" )
implementation ( "com.applovin.mediation:yso-network-adapter:+" )
添加您的 Google 竞价和 Google AdMob / Google Ad Manager 应用 ID
在应用的 AndroidManifest.xml
中,在 <application>
标签内添加一个 <meta-data>
标签
。以下示例展示了此标签的正确属性。
请用您的 Google 竞价和 Google AdMob / Google Ad Manager 应用 ID 替换 «your-admob-app-id»
。
<? xml version = " 1.0 " encoding = " utf-8 " ?>
android:name = " com.google.android.gms.ads.APPLICATION_ID "
android:value = " «your-admob-app-id» " />
Gradle 错误
Google AdMob 需要Android Gradle 插件 4.2.0 或更高版本,Gradle 6.7.1 或更高版本。
如果看到以下错误信息,请更新 Android Gradle 插件和 Gradle 版本:
AAPT: error: unexpected element <property> found in <manifest><application>.
compileSdkVersion
Google 移动广告 SDK 23.1.0 及更新版本要求 compileSdkVersion
为 34 或更高。
在应用的 build.gradle
中将 compileSdkVersion
设置为 34
或更高。
请参阅 Google 移动广告 SDK 发行说明 ,了解最新的 compileSdkVersion
要求。
初始化 Amazon SDK
Amazon Publisher Services SDK 需要在 MAX SDK 之外进行初始化:
// Amazon requires an 'Activity' instance
AdRegistration . getInstance ( " AMAZON_APP_ID " , this ) ;
AdRegistration . setAdNetworkInfo ( new DTBAdNetworkInfo ( DTBAdNetwork . MAX ) ) ;
AdRegistration . setMRAIDSupportedVersions ( new String [] { " 1.0 " , " 2.0 " , " 3.0 " } ) ;
AdRegistration . setMRAIDPolicy ( MRAIDPolicy . CUSTOM ) ;
从 Amazon SDK 加载横幅或 MREC 广告
要在 MAX 中集成 Amazon 广告,则必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 AdError
传递至 MaxAdView
实例。
为此,可以调用 MaxAdView#setLocalExtraParameter()
。
if ( AppLovinSdkUtils . isTablet ( getApplicationContext () ) )
amazonAdSlotId = " «Amazon-leader-slot-ID» " ;
adFormat = MaxAdFormat . LEADER ;
amazonAdSlotId = " «Amazon-banner-slot-ID» " ;
adFormat = MaxAdFormat . BANNER ;
// Raw size will be 320x50 for BANNERs on phones, and 728x90 for LEADERs on tablets
AppLovinSdkUtils . Size rawSize = adFormat . getSize () ;
DTBAdSize size = new DTBAdSize ( rawSize .getWidth () , rawSize .getHeight () , amazonAdSlotId ) ;
DTBAdRequest adLoader = new DTBAdRequest () ;
adLoader . setSizes ( size ) ;
adLoader . loadAd ( new DTBAdCallback ()
public void onSuccess ( @ NonNull final DTBAdResponse dtbAdResponse )
// 'adView' is your instance of MaxAdView
adView . setLocalExtraParameter ( " amazon_ad_response " , dtbAdResponse ) ;
public void onFailure ( @ NonNull final AdError adError )
// 'adView' is your instance of MaxAdView
adView . setLocalExtraParameter ( " amazon_ad_error " , adError ) ;
class ExampleActivity : Activity()
private val adView: MaxAdView? = null
val amazonAdSlotId: String
val adFormat: MaxAdFormat
if (AppLovinSdkUtils. isTablet (applicationContext))
amazonAdSlotId = " «Amazon-leader-slot-ID» "
adFormat = MaxAdFormat.LEADER
amazonAdSlotId = " «Amazon-banner-slot-ID» "
adFormat = MaxAdFormat.BANNER
// Raw size will be 320x50 for BANNERs on phones, and 728x90 for LEADERs on tablets
val rawSize = adFormat.size
val size = DTBAdSize (rawSize.width, rawSize.height, amazonAdSlotId)
val adLoader = DTBAdRequest ()
adLoader. loadAd ( object : DTBAdCallback
override fun onSuccess (dtbAdResponse: DTBAdResponse)
// 'adView' is your instance of MaxAdView
adView?. setLocalExtraParameter ( "amazon_ad_response" , dtbAdResponse)
override fun onFailure (adError: AdError)
// 'adView' is your instance of MaxAdView
adView?. setLocalExtraParameter ( "amazon_ad_error" , adError)
DTBAdRequest adLoader = new DTBAdRequest () ;
adLoader . setSizes ( new DTBAdSize ( 300 , 250 , amazonAdSlotId ) ) ;
adLoader . loadAd ( new DTBAdCallback ()
public void onSuccess ( @ NonNull final DTBAdResponse dtbAdResponse )
// 'adView' is your instance of MaxAdView
adView . setLocalExtraParameter ( " amazon_ad_response " , dtbAdResponse ) ;
public void onFailure ( @ NonNull final AdError adError )
// 'adView' is your instance of MaxAdView
adView . setLocalExtraParameter ( " amazon_ad_error " , adError ) ;
class ExampleActivity : Activity()
private val adView: MaxAdView? = null
val amazonAdSlotId: String
val adLoader = DTBAdRequest ()
adLoader. setSizes ( DTBAdSize ( 300 , 250 , amazonAdSlotId))
adLoader. loadAd ( object : DTBAdCallback
override fun onSuccess (dtbAdResponse: DTBAdResponse)
// 'adView' is your instance of MaxAdView
adView !! . setLocalExtraParameter ( "amazon_ad_response" , dtbAdResponse)
override fun onFailure (adError: AdError)
// 'adView' is your instance of MaxAdView
adView !! . setLocalExtraParameter ( "amazon_ad_error" , adError)
从 Amazon SDK 加载插屏广告
要将 Amazon 插屏广告集成到 MAX,必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 AdError
传递至 MaxInterstitialAd
实例。
您可以通过调用 MaxInterstitialAd#setLocalExtraParameter()
来完成此操作。
private static MaxInterstitialAd interstitialAd ; // static to ensure only one instance exists
private static boolean isFirstLoad = true ;
if ( interstitialAd == null )
interstitialAd = new MaxInterstitialAd ( " «MAX-inter-ad-unit-ID» " , this ) ;
DTBAdRequest adLoader = new DTBAdRequest () ;
adLoader . setSizes ( new DTBAdSize. DTBInterstitialAdSize ( " «Amazon-inter-slot-ID» " ) ) ;
adLoader . loadAd ( new DTBAdCallback ()
public void onSuccess ( @ NonNull final DTBAdResponse dtbAdResponse )
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd . setLocalExtraParameter ( " amazon_ad_response " , dtbAdResponse ) ;
public void onFailure ( @ NonNull final AdError adError )
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd . setLocalExtraParameter ( " amazon_ad_error " , adError ) ;
class ExampleActivity : Activity()
private var interstitialAd: MaxInterstitialAd? = null // static to ensure only one instance exists
private var isFirstLoad = true
if (interstitialAd == null )
interstitialAd = MaxInterstitialAd ( " «MAX-inter-ad-unit-ID» " , this )
val adLoader = DTBAdRequest ()
adLoader. setSizes (DTBAdSize. DTBInterstitialAdSize ( " «Amazon-inter-slot-ID» " ))
adLoader. loadAd ( object : DTBAdCallback
override fun onSuccess (dtbAdResponse: DTBAdResponse)
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd !! . setLocalExtraParameter ( "amazon_ad_response" , dtbAdResponse)
interstitialAd !! . loadAd ()
override fun onFailure (adError: AdError)
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd !! . setLocalExtraParameter ( "amazon_ad_error" , adError)
interstitialAd !! . loadAd ()
interstitialAd !! . loadAd ()
从 Amazon SDK 加载视频插屏广告
要在 MAX 中集成 Amazon 视频插屏广告,必须先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 AdError
传递至 MaxInterstitialAd
实例。
您可以通过调用 MaxInterstitialAd#setLocalExtraParameter()
来完成此操作。
private static MaxInterstitialAd interstitialAd ; // static to ensure only one instance exists
private static boolean isFirstLoad = true ;
if ( interstitialAd == null )
interstitialAd = new MaxInterstitialAd ( " «MAX-inter-ad-unit-ID» " , this ) ;
DTBAdRequest adLoader = new DTBAdRequest () ;
// Switch video player width and height values(320, 480) depending on device orientation
adLoader . setSizes ( new DTBAdSize. DTBVideo ( 320 , 480 , " «Amazon-video-inter-slot-ID» " ) ) ;
adLoader . loadAd ( new DTBAdCallback ()
public void onSuccess ( @ NonNull final DTBAdResponse dtbAdResponse )
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd . setLocalExtraParameter ( " amazon_ad_response " , dtbAdResponse ) ;
public void onFailure ( @ NonNull final AdError adError )
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd . setLocalExtraParameter ( " amazon_ad_error " , adError ) ;
class ExampleActivity : Activity()
private var interstitialAd: MaxInterstitialAd? = null // static to ensure only one instance exists
private var isFirstLoad = true
if (interstitialAd == null )
interstitialAd = MaxInterstitialAd ( " «MAX-inter-ad-unit-iD» " , this )
val adLoader = DTBAdRequest ()
// Switch video player width and height values(320, 480) depending on device orientation
adLoader. setSizes (DTBAdSize. DTBVideo ( 320 , 480 , " «Amazon-video-inter-slot-ID» " ))
adLoader. loadAd ( object : DTBAdCallback
override fun onSuccess (dtbAdResponse: DTBAdResponse)
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd !! . setLocalExtraParameter ( "amazon_ad_response" , dtbAdResponse)
interstitialAd !! . loadAd ()
override fun onFailure (adError: AdError)
// 'interstitialAd' is your instance of MaxInterstitialAd
interstitialAd !! . setLocalExtraParameter ( "amazon_ad_error" , adError)
interstitialAd !! . loadAd ()
interstitialAd !! . loadAd ()
从 Amazon SDK 加载激励视频广告
要在 MAX 中集成 Amazon 激励视频广告,请先加载 Amazon 广告。
在加载 MAX 广告之前,将 DTBAdResponse
或 AdError
传递至 MaxRewardedAd
实例。
您可以通过调用 MaxRewardedAd#setLocalExtraParameter()
来完成此操作。
private static MaxRewardedAd rewardedAd ; // static to ensure only one instance exists
private static boolean isFirstLoad = true ;
if ( rewardedAd == null )
rewardedAd = MaxRewardedAd . getInstance ( " «MAX-rewarded-ad-unit-ID» " , this ) ;
DTBAdRequest adLoader = new DTBAdRequest () ;
// Switch video player width and height values(320, 480) depending on device orientation
adLoader . setSizes ( new DTBAdSize. DTBVideo ( 320 , 480 , " «Amazon-video-rewarded-slot-ID» " ) ) ;
adLoader . loadAd ( new DTBAdCallback ()
public void onSuccess ( @ NonNull final DTBAdResponse dtbAdResponse )
// 'rewardedAd' is your instance of MaxRewardedAd
rewardedAd . setLocalExtraParameter ( " amazon_ad_response " , dtbAdResponse ) ;
public void onFailure ( @ NonNull final AdError adError )
// 'rewardedAd' is your instance of MaxRewardedAd
rewardedAd . setLocalExtraParameter ( " amazon_ad_error " , adError ) ;
private static MaxRewardedAd rewardedAd; // static to ensure only one instance exists
private static boolean isFirstLoad = true ;
if ( rewardedAd == null )
rewardedAd = MaxRewardedAd. getInstance ( " «MAX-rewarded-ad-unit-ID» " , this );
DTBAdRequest adLoader = new DTBAdRequest ();
// Switch video player width and height values(320, 480) depending on device orientation
adLoader. setSizes ( new DTBAdSize. DTBVideo ( 320 , 480 , " «Amazon-video-rewarded-slot-ID» " ) );
adLoader. loadAd ( new DTBAdCallback ()
public void onSuccess (@NonNull final DTBAdResponse dtbAdResponse)
// 'rewardedAd' is your instance of MaxRewardedAd
rewardedAd. setLocalExtraParameter ( "amazon_ad_response" , dtbAdResponse );
public void onFailure (@NonNull final AdError adError)
// 'rewardedAd' is your instance of MaxRewardedAd
rewardedAd. setLocalExtraParameter ( "amazon_ad_error" , adError );
测试 Amazon Publisher Services
AppLovin 建议您为 Amazon SDK 启用测试模式,
以便接收测试广告。
通过进行以下调用来启用测试模式:
AdRegistration . enableTesting ( true ) ;
AdRegistration . enableLogging ( true ) ;
您可以过滤瀑布流,使其只包含 Amazon 广告。
为此,请在Mediation Debugger 中选择Select Live Network ,然后选择 Amazon 平台。
Meta Audience Network 数据处理选项
如果您不想启用限制数据使用 (LDU) 模式,请向 SetDataProcessingOptions()
传递一个空字符串数组:
import com.facebook.ads.AdSettings ;
AdSettings . setDataProcessingOptions ( new String [] {} ) ;
import com.facebook.ads.AdSettings
AdSettings. setDataProcessingOptions ( arrayOf <String>() )
要为用户启用 LDU 并指定用户地理位置,请以如下形式调用 SetDataProcessingOptions()
:
import com.facebook.ads.AdSettings ;
AdSettings . setDataProcessingOptions ( new String [] { " LDU " }, «country» , «state» ) ;
import com.facebook.ads.AdSettings
AdSettings. setDataProcessingOptions ( arrayOf ( "LDU" ), «country» , «state» )
使用 Google UMP
如果您使用 Google UMP 作为 CMP,则可以判断用户是否已向 Meta 授予许可。
为此,请使用如下代码:
Boolean hasMetaConsent = AppLovinPrivacySettings . getAdditionalConsentStatus ( 89 ) ;
if ( hasMetaConsent != null )
// Set Meta Data Processing Options accordingly.
// AC String is not available on disk. Please check for consent status after the user completes the CMP flow.
val hasMetaConsent = AppLovinPrivacySettings. getAdditionalConsentStatus ( 89 )
if ( hasMetaConsent != null )
// Set Meta Data Processing Options accordingly.
// AC String is not available on disk. Please check for consent status after the user completes the CMP flow.
Meta Audience Network 加利福尼亚州用户的数据处理选项
要了解如何启用 Meta Audience Network 的 “Limited Data Use”(限制数据使用)标记,请参阅Meta 开发者文档 。
Android Manifest 合并错误
一些平台 SDK 会在其打包的 Android Manifest 文件中使用 <queries>
元素。
如果使用的 Android Gradle 插件版本不兼容,则会导致以下编译错误之一:
com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
error: unexpected element <queries> found in <manifest>.
Missing 'package' key attribute on element package at [:com.my.target.mytarget-sdk-5.11.3:]
AndroidManifest Validation failed
要修复此错误,请升级至以下 Android Gradle 插件版本之一。
这些版本支持 <queries>
元素:
当前 Android Gradle 插件版本 支持 <queries>
元素的版本 4.1.* 全部 4.0.* 4.0.1+ 3.6.* 3.6.4+ 3.5.* 3.5.4+ 3.4.* 3.4.3+ 3.3.* 3.3.3+
适配器平台信息