要展示广告并赚取收入,第一步是将 Google 移动广告 SDK 集成到应用中。集成 SDK 后,您可以选择一种广告格式(如原生广告或激励视频广告),然后按照相应步骤进行实现。
准备工作
为了让您的应用做好准备,请完成以下部分中的步骤。
应用要满足的前提条件
确保您应用的 build 文件使用以下值:
minSdkVersion
达到19
或更高版本compileSdkVersion
达到33
或更高版本
配置您的应用
在您的项目级
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:22.5.0' }
将可在Ad Manager网页界面中标识的 Ad Manager 应用 ID 添加到应用的
AndroidManifest.xml
文件中。为此,请添加包含android:name="com.google.android.gms.ads.APPLICATION_ID"
的<meta-data>
标记。您可以在 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>
在真实应用中,请使用您的实际 Ad Manager 应用 ID,而不是上面列出的 ID。如果您只想在一个 Hello World 应用中试用 SDK,可以使用上面显示的示例应用 ID。
另请注意,如果未能按上述方式添加
<meta-data>
标记,会导致崩溃,并显示以下消息:The Google Mobile Ads SDK was initialized incorrectly.
(可选)为之前的版本声明
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,并在初始化完成后或 30 秒超时后回调完成监听器。此操作仅需执行一次,最好是在应用启动时执行。
在调用 MobileAds.initialize()
时,Google 移动广告 SDK 或中介合作伙伴 SDK 可能会预加载广告。如果您需要获得欧洲经济区 (EEA) 用户的同意,请设置任何专门用于特定请求的标记(例如 tagForChildDirectedTreatment
或 tag_for_under_age_of_consent
),或者在加载广告之前采取任何其他相关操作,并确保在初始化 Google 移动广告 SDK 之前先完成这些操作。
在 Activity 中调用 initialize()
方法的示例如下:
示例 MainActivity(节选)
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);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
}
}
Kotlin
import com.google.android.gms.ads.MobileAds
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
}
}
如果您使用的是中介功能,请等到调用完成处理程序后再加载广告,因为这可确保初始化所有的中介适配器。
选择广告格式
Google 移动广告 SDK 现已导入,您随时可以植入广告了。Ad Manager 提供了许多不同的广告格式,您可以根据您应用的用户体验选择最契合的一种。
横幅
横幅广告是在设备屏幕的顶部或底部展示的矩形广告。用户与应用互动时,横幅广告会停留在屏幕上,并且可在一段时间后自动刷新。如果您是刚开始接触移动广告的新手,横幅广告是您的绝佳选择。
插页式广告
插页式广告是全屏广告,它会覆盖整个应用界面,直到用户将其关闭。 在应用执行流程的自然停顿点,例如游戏的不同关卡之间,或一项任务完成后,最适合投放这类广告。
原生
与应用的外观和风格融为一体的定制广告。您可以决定这类广告的投放方式和位置,从而让版式与应用的设计风格更为统一。
Google Ad Manager 提供了两种植入原生广告的方法:原生样式和自定义呈现。
原生样式旨在尽可能地简化原生广告的植入过程。如果您刚接触原生广告,那么此方法是不错的选择。自定义呈现旨在为您提供尽可能大的自由发挥空间来呈现广告展示效果。
植入原生广告 | 实现原生样式 |
已奖励
向观看短视频和与试玩广告和问卷调查互动的用户予以奖励的广告。该广告可供免费畅玩的应用创收。
其他资源
GitHub 上的 Google 移动广告代码库演示了如何使用此 API 提供的不同广告格式。