Чтобы показывать рекламу и получать доход, интегрируйте Google Mobile Ads SDK for React Native в свое приложение React Native. В этом руководстве рассказывается, как установить и инициализировать Google Mobile Ads SDK for React Native, а также выбрать формат объявлений.
Требования
Прежде чем продолжить, подготовьте следующее:
- React Native 0.85.0 или более поздней версии.
- Аккаунт AdMob и идентификатор приложения. Подробнее о том, как добавить приложение в AdMob…
Следующие объекты Android:
- Android API уровня 24 или более поздней версии.
- Последняя версия Android Studio.
- Плагин Android Gradle (AGP) версии 8.0 или более поздней.
Следующие объекты iOS:
- iOS 13.0 или более поздней версии.
- Xcode 16.0 или более поздней версии с включенными инструментами командной строки.
- CocoaPods
Установите приложение "Google Mobile Ads SDK for React Native"
Чтобы установить Google Mobile Ads SDK for React Native, выполните следующие действия:
- Скачайте папку
gma-sdk-react-nativeс Google Диска. Распакуйте ZIP-архив в отдельный каталог за пределами рабочего каталога проекта. Это поможет избежать конфликтов с файлами конфигурации проекта.
В корневом каталоге проекта создайте каталог
local_packages/.Скопируйте файл
mobile-ads-0.1.0.tgzв этот каталог:mkdir -p local_packages cp EXTRACT_DIR/gma-sdk-react-native/google-mobile-ads/mobile-ads-0.1.0.tgz local_packages/Замените EXTRACT_DIR путем к каталогу, в который вы распаковали архив.
Установите пакет с помощью предпочитаемого менеджера пакетов:
npm
npm install ./local_packages/mobile-ads-0.1.0.tgzпряжа
yarn add ./local_packages/mobile-ads-0.1.0.tgz
Настройка приложения
Чтобы настроить приложение с зависимостями платформы, добавьте идентификаторы приложений AdMob в файл app.json в корневом каталоге проекта.
Для тестирования используйте примеры идентификаторов приложений AdMob, показанные ниже:
{
"name": "APP_NAME",
"displayName": "APP_NAME",
"googleMobileAds": {
"android_app_id": "ca-app-pub-3940256099942544~3347511713",
"ios_app_id": "ca-app-pub-3940256099942544~1458002511"
}
}
Во время сборки Google Mobile Ads SDK for React Native добавляет свойство android_app_id в файл AndroidManifest.xml и свойство ios_app_id в созданный файл Info.plist в качестве ключа GADApplicationIdentifier.
Чтобы посмотреть варианты для конкретной платформы или настроить ее вручную, выберите одну из следующих платформ:
Android
Если вы управляете несколькими конфигурациями сборки или интегрируете React Native в существующее приложение Android, добавьте идентификатор приложения AdMob в элемент <application> файла AndroidManifest.xml проекта, а не в файл app.json:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="SAMPLE_APP_ID"
tools:replace="android:value"/>
</application>
</manifest>
Gradle автоматически разрешает зависимости Android во время сборки.
iOS
Выполните следующие действия:
Установите зависимости CocoaPods из каталога
ios/проекта:pod install --repo-updateВы также можете установить зависимости CocoaPods из корневого каталога проекта:
npx pod-installАвтоматическое связывание CocoaPods настраивает скрипт фазы сборки Xcode, который добавляет свойство
ios_app_idиз файлаapp.jsonв созданный файлInfo.plist.В файле
Info.plistприложения добавьте ключSKAdNetworkItemsв элемент<dict>для Googlecstr6suwn9.skadnetworkи выберите сторонних покупателей.Ниже приведен пример файла
Info.plist, содержащего обязательный массивSKAdNetworkItems.Полный пример
<key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wg4vff78zm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>t38b2kh725.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>44jx6755aq.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>k674qkevps.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbmxgpxpgc.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c3frkrj4fj.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>97r2b46745.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
Инициализировать Google Mobile Ads SDK for React Native
Перед загрузкой объявлений вызовите метод initialize, чтобы инициализировать Google Mobile Ads SDK for React Native. Вызовите метод initialize один раз при запуске приложения, например в корневом компоненте App.tsx.
В примере ниже инициализируется Google Mobile Ads SDK for React Native:
import {InitializationStatus, initialize} from '@google/mobile-ads';
import {useEffect, useState} from 'react';
import {Text, View} from 'react-native';
/**
* Root application component demonstrating Google Mobile Ads SDK initialization.
*/
export function App() {
const [isInitialized, setIsInitialized] = useState<boolean>(false);
useEffect(() => {
// Initialize the Google Mobile Ads SDK.
initialize({}, (status: InitializationStatus) => {
console.log('Mobile Ads SDK initialized successfully:', status);
setIsInitialized(true);
});
}, []);
return (
<View>
<Text>
{isInitialized ? 'Mobile Ads SDK Ready' : 'Initializing SDK...'}
</Text>
</View>
);
}
Выберите формат объявления
После инициализации Google Mobile Ads SDK for React Native можно реализовать показ рекламы. В AdMob доступны следующие форматы объявлений:
| Формат | Описание | Документация |
|---|---|---|
| Объявления при запуске приложения | Показывается, когда пользователь открывает приложение или возвращается к нему, накладываясь на экран загрузки или заставку. | Как настроить объявления при запуске приложения |
| Межстраничное объявление | Полноэкранные объявления, которые закрывают интерфейс приложения. Они показываются в естественные переходы между экранами в процессе работы приложения, например между действиями или во время паузы между уровнями в игре. | Как настроить межстраничные объявления |
| Бонус предоставлен | Полноэкранные объявления, за просмотр которых или взаимодействие с которыми пользователи получают вознаграждение. | Как настроить объявления с вознаграждением |
| Межстраничные объявления с вознаграждением. | Формат объявлений с поощрением, который позволяет предлагать вознаграждение за просмотр рекламы, автоматически появляющейся в моменты естественных переходов между экранами приложения. | Как настроить межстраничные объявления с вознаграждением |