要实现这一目标,首先要将 Google 移动广告 SDK 集成到应用中, 展示广告并赚取收入集成 SDK 后,您可以 选择一种广告格式(例如原生广告或激励视频广告),然后按照相关步骤 实施。
准备工作
为了让您的应用做好准备,请完成以下部分中的步骤。
应用要满足的前提条件
确保您应用的 build 文件使用以下值:
- 最低 SDK 版本
21
或更高版本 - 编译 SDK 版本
33
或更高版本
- 最低 SDK 版本
在您的 AdMob 账号中设置应用
完成以下步骤,将您的应用注册为 AdMob 应用:
在 AdMob 中注册您的应用。 此步骤将使用唯一的 AdMob 应用创建 AdMob 应用 此 ID中需要使用此 ID 指南。
配置您的应用
在 Gradle 设置文件中,添加 Google 的 Maven 制品库和 Maven 中央代码库:
Kotlin
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "My Application" include(":app")
Groovy
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "My Application" include ':app'
将 Google 移动广告 SDK 的依赖项添加到您的应用级 build 文件:
Kotlin
dependencies { implementation("com.google.android.gms:play-services-ads:23.3.0") }
Groovy
dependencies { implementation 'com.google.android.gms:play-services-ads:23.3.0' }
添加您的 AdMob 应用 ID(如 AdMob 网络界面、
AndroidManifest.xml
文件。为此,请添加包含以下内容的<meta-data>
标记:android:name="com.google.android.gms.ads.APPLICATION_ID"
。您可以 在 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 替换为您的实际应用 ID AdMob 应用 ID。在以下情况下,您可以使用示例 ID: 您只是在一个 Hello World 应用中试用了 SDK。
另请注意,如果添加
<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 为目标平台,则必须将
com.google.android.gms.permission.AD_ID
权限AndroidManifest.xml
文件添加到 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()
。
此方法会初始化 SDK,并在 Google 移动广告 SDK 和适配器初始化已完成,或 30 秒超时。此操作仅需执行一次,最好是在应用启动时执行。
广告可能会由 Google 移动广告 SDK 或中介合作伙伴 SDK 预加载
如果您需要征得欧洲用户的同意
欧洲经济区 (EEA),请设置任何特定请求的标志,例如
setTagForChildDirectedTreatment()
或
setTagForUnderAgeOfConsent()
,
或
否则,请在加载广告前采取措施,请确保在初始化
Google 移动广告 SDK
以下示例展示了如何在后台调用 initialize()
方法
一个 Activity 中的线程:
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 提供的不同广告格式。