שנתחיל?

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

准备工作

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

应用要满足的前提条件

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

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

配置您的应用

  1. 在 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'
  2. 将 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'
    }
  3. 添加您的 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 提供的不同广告格式。