开始

本指南适用于希望借助 AdMob 通过 Android 应用获利但不使用 Firebase 的发布商。如果您打算或考虑在应用中添加 Firebase,请改为参阅本指南的 AdMob 与 Firebase 版本。

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

前提条件

  • 使用 Android Studio 3.2 或更高版本
  • minSdkVersion 16 或更高版本
  • compileSdkVersion 28 或更高版本

导入移动广告 SDK

通过使用指向 Google Maven 代码库Gradle 依赖项,应用可以导入 Google 移动广告 SDK。首先,请确保在项目级 build.gradle 文件的 allprojects 部分引用了 google()

项目级 build.gradle 示例(节选)

allprojects {
    repositories {
        google()
    }
}

接下来,请打开您应用的应用级 build.gradle 文件,并找到“dependencies”部分。

应用级 build.gradle 示例(节选)

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.google.android.gms:play-services-ads:19.5.0'
}

请添加上面的粗体代码行,该代码会指示 Gradle 提取最新版本的移动广告 SDK 及其他相关依赖项。添加完该代码后,请保存文件并执行“Gradle sync”。

更新您的 AndroidManifest.xml

通过添加下面显示的名称为 com.google.android.gms.ads.APPLICATION_ID<meta-data> 标记,即可将您的 AdMob 应用 ID 添加到您的应用的 AndroidManifest.xml 文件中。

您可以在 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>

初始化移动广告 SDK

加载广告之前,请先调用 MobileAds.initialize(),以便让应用初始化移动广告 SDK。该方法将初始化相应 SDK,并在初始化完成后或 30 秒超时后回调完成监听器。此操作仅需执行一次,最好是在应用启动时执行。

以下示例说明了如何在 Activity 中调用 initialize() 方法:

示例 MainActivity(节选)

Java

package ...
import ...
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

package ...
import ...
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) {}
    }
    ...
}

如果您使用了中介功能,请等到调用完成处理程序后再加载广告,因为这可确保初始化所有中介适配器。

选择一种广告格式

现已导入移动广告 SDK,您随时可以植入广告了。AdMob 提供了许多不同的广告格式,您可以根据您应用的用户体验选择最契合的一款。

横幅广告是在设备屏幕的顶部或底部展示的矩形广告。用户与应用互动时,横幅广告会停留在屏幕上,并且可在一段时间后自动刷新。如果您刚开始接触移动广告,建议从横幅广告着手。

植入横幅广告

插页式广告

插页式广告是全屏广告,它会覆盖整个应用界面,直到用户将其关闭。在应用执行流程的自然停顿点,例如游戏的不同关卡之间,或一项任务完成后,最适合投放这类广告。

植入插页式广告

原生广告

原生广告是一种与您应用的外观和风格融为一体的定制广告。您可以决定这类广告的投放方式和位置,从而让版式与应用的设计风格更为统一。

植入Native Ads

激励广告

向观看短视频和与试玩广告及问卷调查互动的用户予以奖励的广告。适合通过那些只愿意免费玩游戏的用户获利。

植入激励广告 植入激励广告(新 API)