要实现这一目标,首先要将 Google 移动广告 SDK 集成到应用中, 展示广告并赚取收入集成 SDK 后,您可以 选择一种广告格式(例如原生广告或激励视频广告),然后按照相关步骤 实施。
准备工作
为了让您的应用做好准备,请完成以下部分中的步骤。
应用要满足的前提条件
确保您应用的 build 文件使用以下值:
- 最低 SDK 版本
21
或更高版本 - 编译 SDK 版本
33
或更高版本
- 最低 SDK 版本
配置您的应用
在 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' }
添加您的 Ad Manager 应用 ID(如 Ad Manager 网络界面、
AndroidManifest.xml
文件。为此,请添加包含以下内容的<meta-data>
标记:android:name="com.google.android.gms.ads.APPLICATION_ID"
。您可以 在 Ad Manager 网页界面中找到您的应用 ID。对于android:value
,插入您自己的 Ad Manager 应用 ID 用引号括起来。<manifest> <application> <!-- Sample Ad Manager 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 Ad Manager 应用 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,您随时可以植入广告了。 Ad Manager 提供了许多不同的广告格式,因此 您可以根据您应用的用户体验选择最契合的一种。
横幅
横幅广告单元展示的矩形广告会占用应用空间的一部分 布局。它们可以在设定的时间后自动刷新。这意味着 用户会定期查看新广告,即使他们保持不变 界面这种广告格式的植入方式也最简单。
插页式广告
插页式广告单元可在您的应用中展示全屏广告。放在自然的地方 应用界面中的停顿和过渡,例如在通关后 展示这种广告
原生
在原生广告中,您可以自定义素材资源(例如标题和 在您的应用中展示号召性用语。通过自行设置广告样式,您可以 制作自然、毫不唐突的广告展示方式,为富有价值的用户带来 体验
Google Ad Manager 提供了两种植入原生广告的方法:原生样式和 自定义呈现功能来投放标准原生广告
原生样式旨在简化原生广告的植入流程 如果您对这种格式比较不熟悉自定义呈现 旨在最大限度地让您自由地制作演示文稿。
激励广告
激励广告单元允许用户玩游戏、参与调查或观看视频, 获得应用内奖励,例如金币、额外的生命或积分。您可以设置 为不同广告单元设置不同的奖励,并指定奖励价值和 用户收到的项。
插页式激励广告
插页式激励广告是一种激励用户的新型广告格式 为自动展示的广告提供奖励,如金币或额外的生命 在应用自然过渡期间出现的问题
与激励广告不同,用户无需自行选择即可观看激励广告 插页式广告。
与激励广告中的选择观看提示不同,插页式激励广告需要 介绍奖励的屏幕,告知用户该奖励并让用户有机会选择退出 自己希望实现的目标
开屏广告
开屏广告是一种广告格式,会在用户打开或切换回 应用。广告会叠加在加载屏幕上。
其他资源
GitHub 上的 Google 移动广告代码库演示 如何使用此 API 提供的不同广告格式。