Mobile Ads SDK 集成

系统:YAN、Adfox

将 Yandex Mobile Ads SDK 集成到应用中是获得广告展示和创收的第一步。集成 SDK 后,您可以选择用于应用变现的广告格式,例如横幅广告或激励广告,并进行设置。

前提条件

要准备您的应用,请按照接下来的章节中描述的步骤进行操作。

应用要求

  • 使用 Android Studio 2021 或更高版本。
  • 使用 Android Gradle 插件 7.3.1 或更高版本。
  • 检查您的应用的构建文件是否使用以下值:
    • MinSdkVersion 21 或更高。
    • CompileSdkVersion 31 或更高版本。

在您的 Yandex Advertising Network 账户中设置应用

以下是在 Yandex Advertising Network 中注册您的应用的方法:

  1. 在 Yandex Advertising Network 中 登录登录 您的账户。
  2. 在 Yandex Advertising Network 中 注册 您的应用。

设置您的应用

  1. 将对 Google 和中央 Maven 存储库的支持添加到项目配置中。

    根据项目构建设置,这些存储库可以添加到项目的 build.gradle 文件或 settings.gradle 文件的存储库部分,如下所示:

    // 项目级别 build.gradle 文件
    buildscript {
        repositories {
            google()
            mavenCentral()
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
        }
    }
    
    // 项目级别 settings.gradle 文件
    pluginManagement {
        repositories {
            google()
            mavenCentral()
            gradlePluginPortal()
        }
    }
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    }
    
  2. 将 Yandex Mobile Ads SDK 的某个依赖项添加到应用模块级别的 Gradle 文件中(通常为 app/build.gradle):

    dependencies {
      implementation 'com.yandex.android:mobileads:7.5.0'
    }
    
  3. 设置使用广告 ID 的权限(适用于使用 4.5.0 之前版本 SDK 的应用)。

    如何设置使用广告 ID 的权限

    广告 ID 是 Google Play 服务提供的唯一标识符,用于向选择个性化广告的用户展示广告。用户可以选择退出广告个性化设置或在设置中重置其 ID。在这种情况下,广告网络将无法使用该 ID 为用户选择相关广告。

    如果您的应用运行低于 4.5 的 Yandex Mobile Ads SDK 版本,请将 com.google.android.gms.permission.AD_ID 添加到 AndroidManifest.xml 文件中:

    <manifest>
        <application>
        <!-- For apps targeting Android 13 or higher & Yandex Mobile Ads SDK versions lower than 4.5.0 -->
            <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
        </application>
    </manifest>
    

    从版本 4.5.0 开始,Yandex Mobile Ads SDK 默认添加 com.google.android.gms.permission.AD_ID。因此,您不必在应用程序的主清单中指定它。该权限允许您使用广告 ID 从广告网络中选择更相关的广告。

    如果需要,您可以删除该权限。例如,如果政策不允许使用 ID 来选择广告,例如家庭政策。

    要防止将该权限添加到应用程序的主清单中,请将以下代码添加到 AndroidManifest.xml 中:

    <manifest>
        <application>
            <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
        </application>
    </manifest>
    

    重要

    缺少 ID 使用权限和访问权限可能会影响您的收入,因为您的应用可能会投放相关性较低的广告。

初始化 Yandex Mobile Ads SDK

成功集成 Yandex Mobile Ads SDK 是正确集成库的重要先决条件。默认情况下,当您运行应用程序时,SDK 会自动初始化。这会加快广告加载速度,从而增加您的应用变现收入。

如果您需要在应用上设置 个人数据隐私政策,请确保在初始化 Yandex Mobile Ads SDK 之前执行此操作。

您可以使用 AndroidManifest.file 或在手动初始化 SDK 之前直接设置这些政策。

COPPA 设置

在自动初始化的情况下,要通知 Yandex Mobile Ads SDK 应用在被儿童使用,请在 AndroidManifest.xml 文件中添加以下代码:

<manifest>
    <application>
        <!-- Disable the use of child's personal data for app monetization.  -->
        <meta-data
          android:name="@string/yandex_mobileads_age_restricted_user"
          android:value="true" />
    </application>
</manifest>

手动 SDK 初始化

如果有必要,您可以在禁用自动初始化后使用 initialize() 方法自行初始化该库:

<manifest>
    <application>
        <!-- Disable automatic sdk initialization.  -->
        <meta-data
            android:name="com.yandex.mobile.ads.AUTOMATIC_SDK_INITIALIZATION"
            android:value="false" />
    </application>
</manifest>

我们建议将初始化代码添加到 Application 类的 onCreate 方法中。请确保在初始化 SDK 之前设置 个人数据隐私政策

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        // 在 sdk 初始化之前配置用户数据隐私政策
        MobileAds.initialize(this) {
            // 现在您可以使用广告了
        }
    }
}
public class MyApplication extends Application {
    @Override
    public void onCreate() {
       super.onCreate();
        // 在 sdk 初始化之前配置用户数据隐私政策
        MobileAds.initialize(this, () -> {
            // 现在您可以使用广告了
        });
    }
}

