Руководство По Интеграции
Версия Релиза | Дата Релиза |
---|---|
3.6.0 | 30.05.2025 |
Следуйте этому гайду, чтобы получить максимум от Appodeal.
Appodeal SDK даёт вам доступ к 70+ рекламным источникам и заставляет их конкурировать друг с другом на аукционе в реальном времени, максимизируя ваши доходы от рекламы. Функционал Appodeal SDK также включает In-app Bidding, автоматическую оптимизацию UA, сегментацию пользователей & A/B тестирование, перекрестное продвижение, прямые сделки, мгновенные выплаты и многое другое.
Appodeal SDK предоставляет два способа интеграции. Из предложенных ниже вариантов выберите тот, который больше соответствует вашим потребностям:
- Appodeal SDK Full Package
- Appodeal SDK Mediation Only
The Appodeal SDK Full Package - Appodeal SDK предоставляет вам инструменты для развития ваших мобильных приложений и игр. В дополнение к монетизации вы можете воспользоваться сервисами продвижения пользователей UA (User Acquisition) и аналитики в приложении. Вот список сервисов, которые включает Appodeal SDK Full Package:
- Начните с Appodeal, чтобы получить доступ к Монетизации и Аналитике.
- Подключите Adjust или AppsFlyer, чтобы открыть функции Атрибуции.
- Подключите Meta (ранее известная как facebook-core) для User Acquisition.
- Подключите Firebase для Аналитики, а также для продуктовых A/B тестов и настроек.
Если вы планируете проводить кампании UA, хотите анализировать свои показатели в нашем инструменте бизнес-аналитики Appodeal без использования MMP или хотите использовать remote config для тестов и настроек, ваш вариант — полный пакет.
The Appodeal SDK Mediation only - Если вы не планируете проводить кампании по привлечению пользователей (UA) и не хотите использовать расширенную аналитику Appodeal, мы создали облегченную версию нашего SDK только с медиацией. Во время интеграции вам не потребуется устанавливать какие-либо дополнительные сервисы, кроме медиации. Это может ускорить процесс интеграции, и вы всегда можете перейти на полный пакет, когда будете готовы.
Пожалуйста, следуйте этому руководству по интеграции шаг за шагом и выбирайте вариант интеграции, когда это необходимо.
Также помните, что вы всегда можете настроить Appodeal SDK с помощью нашего Appodeal Plugin Manager.
Данное руководство поможет вам интегрировать Appodeal SDK в ваш проект Unity вместе с необходимыми рекламными сетями и настроить рекламные форматы.
- UPM Дистрибуция
- Manual Дистрибуция
- Unity 2021.3.0+, 2022.3.0+, 6000.0.23+
- Android API level 21 (Android OS 5.0) и выше
- iOS 13.0 и выше (только если вы используете Firebase или LevelPlay, iOS 12.4 если вы используете MyTarget, иначе достаточно iOS 12.0)
- Xcode 16.0 и выше
- CocoaPods 1.12.0 и выше
- Git должен быть установлен на вашем устройстве
- Unity 2017.4 (Api Compatibility Level - Experimental (.NET 4.6 Equivalent) или 2018.3+
- Android API level 21 (Android OS 5.0) и выше
- iOS 13.0 и выше
- Xcode 16.0 и выше
- CocoaPods 1.12.0 и выше
Если вы используете Unity 2017.4, измените настройку Scripting Runtime Version в Player Settings > Other Setting на Experimental (.NET 4.6 Equivalent).
Используйте наше демо приложение в качестве примера.
Демо приложение
Посмотрите наше видео-руководство о том, как интегрировать Appodeal SDK в ваше приложение.
Шаг 1. Установите SDK
Выберите желаемый тип интеграции и следуйте этому руководству, чтобы добавить Appodeal плагин в ваш проект.
- UPM Дистрибуция
- Manual Дистрибуция
-
Установите External Dependency Manager (.tgz формата) v1.2.175 или новее с этого сайта.
-
Импортируйте EDM в свой проект Unity, добавив загруженный архив через Unity Package Manager (Window → Package Manager → "+" → Add package from tarball).
-
Скопируйте ссылку ниже, перейдите в Window → Package Manager → "+" → Add package from git URL, вставьте скопированную ссылку и нажмите Enter.
https://github.com/appodeal/appodeal-unity-plugin-upm.git#v3.6.0
- Загрузите Appodeal Unity Plugin, который включает в себя новейшие Android и iOS Appodeal SDK.
Unity Плагин v3.6.0
- Чтобы импортировать Appodeal Unity плагин, дважды щёлкните по Appodeal-Unity-Plugin-3.6.0-29.05.2025.unitypackage файлу, или перейдите в Assets → Import Package → Custom Package. В открывшемся окне нажмите на кнопку Import, оставив все файлы выделенными.
Используйте Appodeal Plugin Manager для обновления до актуальной версии Appodeal SDK из верхней панели меню Unity (Appodeal → Plugin Configuration). Поддерживается с Unity 2018.3 и выше. Вы н айдёте больше информации в нашем блоге.
Шаг 2. Настройте Проект
- Appodeal SDK Full Package
- Appodeal SDK Mediation Only
Если вы хотите использовать Appodeal SDK Full Package вместе с его сервисами, убедитесь, что вы не исключили их в своём проекте (Appodeal → Plugin Configuration).
Проверьте нашу инструкцию Appodeal Plugin Manager для получения более детальной информации.
Если вы хотите использовать Appodeal SDK Mediation Only, убедитесь, что вы исключили сервисы в вашем проекте (Appodeal → Plugin Configuration).
Проверьте нашу инструкцию Appodeal Plugin Manager для получения более детальной информации.
Настройки Для Android
Настройки Gradle
В Android 11 изменился способ запроса приложений и взаимодействия с другими приложениями, установленными пользователем на устройстве. По этой причине убедитесь, что вы используете версию Gradle, которая соответствует одной из перечисленных здесь.
- Unity v2019.3 - v2019.4
- Unity v2020.1 - v2022.1
- Unity v2022.2 (до версии 2022.3.37f1)
- Unity v2021.3.41f1+, v2022.3.38f1+
- Unity v6000.0.23f1+
- Перейдите в Preferences → External Tools и обновите вашу версию Gradle до 6.7.1.
- Перейдите в Player Settings → Publishing Settings и включите флаг Custom Base Gradle Template.
- Перейдите в Assets → Plugins → Android → baseProjectTemplate.gradle, откройте файл и измените
classpath 'com.android.tools.build:gradle:3.4.0'
наclasspath 'com.android.tools.build:gradle:4.2.0'
.
- Перейдите в Preferences → External Tools и обновите вашу версию Gradle до 6.7.1.
- Перейдите в Player Settings → Publishing Settings и включите флаг Custom Base Gradle Template.
- Перейдите в Assets → Plugins → Android → baseProjectTemplate.gradle, откройте файл и измените
classpath 'com.android.tools.build:gradle:3.6.0'
наclasspath 'com.android.tools.build:gradle:4.2.0'
.
- Перейдите в Preferences → External Tools и обновите вашу версию Gradle до 7.6.
- Перейдите в Player Settings → Publishing Settings и включите флаг Custom Base Gradle Template,
- Перейдите в Assets → Plugins → Android → baseProjectTemplate.gradle, откройте файл и измените
'com.android.application' version '7.4.2', 'com.android.library' version '7.4.2'
на'com.android.application' version '7.3.1', 'com.android.library' version '7.3.1'
.
- Перейдите в Preferences → External Tools и обновите вашу версию Gradle до 8.4.
- Перейдите в Player Settings → Publishing Settings и включите флаг Custom Base Gradle Template,
- Перейдите в Assets → Plugins → Android → baseProjectTemplate.gradle, откройте файл и измените
'com.android.application' version '8.3.0', 'com.android.library' version '8.3.0'
на'com.android.application' version '8.2.2', 'com.android.library' version '8.2.2'
.
External Dependency Manager
External Dependency Manager включен в состав Unity плагина Appodeal. Для разрешения конфликтов зависимостей в вашем проекте выполните следующие шаги:
-
Перед выбором Android платформы, откройте File → Build Settings → Android настройки в верхней панели меню Unity.
-
Добавьте флаг Custom Gradle Template для версий Unity 2017.4 - Unity 2019.2. Для Unity 2019.3 и выше поставьте следующие галочки в Build Settings → Player Settings → Publishing settings:
- Custom Main Gradle Template
- Custom Gradle Properties Template
- Custom Gradle Settings Template
-
Включите настройку Patch mainTemplate.gradle (Assets → External Dependency Manager → Android Resolver → Settings).
-
Включите настройку Copy and patch settingsTemplate.gradle from 2022.2 (Assets → External Dependency Manager → Android Resolver → Settings).
-
Включите настройку Use Jetifier (Assets → External Dependency Manager → Android Resolver → Settings).
-
Затем выберите Assets → External Dependency Manager → Android Resolver и нажмите Resolve или Force Resolve.
В результате модули, которые необходимы для работы Appodeal SDK, будут добавлены в mainTemplate.gradle вашего проекта.
Сконфигурируйте AndroidManifest.xml
Перед тем как вносить изменения в AndroidManifest.xml файл убедитесь, что удалили строку ниже:
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
Мы различаем 2 типа разрешений: необходимые разрешения, без которых Appodeal SDK не может работать, и дополнительные разрешения, необходимые для улучшения таргетинга. Для получения дополнительной информации о назначении каждого из разрешений смотрите раздел FAQ.
- Это необходимые разрешения
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
- Это дополнительные разрешения
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
Все необходимые разрешения были автоматически добавлены в AndroidManifest при интеграции плагина. Если вы хотите использовать какие-либо дополнительные разрешения, добавьте их одним из указанных ниже способов.
- Вручную
- Автоматически
Перейдите в Plugins → Android директорию, откройте файл AndroidManifest.xml и добавьте желаемые разрешения.
Откройте окно Appodeal → Appodeal Settings в верхней панели меню Unity. Установите флажки напротив выбранных разрешений.
Некоторые сети и сторонние зависимости (связанные с сетевыми зависимостями) могут включать собственные разрешения для манифеста. Если вы хотите принудительно удалить такие разрешения, вы можете обратиться к этому руководству.
Согласно политике Google, разрешения на определение местоположения могут запрашиваться только для предоставления функций, полезных для пользователя и имеющих отношение к основным функциям приложения. Вы не можете запрашивать доступ к данным о местоположении исключительно для целей рекламы или аналитики.
Если вы не используете местоположение для основных функций вашего приложения
- Удалите разрешения на доступ к местоположению из своего приложения, добавив следующий код в файл AndroidManifest.xml,
находящийся по пути Assets/Plugins/Android под тегом
<manifest>
.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
tools:node="remove" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
tools:node="remove" />
</manifest>
- Обновите приложение в Google Play. В процессе публикации убедитесь, что в Google Play Console нет предупреждений о местоположении.
Если вы используете местоположение для основных функций своего приложения
-
Заполните форму декларации разрешений на доступ к местоположению в Google Play Console. Вы можете узнать больше о форме декларации здесь.
-
Обновите приложение в Google Play. В процессе публикации убедитесь, что в Google Play Console нет предупреждений о местоположении.
Поддержка Multidex
-
Если вы используете Unity версии 2019.2 или ниже, вам нужно добавить поддержку multidex в ваш проект. Следуйте этому руководству, чтобы добавить Multidex.
-
Если вы используете Unity v2019.3 и выше, перейдите в Player Settings → Publishing Settings → Other Settings и измените Minimum API Level до 21 или выше.
Обязательно добавьте политику конфиденциальности к вашему приложению в Google Play, которая ссылается на политику конфиденциальности Appodeal, чтобы избежать нарушения Google Play Developer Distribution Agreement.
Настройки Для iOS
External Dependency Manager
- Выключите настойку Link frameworks statically в EDM (Assets -> External Dependency Manager -> iOS Resolver -> Settings -> Link frameworks statically).
Добавьте SKAdNetworkIds
Чтобы гарантировать правильное сканирование пакетов SKAdNetwork, следуйте формату Semantic Versioning (SemVer) при указании версии вашего приложения.
Рекламные сети, используемые в Appodeal медиации поддерживают отслеживание конверсий с помощью Apple
SKAdNetwork, что означает возможность отслеживания
установо к в том случае, когда IDFA недоступен. Для включения данного функционала вам необходимо обновить ключи
SKAdNetworkItems
, добавив словарь (dictionary) в ваш
Info.plist.
- Вручную
- Автоматически
- Выберите файл Info.plist в Project navigator вашего Xcode проекта
- Нажмите правой кнопкой мыши на файл Info.plist → Open as → Source Code
- Скопируйте SKAdNetworkItems из списка ниже и вставьте в ваш Info.plist файл
Список SKAdNetworks IDs в Info.plist формате
<key>SKAdNetworkItems</key>
<array>
</array>
Откройте Appodeal → Appodeal Settings окно в верхней панели меню Unity. Установите указанный на скриншоте флажок.
Сконфигурируйте App Transport Security Settings
Для предоставления рекламы, Appodeal SDK необходимо разрешение на произвольные загрузки. Настройте ключ NSAppTransportSecurity, чтобы разрешит ь произвольные загрузки, выполнив следующие шаги:
- Вручную
- Автоматически
- В файле info.plist нажмите
Add+
в любом поле первой колонки. - Добавьте
App Transport Security Setting key
и выберите его тип какDictionary
во второй колонке. - Нажмите
Add+
в конце строкиApp Transport Security Settings key
и выберите опциюAllow Arbitrary loads
. Установите типBoolean
и значениеYes
.
Или вы можете добавить ключ непосредственно в файл Info.plist, с помощью следующего кода:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Откройте Appodeal → Appodeal Settings окно в верхней панели меню Unity. Установите указанный на скриншоте флажок.
Дополнительные Разрешения
Следующие ключи помогут улучшить производительность рекламных СДК:
- NSUserTrackingUsageDescription - Начиная с iOS 14 использование IDFA требует разрешения от конечного пользователя. Добавление описания поможет объяснить пользователю необходимость данного разрешения.
- NSLocationWhenInUseUsageDescription - Необходимо добавлять если ваше приложение позволяет Appodeal SDK использовать данные геолокации.
- NSCalendarsUsageDescription - Добавление данного ключа рекомендовано рекламными сетями.
- Вручную
- Автоматически
Добавьте любые из перечисленных ниже ключей в ваш Info.plist файл:
<key>NSUserTrackingUsageDescription</key>
<string>$(APP_NAME) needs your advertising identifier to provide personalised advertising experience tailored to you</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(APP_NAME) needs your location for analytics and advertising purposes</string>
<key>NSCalendarsUsageDescription</key>
<string>$(APP_NAME) needs your calendar to provide personalised advertising experience tailored to you</string>
Откройте Appodeal → Appodeal Settings окно в верхней панели меню Unity. Установите флажки напротив выбранных ключей.
Возможные Неполадки
1. Ошибка С Пустым CFBundleVersion
В результате ошибки, обнаруженной в Xcode 14 и сохраняющейся в Xcode 15,
значения для Build
и Version
могут отсутствовать в вашем файле .xcworkspace
по пути Target → General → Identity.
Если вы у вас не получается загрузить ваше приложение в App Store из-за ошибки
Connect Operation Error CFBundleShortVersionString is empty but must be composed of one to three period-separated integers
или вы не видите рекламы в вашем приложении после выполнения вышеуказанных шагов интеграции Appodeal SDK,
убедитесь, что версия приложения присутствует в вашем сгенерированном проекте Xcode.
Перейдите в файл .xcworkspace
→ Target → General → Identity → и добавьте версию вашего приложения, если она отсутствует.
2. Ошибка В Работе AdColony
AdColony всегда проверяет, соответствует ли rootViewController
первого окна предыдущему. Если это не так, Adcolony
не показывает рекламу. Если в вашем приложении есть несколько независимых друг от друга окон, вы можете получить
следующее сообщение:
AdColony [*** ERROR ***] : AdColony has ads, but could not display them. AdColony was unable to find the currently
visible UIViewController
for your app. Please ensure that your key UIWindow
has a rootViewController
.
Это означает, что rootViewController
, использованный в showAd
, не принадлежит к первому окну в списке.
Настройка AdMob
Admob Bidding теперь доступен с Appodeal SDK 3.2.0.
Не забудьте установить нашу новую версию Admob Sync инструмента по ссылке и выполнить синхронизацию.
Можете прочитать подробнее про Admob Sync в нашей инструкции.
AdMob App ID - это уникальный идентификатор, присвоенный вашему приложению.
Чтобы найти AdMob App ID в своем аккаунте AdMob, перейдите в Apps → your application → app settings и скопируйте AdMob App ID.
Добавьте AdMob App Ids при помощи инструмента Appodeal → Appodeal Settings для каждой из платформ.
Подробнее о синхронизации с Admob можно узнать в нашей инструкции по подключению Admob.
Шаг 3. Инициализируйте SDK
Перед тем, как начать загрузку рекламы, вам необходимо инициализировать Appodeal SDK следующим образом:
- Добавьте Namespaces
- UPM Дистрибуция
- Manual Дистрибуция
using AppodealStack.Monetization.Api;
using AppodealStack.Monetization.Common;
using AppodealAds.Unity.Api;
using AppodealAds.Unity.Common;
- Вызовите Метод Инициализации
Добавьте следующий код в метод Start()
(или любой другой) главного скрипта MonoBehaviour
- UPM Дистрибуция
- Manual Дистрибуция
class Test : MonoBehaviour
{
private void Start()
{
int adTypes = AppodealAdType.Interstitial | AppodealAdType.Banner | AppodealAdType.RewardedVideo | AppodealAdType.Mrec;
string appKey = "YOUR_APPODEAL_APP_KEY";
AppodealCallbacks.Sdk.OnInitialized += OnInitializationFinished;
Appodeal.Initialize(appKey, adTypes);
}
public void OnInitializationFinished(object sender, SdkInitializedEventArgs e) {}
}
YOUR_APPODEAL_APP_KEY
на ключ вашего приложения.Используйте типы ниже, чтобы установить предпочтительный формат рекламы:
AppodealAdType.Interstitial
для полноэкранной рекламы.AppodealAdType.RewardedVideo
для видео с вознаграждением.AppodealAdType.Banner
для б аннеров.AppodealAdType.Mrec
для баннеров размером 300*250.
Типы рекламы могут быть объединены при помощи |
оператора. Например,
AppodealAdType.Interstitial | AppodealAdType.RewardedVideo
.
Инициализируйте только те типы рекламы, которые вы хотите использовать в своем приложении, чтобы не получать запросы к неиспользуемым.
class Test : MonoBehaviour, IAppodealInitializationListener
{
private void Start()
{
int adTypes = Appodeal.INTERSTITIAL | Appodeal.BANNER | Appodeal.REWARDED_VIDEO | Appodeal.MREC;
string appKey = "YOUR_APPODEAL_APP_KEY";
Appodeal.initialize(appKey, adTypes, this);
}
public void onInitializationFinished(List<string> errors) {}
}
YOUR_APPODEAL_APP_KEY
на ключ вашего приложения.Используйте коды типов ниже, чтобы установить предпочтительный формат рекламы:
Appodeal.INTERSTITIAL
для полноэкранной рекламы.Appodeal.REWARDED_VIDEO
для видео с вознаграждением.Appodeal.BANNER
для банеров.Appodeal.MREC
для банеров размером 300*250.
Типы рекламы могут быть объединены при помощи |
оператора. Например,
AppodealAdType.Interstitial | AppodealAdType.RewardedVideo
.
Инициализируйте только те типы рекламы, которые вы хотите использовать в своем приложении, чтобы не получать запросы к неиспользуемым.
Шаг 4. Настройте Типы Рекламы
Appodeal SDK импортирован в ваш проект и вы готовы реализовать показ рекламы. Appodeal предоставляет множество рекламных форматов, вы можете выбрать те, которые наиболее оптимально подходят вашему приложению.
Привлекающая внимание полноэкранная реклама со статическим отображением объявления.
Объявления, инициированные пользователями, в которых пользователи могут получать вознаграждение в приложении в обмен на просмотр объявления.
Традиционный рекламный формат, который разамещает небольшое рекламное объявление внизу или вверху экрана.
Объявления размером 300x250, которые отображаются внутри содержимого приложения.