本指南介绍了如何使用 Google 移动广告 SDK 通过中介加载和展示来自 AppLovin 的广告,其中涵盖了出价集成和瀑布流集成。本指南还介绍了如何将 AppLovin 添加到广告单元的中介配置中,以及如何将 AppLovin SDK 和适配器集成到 Flutter 应用中。
支持的集成和广告格式
AppLovin 的 AdMob 中介适配器具有以下功能:
集成 | |
---|---|
出价 | |
瀑布流 | |
表现形式 | |
横幅 | 1 |
插页式广告 | |
激励广告 |
Waterfall 仅支持 320x50 和 728x90 横幅广告尺寸。出价功能不支持横幅广告。
要求
- 最新版 Google 移动广告 SDK
- Flutter 3.7.0 或更高版本
- 如需在 Android 上部署,则要求:
- Android API 级别 23 或更高级别
- 如需在 iOS 上部署,则要求:
- iOS 部署目标版本为 12.0 或更高版本
- 已配置 Google 移动广告 SDK 的 Flutter 项目,该项目应正常运行。如需了解详情,请参阅使用入门。
- 完成中介入门指南阅读。
第 1 步:在 AppLovin 界面中设置配置
如需设置 AdMob 广告单元,您需要 AppLovin SDK 密钥和报告密钥。如需查找这些值,请前往 AppLovin 界面 > 账号 > 密钥,即可查看这两个值。
如果您只打算集成出价,可以继续配置中介设置。
选择用于中介的应用
出价
出价集成不需要执行此步骤。
瀑布
在 AppLovin 界面上,选择变现部分下的应用,以查看已注册的应用。从可用应用列表中选择要与中介一起使用的应用。
创建区域
出价
出价集成不需要执行此步骤。
瀑布
在 AppLovin 界面上,选择变现部分下的可用区,即可查看已注册的可用区 ID。如果您已为应用创建所需的区域,请直接跳到第 2 步。 如需创建新的地区 ID,请点击创建地区。
输入广告资源 ID的名称,选择 Android 作为平台,然后选择广告类型。
选择固定 CPM 或 由 AppLovin 优化,为广告资源配置定价。您可以针对固定 CPM 选项按国家/地区配置 CPM。然后,点击保存。
Android
iOS
创建区域后,您可以在 Zone ID 列下找到区域 ID。
Android
iOS
更新 app-ads.txt
应用授权卖方 (app-ads.txt) 是一项 IAB Tech Lab 计划,有助于确保只通过您认定的授权渠道销售您的应用广告资源。为避免损失大量广告收入,您需要实施 app-ads.txt
文件。
如果您尚未完成此项设置,请为您的应用设置 app-ads.txt 文件。
若要为 Applovin 实现 app-ads.txt
,请将 AppLovin 添加到您的 app-ads.txt 文件。
启用测试模式
按照 AppLovin 的 MAX 测试模式指南中的说明启用 AppLovin 测试广告。
第 2 步:在 AdMob 界面中设置 AppLovin 需求
为广告单元配置中介设置
将 AppLovin Corp. 添加到 GDPR 和美国州级法规广告合作伙伴名单中
请按照欧洲法规设置和美国州级法规设置中的步骤,将 Applovin Corp. 添加到 AdMob 界面内的欧洲法规和美国州级法规广告合作伙伴名单中。
第 3 步:导入 AppLovin SDK 和适配器
通过 pub.dev 进行集成
在软件包的 pubspec.yaml
文件中添加以下依赖项,并确保使用的是 Applovin SDK 和适配器的最新版本:
dependencies:
gma_mediation_applovin: ^
手动集成
下载适用于 Applovin 的最新版 Google 移动广告中介插件,提取下载的文件,并将提取的插件文件夹(及其内容)添加到您的 Flutter 项目中。然后,通过添加以下依赖项,在 pubspec.yaml
文件中引用该插件:
dependencies:
gma_mediation_applovin:
path: path/to/local/package
第 4 步:在 AppLovin SDK 上实现隐私设置
欧盟地区用户意见征求和 GDPR
为了遵守 Google 的《欧盟地区用户意见征求政策》,您必须向欧洲经济区 (EEA)、英国和瑞士的用户披露某些信息,并征得他们同意,才能在法律要求的情况下使用 Cookie 或其他本地存储空间,以及收集、分享和使用个人数据以实现广告个性化。此政策反映了欧盟《电子隐私指令》和《一般数据保护条例》(GDPR) 的要求。您要负责验证用户意见是否已传播到中介链中的每个广告来源。Google 无法自动将用户意见传递给此类广告资源网。
AppLovin 支持从共享偏好设置中读取意见征求字符串,并相应地设置意见征求状态。如果您使用的 CMP 不会将意见征求字符串写入共享偏好设置,则可以使用 GmaMediationApplovin.setHasUserConsent()
和 GmaMediationApplovin.setIsAgeRestrictedUser()
方法。以下示例代码展示了如何将用户意见信息传递给 AppLovin SDK。您必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能够正确转发到 AppLovin SDK。
import 'package:gma_mediation_applovin/gma_mediation_applovin.dart';
// ...
GmaMediationApplovin.setHasUserConsent(true);
GmaMediationApplovin.setIsAgeRestrictedUser(true);
如需了解详情,请参阅 AppLovin 的隐私设置。
美国州级隐私保护法律
美国各州隐私保护法律要求向用户提供选择拒绝“出售”其“个人信息”(该法律中对这些术语做出了定义)的权利,“出售”方须在首页醒目位置提供“Do Not Sell My Personal Information”(不出售我的个人信息)链接,以供这些用户选择。美国州级隐私保护法律合规性指南可让您为 Google 广告投放启用受限的数据处理,但 Google 无法将此设置应用于您的中介链中的每个广告联盟。因此,您必须确定中介链中可能参与个人信息出售的每个广告联盟,并遵循这些广告联盟的指南来确保合规性。
适用于 AppLovin 的 Google 移动广告中介插件包含 GmaMediationApplovin.setDoNotSell()
方法。以下示例代码展示了如何将用户意见信息传递给 AppLovin SDK。必须在初始化 Google 移动广告 SDK 之前设置这些选项,以确保它们能正确转发到 AppLovin SDK。
import 'package:gma_mediation_applovin/gma_mediation_applovin.dart';
// ...
GmaMediationApplovin.setDoNotSell(true);
如需了解详情,请参阅 AppLovin 的隐私权文档。
第 5 步:添加必需的代码
Android
AppLovin 集成不需要其他代码。
iOS
SKAdNetwork 集成
按照 AppLovin 的文档将 SKAdNetwork 标识符添加到项目的 Info.plist 文件中。
第 6 步:测试您的实现
启用测试广告
请务必为 AdMob 注册测试设备,并在 Applovin 界面中启用测试模式。
验证测试广告
若要验证您是否能收到来自 Applovin 的测试广告,请在广告检查器中启用 single ad source testing(单个广告来源测试),并选择 Applovin (Bidding) and Applovin (Waterfall)(Applovin [出价] 和 Applovin [瀑布流])作为广告来源。
可选步骤
广告资源网专用参数
AppLovin 适配器支持将 AppLovinMediationExtras
对象传递给广告请求,以设置特定于广告联盟的参数。以下示例代码展示了如何使用 isMuted
参数停用视频广告中的音频:
AppLovinMediationExtras applovinExtras = AppLovinMediationExtras(isMuted: true)
AdRequest request = AdRequest(
keywords: <String>['foo', 'bar'],
contentUrl: 'http://foo.com/bar.html',
mediationExtras: [applovinExtras],
);
优化
在启动 activity 中添加对 GmaMediationApplovin.initializeSdk('sdkKey')
的调用,可让 AppLovin 在应用启动后立即跟踪事件。
错误代码
如果适配器未能收到来自 AppLovin 的广告,发布商可以使用 ResponseInfo
来检查广告响应中归属于以下类的底层错误:
Android
com.google.ads.mediation.applovin.mediation.ApplovinAdapter
com.google.ads.mediation.applovin.AppLovinMediationAdapter
iOS
GADMAdapterAppLovin
GADMAdapterAppLovinRewardBasedVideoAd
GADMediationAdapterAppLovin
以下是当广告加载失败时,AppLovin 适配器会抛出的代码和随附的消息:
Android
错误代码 | 原因 |
---|---|
-1009 至 -1、204 | AppLovin SDK 返回了错误。如需了解详情,请参阅 AppLovin 的文档。 |
101 | 所请求的广告尺寸与 AppLovin 支持的横幅尺寸不一致。 |
103 | 上下文为空。 |
104 | AppLovin 出价令牌为空。 |
105 | 针对同一广告区请求了多个广告。AppLovin 每个广告资源只能一次加载 1 个广告。 |
106 | 广告尚无法展示。 |
108 | AppLovin 适配器不支持所请求的广告格式。 |
109 | 上下文不是 Activity 实例。 |
110 | 服务器参数无效(例如 SDK 密钥为 null)。 |
112 | 用户是儿童。 |
iOS
错误代码 | 原因 |
---|---|
-1009 至 -1、204 | AppLovin SDK 返回了错误。如需了解详情,请参阅 AppLovin 的文档。 |
101 | 所请求的广告尺寸与 AppLovin 支持的横幅尺寸不一致。 |
102 | AdMob 界面中配置的 AppLovin 服务器参数缺失/无效。 |
103 | 未能展示 AppLovin 广告。 |
104 | 针对同一广告区请求了多个广告。AppLovin 每个广告资源只能一次加载 1 个广告。 |
105 | 找不到 AppLovin SDK 密钥。 |
107 | 出价令牌为空。 |
108 | AppLovin 适配器不支持所请求的广告格式。 |
110 | AppLovin 发送了成功的加载回调,但加载了零个广告。 |
111 | 无法检索 AppLovin SDK 的实例。 |
112 | 用户是儿童。 |
113 | AppLovin SDK 共享实例尚未初始化。 |
114 | AppLovin SDK 无法返回出价令牌。 |
AppLovin Flutter 中介适配器变更日志
版本 2.3.2
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 2.3.1
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 2.3.0
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 2.2.1
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 2.2.0
- 使用 Google 移动广告 Flutter 插件 6.0.0 版构建和测试。
版本 2.1.0
- 使用 Google 移动广告 Flutter 插件 5.3.1 版构建并测试。
版本 2.0.0
- 使用 Google 移动广告 Flutter 插件 5.3.1 版构建并测试。
版本 1.2.0
- 使用 Google 移动广告 Flutter 插件 5.1.0 版构建和测试。
版本 1.1.0
- GmaMediationApplovin 的 API 不再是静态的。
- 支持 AppLovin Android 适配器版本 12.4.3.0。
- 支持 AppLovin iOS 适配器版本 12.4.2.0。
- 使用 Google 移动广告 Flutter 插件 5.1.0 版构建和测试。
版本 1.0.0
- 初始版本。
- 使用 Google 移动广告 Flutter 插件 5.0.0 版构建和测试。