---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/react-native/quick-start.md
  - https://ads.yandex.com/helpcenter/ru/dev/react-native/quick-start.md
  - https://ads.yandex.com/helpcenter/zh/dev/react-native/quick-start.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/zh/llms.txt

# 集成 Mobile Ads React Native 插件

> _系统：Yandex Advertising Network_

React Native 是一种流行的跨平台移动应用开发框架。 开发人员可以使用它来编写可在多个操作系统（包括 Android 和 iOS）上运行的共享代码。

将 Yandex Mobile Ads React Native SDK 集成到您的应用中是投放广告和创收的第一步。 集成 SDK 后，您可以为应用变现选择一种广告格式（例如横幅或激励广告）并进行设置。

## 应用要求 {#requirements}

{% list tabs %}

- Android

   - 使用 Android Studio 2021 或更高版本。
   - 检查您应用的构建文件是否使用以下值：
      - minSdkVersion 23 或更高版本。
      - compileSdkVersion 34 或更高版本。

- iOS

   - 使用 iOS 13 或更高版本。
   - 使用 Xcode 16.4 或更高版本。

{% endlist %}

### 在您的 Yandex Advertising Network 账户中设置应用 {#yan}

<!-- source: zh/dev/_includes/reg.md -->
以下是在 Yandex Advertising Network 中注册您的应用的方法：