测试 SDK 集成

您可以使用内置的 SDK 集成测试工具查看您的库是否已成功集成。

要测试您的 SDK 集成,请在添加依赖项并初始化 SDK 后重建项目。

启动 Logcat 并搜索“Yandex Ads”关键字。

该命令将生成一个日志,其中包含有关 SDK 集成状态的信息。如果集成成功,您将收到通知。如果集成过程中发生错误,日志将包含有关导致错误的原因以及如何修复错误的详细消息。

mobileads$ adb logcat | grep 'Yandex Ads' -i
[Yandex Ads]  I  Yandex Mobile Ads 7.5.0 integrated successfully
[Yandex Ads]  I  Yandex Mobile Ads 7.5.0 initialized successfully

过时库版本的指示器

备注

该指示器在调试模式下可用。

在初始化库或加载广告时,有关 Yandex Mobile Ads SDK 版本已过时的指示器会以 toast 形式显示。

问题详细信息也记录到应用日志中。

示例日志:

***************************************************************************************
* The integrated version of the Yandex Mobile Ads SDK is outdated.                    *
* Please update com.yandex.android:mobileads to the latest version.                   *
* Learn more about the latest version of the SDK here:                                *
* https://yandex.ru/dev/mobile-ads/doc/android/quick-start/android-ads-component.html *
* Changelog: https://yandex.ru/dev/mobile-ads/doc/intro/changelog-android.html        *
***************************************************************************************

要禁用指示器的显示,请调用 enableDebugErrorIndicator 方法并将其设置为 false

MobileAds.enableDebugErrorIndicator(false)

提示

我们不建议您禁用对过时 SDK 版本指示器的验证。确保使用最新的库版本以最大限度地提高您的广告收入。

面向最新 SDK 版本的 Lint 检查

针对最新 SDK 版本的 Lint 检查会在构建应用的发布版本时运行。

Lint 检查是通过调用 lintVitalRelease gradle 任务来执行的。如果广告 SDK 版本过时,任务将崩溃。

如果已发布较新的 SDK 版本,此检查会阻止构建应用。

要禁用最新的 SDK 版本检查,请使用标准 gradle 代码禁用 lint 检查(详情请参阅 Android 文档)。

android {
    lintOptions {
        disable 'MobileAdsSdkOutdatedVersion'
    }
}

下一步

成功集成 Yandex Mobile Ads SDK 后,您就可以开始实施广告格式了。

选择以下最适合您的应用的广告类型之一:

广告格式

YAN

Adfox

描述

自适应内联横幅

自适应内联横幅是一种灵活的横幅广告格式,通过优化每个设备上的广告尺寸,实现最大效率。

横幅高度是自动选择的,并且可以达到设备屏幕的高度。

通常,这种格式用于基于信息流的应用或其他可以将用户注意力主要集中在广告上的应用。

自适应粘性横幅

这是一个自动更新的小广告,放置在应用屏幕的顶部或底部。它与主要应用内容不重叠,常用于游戏应用中。

粘性横幅的高度是自动确定的,可根据设备屏幕尺寸调整,并且不超过屏幕高度的 15%。

插屏广告

插屏广告是一种全屏广告格式,嵌入在应用内容中,在自然暂停时显示,例如在游戏关卡之间过渡或完成目标操作时。

当用户看到插屏广告时,他们的注意力完全集中在广告上,这导致此类展示的成本更高。

过度使用这种格式可能会降低用户的互动体验。

激励广告

激励广告是一种受欢迎的全屏广告格式,用户观看广告后会获得奖励。

这种广告类型的显示由用户激活,例如,为了在游戏中获得奖励或额外生命。

高度的用户积极性使得这种广告格式成为免费应用中最受欢迎和最具盈利性的广告格式。

原生广告

原生广告是一种布局可以在应用级别定义的广告类型。这一功能允许您根据应用设计的具体上下文更改广告的视觉风格以及投放位置。

广告呈现通过本地平台工具执行,从而提高广告效果和质量。

您可以使用模板或手动设置原生广告的布局。如果选择使用模板,广告布局将在SDK端设置。

开屏广告

开屏广告是一种特殊的广告形式,通过应用程序的初始屏幕盈利。用户可随时关闭这些广告,其设计是用户在前台开启应用程序时展示广告,而无论是在启动时还是从后台返回时。

广告信息流

广告信息流是由一系列广告组成的单元。信息流可以作为应用的主要内容添加,或者添加到现有内容之后。信息流可能包含数十条广告,而这些广告会按顺序加载(一次加载多个广告)。

视频插播广告

视频插播广告 可让您通过在播放视频内容时投放广告来实现应用变现。

视频插播广告由具有多个视频块的场景组成。视频插播广告场景中视频单元的类型决定了视频广告相对于主视频内容的播放方式。