এবার শুরু করা যাক

要展示广告并赚取收入,第一步是将 Google 移动广告 SDK 集成到应用中。集成 SDK 后,您可以选择一种广告格式(如原生广告或激励视频广告),然后按照相应步骤进行实现。

准备工作

为了让您的应用做好准备,请完成以下部分中的步骤。

应用要满足的前提条件

  • 确保您应用的 build 文件使用以下值:

    • 最低 SDK 版本为 21 或更高版本
    • 编译 33 或更高版本的 SDK

在 AdMob 帐号中设置应用

完成以下步骤,将您的应用注册为 AdMob 应用:

  1. 登录注册 AdMob 帐号。

  2. 在 AdMob 中注册您的应用。 此步骤将创建一个具有唯一 AdMob 应用 ID 的 AdMob 应用,本指南稍后需要用到此 ID。

配置您的应用

  1. 在您的项目级 build.gradle 文件中,同时在 buildscriptallprojects 两个部分中添加 Google 的 Maven 制品库Maven 中央制品库

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
        }
    }
    
  2. 将 Google 移动广告 SDK 的依赖项添加到您的模块的应用级 Gradle 文件(通常为 app/build.gradle):

    dependencies {
      implementation 'com.google.android.gms:play-services-ads:23.1.0'
    }
    
  3. 将您的 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 提供的不同广告格式。

,

要展示广告并赚取收入,第一步是将 Google 移动广告 SDK 集成到应用中。集成 SDK 后,您可以选择一种广告格式(如原生广告或激励视频广告),然后按照相应步骤进行实现。

准备工作

为了让您的应用做好准备,请完成以下部分中的步骤。

应用要满足的前提条件

  • 确保您应用的 build 文件使用以下值:

    • 最低 SDK 版本为 21 或更高版本
    • 编译 33 或更高版本的 SDK

在 AdMob 帐号中设置应用

完成以下步骤,将您的应用注册为 AdMob 应用:

  1. 登录注册 AdMob 帐号。

  2. 在 AdMob 中注册您的应用。 此步骤将创建一个具有唯一 AdMob 应用 ID 的 AdMob 应用,本指南稍后需要用到此 ID。

配置您的应用

  1. 在您的项目级 build.gradle 文件中,同时在 buildscriptallprojects 两个部分中添加 Google 的 Maven 制品库Maven 中央制品库

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
        }
    }
    
  2. 将 Google 移动广告 SDK 的依赖项添加到您的模块的应用级 Gradle 文件(通常为 app/build.gradle):

    dependencies {
      implementation 'com.google.android.gms:play-services-ads:23.1.0'
    }
    
  3. 将您的 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 提供的不同广告格式。