要展示广告并赚取收入,第一步是将 Google 移动广告 SDK 集成到应用中。集成 SDK 后,您可以选择一种广告格式(如原生广告或激励视频广告),然后按照相应步骤进行实现。
准备工作
为了让您的应用做好准备,请完成以下部分中的步骤。
应用要满足的前提条件
确保您应用的 build 文件使用以下值:
- 最低 SDK 版本为
21
或更高版本 - 编译
33
或更高版本的 SDK
- 最低 SDK 版本为
在 AdMob 帐号中设置应用
完成以下步骤,将您的应用注册为 AdMob 应用:
在 AdMob 中注册您的应用。 此步骤将创建一个具有唯一 AdMob 应用 ID 的 AdMob 应用,本指南稍后需要用到此 ID。
配置您的应用
在您的项目级
build.gradle
文件中,同时在buildscript
和allprojects
两个部分中添加 Google 的 Maven 制品库和 Maven 中央制品库:buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }
将 Google 移动广告 SDK 的依赖项添加到您的模块的应用级 Gradle 文件(通常为
app/build.gradle
):dependencies { implementation 'com.google.android.gms:play-services-ads:23.1.0' }
将您的 AdMob 应用 ID(可在AdMob网页界面中找到)添加到应用的
AndroidManifest.xml
文件中。为此,请添加包含android:name="com.google.android.gms.ads.APPLICATION_ID"
的<meta-data>
标记。您可以在 AdMob 网页界面中找到您的应用 ID。对于android:value
,请插入您自己的 AdMob 应用 ID,并用英文引号括起来。<manifest> <application> <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/> </application> </manifest>
在真实应用中,将示例应用 ID 替换为您的实际AdMob 应用 ID。如果您只是在 Hello World 应用中试用 SDK,可以使用示例 ID。
另请注意,如果未能完全按照如下所示添加
<meta-data>
标记,会导致崩溃,并显示以下消息:Missing application ID.
(可选)为之前的版本声明
AD_ID
权限,以便与 Android 13 兼容。如果您的应用使用 Google 移动广告 SDK 版本 20.4.0 或更高版本,您可以跳过此步骤,因为 SDK 会自动声明
com.google.android.gms.permission.AD_ID
权限并可在广告 ID 可用时随时访问。对于使用 Google 移动广告 SDK 版本 20.3.0 或更低版本,并且以 Android 13 为目标平台的应用,您必须在
AndroidManifest.xml
文件中添加com.google.android.gms.permission.AD_ID
权限,以便 Google 移动广告 SDK 访问广告 ID:<manifest> <application> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/> <!-- For apps targeting Android 13 or higher & GMA SDK version 20.3.0 or lower --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> </application> </manifest>
如需详细了解
com.google.android.gms.permission.AD_ID
权限声明(包括如何停用该权限),请参阅这篇 Play 管理中心文章。
初始化 Google 移动广告 SDK
在加载广告之前,请先调用MobileAds.initialize()
初始化 Google 移动广告 SDK。
此方法会初始化 SDK,并在 Google 移动广告 SDK 和适配器初始化都完成后或在 30 秒超时后调用完成监听器。此操作仅需执行一次,最好是在应用启动时执行。
Google 移动广告 SDK 或中介合作伙伴 SDK 可能会在初始化时预加载广告。如果您需要获得欧洲经济区 (EEA) 用户的同意,请设置任何专门用于特定请求的标志(例如
setTagForChildDirectedTreatment()
或 setTagForUnderAgeOfConsent()
),或者在加载广告之前采取其他措施,请确保在初始化 Google 移动广告 SDK 之前完成相应操作。
以下示例展示了如何在 Activity 中的后台线程上调用 initialize()
方法:
Java
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(
() -> {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this, initializationStatus -> {});
})
.start();
}
}
Kotlin
import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this@MainActivity) {}
}
}
}
选择广告格式
Google 移动广告 SDK 现已导入完毕,您可以随时植入广告。AdMob 提供了许多不同的广告格式,您可以根据您应用的用户体验选择最契合的一种。
横幅
横幅广告单元展示会占用应用部分布局的矩形广告。它们可以在设定的一段时间后自动刷新。这意味着,用户会定期查看新广告,即使他们停留在您的应用中的同一个屏幕上也可以。此类广告也是最容易植入的广告格式。
插页式广告
插页式广告单元会在您的应用中展示全屏广告。请在应用界面中的自然停顿点和过渡点展示这些广告,例如在游戏应用中通过关卡后。
原生
在原生广告中,您可以自定义素材资源(例如标题和号召性用语)在应用中的呈现方式。通过自行设置广告样式,您可以呈现出自然、不突兀的广告展示效果,从而使用户体验更加丰富。
已奖励
激励广告单元让用户能够通过玩游戏、参与问卷调查或观看视频来获得应用内奖励,例如金币、额外的生命或积分。您可以为不同的广告单元设置不同的奖励,并指定用户获得的奖励价值和奖品。
插页式激励广告
插页式激励广告是一种激励用户的新型广告格式,借助这种格式,您可以通过在应用中的自然过渡点自动展示的广告向用户提供奖励,比如金币或额外的生命值。
与激励广告不同,用户无需自行选择即可观看插页式激励广告。
与激励广告中的“选择观看”提示不同,插页式激励广告需要一个介绍画面,在其中公布奖励,并让用户有机会自主选择退出观看。
开屏广告
开屏广告是一种会在用户打开或切换回您的应用时显示的广告格式。这种广告会叠加在加载屏幕上。
其他资源
GitHub 上的 Google 移动广告代码库演示了如何使用此 API 提供的不同广告格式。