1. 在 Yandex Advertising Network 中 [登录](https://partner.yandex.ru/)  或 [登录](https://passport.yandex.com/auth/list?origin=rsy_ligth_out&retpath=https%3A%2F%2Fpartner.yandex.com%2Fform%2F?roles%5B%5D=27) 您的账户。
2. 在 Yandex Advertising Network 中 [注册](https://passport.yandex.com/auth/list?origin=rsy_ligth_out&retpath=https%3A%2F%2Fpartner.yandex.com%2Fform%2F?roles%5B%5D=27) 您的应用。
<!-- endsource: zh/dev/_includes/reg.md -->

## 集成 {#integration}

集成 Yandex Mobile Ads SDK 涉及以下步骤：

1. 集成 Yandex Mobile Ads React Native 插件。
2. 执行特定于平台的设置。
3. 初始化库。
4. 测试集成。

### 集成 Yandex Mobile Ads React Native 插件

<!-- source: zh/dev/_includes/add-react-native.md -->
要将 Yandex Mobile Ads SDK 集成到 React Native 应用中，请使用 [Yandex Mobile Ads React Native 插件](https://www.npmjs.com/package/yandex-mobile-ads)。

在您的项目中安装 Yandex Mobile Ads React Native 插件。从项目的根文件夹运行以下命令：

```
npm install yandex-mobile-ads
```

添加插件后，`package.json` 文件中会出现具有以下依赖项的字符串：

```
"dependencies": {
    "yandex-mobile-ads": "^8.2.0"
}
```
<!-- endsource: zh/dev/_includes/add-react-native.md -->

### 特定于平台的设置 {#config}

{% list tabs %}

- Android

   **使用广告 ID 的权限**

   广告 ID 是 Google Play 服务提供的唯一 ID。 它们用于向同意个性化广告的用户投放广告。 用户可以选择退出个性化广告或在设置中重置 ID。 在这种情况下，广告网络无法使用它来投放相关广告。

   如有必要，您可以移除该权限。 例如，如果某项政策（例如家庭政策）不允许使用 ID 来投放广告，您可能需要执行此操作。

   要防止将权限添加到应用程序的主清单中，请将以下内容添加到 AndroidManifest.xml 文件中：

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

   {% note warning %}

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

   {% endnote %}

   **COPPA 设置**

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

   如果选择了自动初始化，请将以下代码添加到 AndroidManifest.xml 文件中，以便在应用用户是儿童时通知 Yandex Mobile Ads SDK：

   ```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>
   ```

- iOS

   **SKAdNetwork 支持**

   在应用的 `Info.plist` 文件中添加广告网络标识符。 有关说明，请参阅 [SKAdNetwork](https://ads.yandex.com/helpcenter/zh/dev/ios/skadnetwork.md)。

{% endlist %}

### 初始化 Yandex Mobile Ads SDK 库 {#init}

<!-- source: zh/dev/_includes/init-sdk-react-native.md -->
成功初始化Yandex Mobile Ads SDK 是正确集成库的前提条件。

默认情况下，Android SDK 会在 **应用启动** 时自动初始化。这会加快广告加载速度，从而增加您的变现收入。

默认情况下，iOS SDK 会在 **加载广告前** 自动初始化。然而，手动初始化可以加快首个广告的加载速度，从而增加您的变现收入。

请在主组件的 `useEffect` 钩子中添加 `MobileAds.initialize();` 调用：

```ts
React.useEffect(() => {
    (async () => {
        // 在 init sdk 之前配置用户隐私数据策略
        await MobileAds.initialize();
    })();
});
```
<!-- endsource: zh/dev/_includes/init-sdk-react-native.md -->

如果您需要在应用中设置[个人数据隐私政策](https://ads.yandex.com/helpcenter/zh/dev/react-native/gdpr.md)，请确保在初始化 Yandex Mobile Ads SDK 之前执行此操作。

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

### 测试 SDK 集成

{% list tabs %}

- Android

   <!-- source: zh/dev/_includes/test-android.md -->
   您可以使用 SDK 的内置集成测试工具验证库集成是否成功。

   为此，在添加依赖项并初始化 SDK 后，请重新构建项目。

   打开 Logcat 并搜索“Yandex Ads”关键词。

   该命令将输出集成状态日志。您将会看到一条消息，显示集成是否成功。如果存在问题，您将会看到详细描述以及解决步骤。示例命令输出：

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

   日志显示两个单独的事件：
   - “集成成功”：集成检查（SDK 尚未初始化）。
   - “初始化成功”：SDK 初始化成功。
   <!-- endsource: zh/dev/_includes/test-android.md -->

- iOS

   <!-- source: zh/dev/_includes/test-ios.md -->
   您可以检查日志以确保 SDK 集成正确。

   要查看日志，请前往控制台工具并设置 `Subsystem = com.mobile.ads.ads.sdk`。您可以按类别过滤日志，仅保留与广告 SDK 集成相关的日志。设置 `Category = Integration`。保存查询，并在需要调试时从过滤行中选择它。

   您将看到有关成功集成的消息：启用 `YandexMobileAdsBundle.bundle`、初始化 SDK 以及连接 SKAdNetwork 和移动聚合适配器（如果您在项目中使用了它们）。

   如果 SDK 集成过程中出现任何问题，您将看到详细的问题报告。

   <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/common/integration-ios.png">
   <!-- endsource: zh/dev/_includes/test-ios.md -->

{% endlist %}

## 后续步骤 {#next}

成功集成 Yandex Mobile Ads SDK 后，您就可以继续实施广告格式了。

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



#|
|| **广告格式** | **Yandex Advertising Network** | **Adfox** | **描述** ||
|| [自适应内联横幅](https://ads.yandex.com/helpcenter/zh/dev/react-native/adaptive-inline-banner.md) | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/yes-new.png"> | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/no-new.png"> | 自适应内嵌横幅广告是一种灵活的横幅广告格式，通过针对每台设备优化广告尺寸，确保投放效果达到最优。

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

通常，这种格式用于基于信息流的应用或可以将用户注意力主要集中在广告上的上下文环境中。 ||
|| [自适应粘性横幅](https://ads.yandex.com/helpcenter/zh/dev/react-native/adaptive-sticky-banner.md) | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/yes-new.png"> | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/no-new.png"> | 自适应固定横幅广告是一种小型广告，会自动更新，并显示在应用屏幕的顶部或底部。它不会遮挡主要内容，常用于游戏应用中。

粘性横幅的高度是自动确定的，可根据设备屏幕尺寸调整，并且不超过屏幕高度的 15％。 ||
|| [插屏广告](https://ads.yandex.com/helpcenter/zh/dev/react-native/interstitial.md) | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/yes-new.png"> | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/no-new.png"> | 插屏广告是一种全屏广告格式，嵌入在应用内容中，在自然暂停时显示，例如在游戏关卡之间过渡或完成目标操作时。

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

过度使用这种格式可能会降低用户的互动体验。 ||
|| [激励广告](https://ads.yandex.com/helpcenter/zh/dev/react-native/rewarded.md) | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/yes-new.png"> | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/no-new.png"> | 激励广告是一种受欢迎的全屏广告格式，用户观看广告后会获得奖励。

<!-- source: zh/dev/_includes/rewarded.md -->
广告展示采用主动选择机制：例如，用户可以主动触发广告以获取游戏奖励或额外生命值。
<!-- endsource: zh/dev/_includes/rewarded.md -->

强烈的用户动机使这种广告格式成为免费应用中最受欢迎且盈利能力最强的广告格式。
 ||
|| [开屏广告](https://ads.yandex.com/helpcenter/zh/dev/react-native/app-open-ad.md) | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/yes-new.png"> | <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/ru/images/no-new.png"> | 应用开屏广告是一种用于通过应用加载界面实现变现的特殊广告格式。此类广告可随时关闭，并设计用于在以下场景中展示：
* 应用启动时。
* 应用被调至前台时。
* 从后台返回应用时。
 ||
|#

## 了解详情

[插件集成错误](https://ads.yandex.com/helpcenter/zh/dev/react-native/react-native-errors.md#integration)
