Skip to content

Android 海外第三方广告网络

概述

优聚智汇 SDK 支持集成多个海外主流广告网络,帮助开发者在全球范围内最大化广告收益。本文档将介绍如何集成海外第三方广告网络。

支持的海外广告网络

广告网络平台支持的广告类型集成难度
AdMobAndroid/iOS横幅、激励视频、原生、插屏、开屏中等
Facebook Audience NetworkAndroid/iOS横幅、激励视频、原生、插屏中等
Unity AdsAndroid/iOS横幅、激励视频、插屏简单
IronSourceAndroid/iOS横幅、激励视频、原生、插屏中等
AppLovinAndroid/iOS横幅、激励视频、原生、插屏中等

集成步骤

1. 申请账号

在集成海外广告网络前,您需要在各平台申请开发者账号:

2. 添加依赖

在您的应用级 build.gradle 文件中添加海外广告网络依赖:

gradle
dependencies {
    // 优聚智汇 SDK
    implementation 'com.ujuad:sdk:1.0.0'
    
    // AdMob SDK
    implementation 'com.google.android.gms:play-services-ads:20.5.0'
    
    // Facebook Audience Network SDK
    implementation 'com.facebook.android:audience-network-sdk:6.11.0'
    
    // Unity Ads SDK
    implementation 'com.unity3d.ads:unity-ads:4.4.1'
    
    // IronSource SDK
    implementation 'com.ironsource.sdk:mediationsdk:7.2.7.0'
    
    // AppLovin SDK
    implementation 'com.applovin:applovin-sdk:11.4.2'
}

3. 配置 AndroidManifest.xml

AndroidManifest.xml 文件中添加必要的配置:

xml
<!-- AdMob 配置 -->
<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="YOUR_ADMOB_APP_ID" />

<!-- Facebook Audience Network 配置 -->
<meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="YOUR_FACEBOOK_APP_ID" />

<!-- Unity Ads 配置 -->
<meta-data
    android:name="unity.splash-mode"
    android:value="0" />
<meta-data
    android:name="unity.fullscreen.backgroundcolor"
    android:value="#000000" />

4. 初始化海外广告网络

Application 类的 onCreate 方法中初始化海外广告网络:

java
private void initOverseasAdNetworks() {
    // 初始化 AdMob
    initAdMob();
    
    // 初始化 Facebook Audience Network
    initFacebook();
    
    // 初始化 Unity Ads
    initUnityAds();
    
    // 初始化 IronSource
    initIronSource();
    
    // 初始化 AppLovin
    initAppLovin();
}

private void initAdMob() {
    // AdMob 初始化代码
    MobileAds.initialize(this, initializationStatus -> {
        Log.d("AdMob", "AdMob 初始化成功");
    });
}

private void initFacebook() {
    // Facebook Audience Network 初始化代码
    AudienceNetworkAds.initialize(this);
    Log.d("Facebook", "Facebook Audience Network 初始化成功");
}

private void initUnityAds() {
    // Unity Ads 初始化代码
    UnityAds.initialize(this, "YOUR_UNITY_GAME_ID", false, new IUnityAdsInitializationListener() {
        @Override
        public void onInitializationComplete() {
            Log.d("UnityAds", "Unity Ads 初始化成功");
        }
        
        @Override
        public void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) {
            Log.e("UnityAds", "Unity Ads 初始化失败: " + message);
        }
    });
}

private void initIronSource() {
    // IronSource 初始化代码
    IronSource.init(this, "YOUR_IRONSOURCE_APP_KEY");
    Log.d("IronSource", "IronSource 初始化成功");
}

private void initAppLovin() {
    // AppLovin 初始化代码
    AppLovinSdk.getInstance(this).setMediationProvider("max");
    AppLovinSdk.getInstance(this).initializeSdk(config -> {
        Log.d("AppLovin", "AppLovin 初始化成功");
    });
}

广告单元配置

1. 创建广告单元

在各广告网络平台创建广告单元,并获取广告单元 ID:

  • AdMob:登录 AdMob 平台 → 应用管理 → 创建广告单元
  • Facebook Audience Network:登录 Facebook 开发者平台 → 应用管理 → 创建广告位
  • Unity Ads:登录 Unity 开发者平台 → 项目管理 → 创建广告位
  • IronSource:登录 IronSource 平台 → 应用管理 → 创建广告位
  • AppLovin:登录 AppLovin 平台 → 应用管理 → 创建广告位

2. 在优聚智汇后台配置

登录优聚智汇开发者后台,在应用设置中配置海外广告网络的广告单元 ID:

  1. 进入应用管理 → 选择应用
  2. 点击 "第三方广告网络" 选项
  3. 填写各广告网络的 App ID 和广告单元 ID
  4. 保存配置

广告加载与展示

1. 配置广告源优先级

在优聚智汇后台配置广告源优先级,决定广告请求的顺序:

  • 瀑布流模式:按优先级顺序请求广告,直到获取到广告
  • 实时竞价:根据预估收益实时选择最优广告

2. 加载广告

使用优聚智汇 SDK 的标准 API 加载广告,SDK 会自动处理海外广告网络的请求:

java
// 加载激励视频广告
RewardedVideoAdConfig config = new RewardedVideoAdConfig.Builder()
    .setAdUnitId("YOUR_REWARDED_VIDEO_AD_UNIT_ID")
    .setUserId("USER_ID")
    .build();

RewardedVideoAd rewardedVideoAd = new RewardedVideoAd(this, config);
rewardedVideoAd.setAdListener(new RewardedVideoAdListener() {
    // 回调方法
});

rewardedVideoAd.loadAd();

调试与测试

1. 测试模式

在开发阶段,启用各广告网络的测试模式:

java
// 启用 AdMob 测试模式
MobileAds.setRequestConfiguration(
    new RequestConfiguration.Builder()
        .setTestDeviceIds(Arrays.asList("YOUR_TEST_DEVICE_ID"))
        .build()
);

// 启用 Facebook Audience Network 测试模式
AudienceNetworkAds.isTestMode(true);

// 启用 Unity Ads 测试模式
UnityAds.setTestMode(true);

2. 测试广告单元

使用各广告网络提供的测试广告单元 ID 进行测试:

  • AdMob:使用平台提供的测试广告单元 ID
  • Facebook Audience Network:使用平台提供的测试广告位 ID
  • Unity Ads:使用平台提供的测试广告位 ID

常见问题

Q: 海外广告网络初始化失败怎么办?

A: 可能的原因:

  • App ID 不正确
  • 网络连接问题(可能需要 VPN)
  • SDK 版本不兼容
  • 权限配置问题
  • 地区限制

Q: 海外广告为什么不显示?

A: 可能的原因:

  • 广告单元 ID 不正确
  • 广告库存不足
  • 地区限制
  • 测试设备未添加
  • 广告网络配置错误

Q: 如何提高海外广告的填充率?

A: 建议:

  • 集成多个广告网络
  • 合理配置广告源优先级
  • 优化广告加载策略
  • 确保应用符合各平台政策
  • 提高应用用户活跃度

最佳实践

  1. 多网络集成:集成多个广告网络,提高填充率
  2. 地区优化:根据用户地区配置不同的广告网络优先级
  3. 合规性:确保应用符合各广告网络的政策要求
  4. 测试优化:充分测试各广告网络的表现
  5. 数据分析:分析各广告网络的收益数据,不断优化
  6. 及时更新:及时更新各广告网络的 SDK 版本

相关链接