Перейти к основному содержимому
Версия:

Руководство По Интеграции

Appodeal SDK даёт вам доступ к 70+ рекламным источникам и заставляет их конкурировать друг с другом на аукционе в реальном времени, максимизируя ваши доходы от рекламы. Функционал Appodeal SDK также включает In-app Bidding, автоматическую оптимизацию UA, сегментацию пользователей & A/B тестирование, перекрестное продвижение, прямые сделки, мгновенные выплаты и многое другое.

Также помните, что вы всегда можете настроить Appodeal SDK с помощью нашего Appodeal Plugin Manager.


Данное руководство поможет вам интегрировать Appodeal SDK в ваш проект Unity вместе с необходимыми рекламными сетями и настроить рекламные форматы.

Минимальные Требования:
  • Unity 2021.3.0+, 2022.3.0+, 6000.0.23+
  • Android API level 24 (Android OS 7.0) и выше
  • iOS 15.0 и выше
  • Xcode 26.0 и выше при интеграции через Swift Package Manager; для CocoaPods достаточно Xcode 16.4
  • CocoaPods 1.12.0 и выше
  • Git должен быть установлен на вашем устройстве

Используйте наше демо приложение в качестве примера.

Демо приложение

Посмотрите наше видео-руководство о том, как интегрировать Appodeal SDK в ваше приложение.


Шаг 1. Установите SDK​

Выберите желаемый тип интеграции и следуйте этому руководству, чтобы добавить Appodeal плагин в ваш проект.

  1. Установите External Dependency Manager (.tgz формата) v1.2.175 или новее с этого сайта.

  2. Импортируйте EDM в свой проект Unity, добавив загруженный архив через Unity Package Manager (Window → Package Manager → "+" → Add package from tarball).

  3. Скопируйте ссылку ниже, перейдите в Window → Package Manager → "+" → Add package from git URL, вставьте скопированную ссылку и нажмите Enter.

https://github.com/appodeal/appodeal-unity-plugin-upm.git#v4.4.0
Версионирование

Используйте Appodeal Plugin Manager для обновления до актуальной версии Appodeal SDK из верхней панели меню Unity (Appodeal → Plugin Configuration). Поддерживается с Unity 2018.3 и выше. Вы найдёте больше информации в нашем блоге.


Шаг 2. Подключите сервисы​

Если вы планируете запускать UA (User Acquisition) кампании, хотите анализировать метрики в BI-инструменте Appodeal без использования MMP или использовать remote config для тестов и настроек, подключите сервисы ниже. Их адаптеры уже входят в пакет, импортированный на Шаге 1 — подключите те, которые вам нужны, а остальные исключите в Appodeal Plugin Manager (Appodeal → Plugin Configuration).

  • Подключитесь к Adjust или AppsFlyer, чтобы разблокировать функции Атрибуции для ваших UA-кампаний.

  • Подключитесь к Meta (ранее известная как facebook-core) для User Acquisition.

  • Подключитесь к Firebase для Аналитики + remote config для продуктовых A/B тестов и настроек.


Шаг 3. Настройте Проект​

Пакет Appodeal подключает все рекламные сети и сервисы по умолчанию. Проверьте состав зависимостей в вашем проекте (Appodeal → Plugin Configuration) и исключите те, которые вам не нужны.

Проверьте нашу инструкцию Appodeal Plugin Manager для получения более детальной информации.

Настройки Для Android​

Настройки Gradle​

Подготовьте Gradle для Android 11+

В Android 11 изменился способ запроса приложений и взаимодействия с другими приложениями, установленными пользователем на устройстве. По этой причине убедитесь, что вы используете версию Gradle, которая соответствует одной из перечисленных здесь.

  1. Перейдите в Preferences → External Tools и обновите вашу версию Gradle до 7.6.
  2. Перейдите в Player Settings → Publishing Settings и включите флаг Custom Base Gradle Template,
  3. Перейдите в 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'.
Если у вас используется EDM плагин v1.2.175 или более старый, пожалуйста, изучите этот гайд.

External Dependency Manager​

External Dependency Manager включен в состав Unity плагина Appodeal. Для разрешения конфликтов зависимостей в вашем проекте выполните следующие шаги:

  1. Перед выбором Android платформы, откройте File → Build Settings → Android настройки в верхней панели меню Unity.

  2. Добавьте флаг 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
  3. Включите настройку Patch mainTemplate.gradle (Assets → External Dependency Manager → Android Resolver → Settings).

  4. Включите настройку Copy and patch settingsTemplate.gradle from 2022.2 (Assets → External Dependency Manager → Android Resolver → Settings).

  5. Включите настройку Use Jetifier (Assets → External Dependency Manager → Android Resolver → Settings).

  6. Затем выберите 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 при интеграции плагина. Если вы хотите использовать какие-либо дополнительные разрешения, добавьте их одним из указанных ниже способов.

Откройте окно Appodeal → Appodeal Settings в верхней панели меню Unity. Установите флажки напротив выбранных разрешений.


Некоторые сети и сторонние зависимости (связанные с сетевыми зависимостями) могут включать собственные разрешения для манифеста. Если вы хотите принудительно удалить такие разрешения, вы можете обратиться к этому руководству.

Особенности Использования Location Разрешения

Согласно политике Google, разрешения на определение местоположения могут запрашиваться только для предоставления функций, полезных для пользователя и имеющих отношение к основным функциям приложения. Вы не можете запрашивать доступ к данным о местоположении исключительно для целей рекламы или аналитики.

Если вы не используете местоположение для основных функций вашего приложения

  1. Удалите разрешения на доступ к местоположению из своего приложения, добавив следующий код в файл 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>
  1. Обновите приложение в Google Play. В процессе публикации убедитесь, что в Google Play Console нет предупреждений о местоположении.

Если вы используете местоположение для основных функций своего приложения

  1. Заполните форму декларации разрешений на доступ к местоположению в Google Play Console. Вы можете узнать больше о форме декларации здесь.

  2. Обновите приложение в 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

Обязательно добавьте политику конфиденциальности к вашему приложению в Google Play, которая ссылается на политику конфиденциальности Appodeal, чтобы избежать нарушения Google Play Developer Distribution Agreement.


Настройки Для iOS​

External Dependency Manager​

Прекращение Поддержки CocoaPods

CocoaPods trunk станет доступен только для чтения 2 декабря 2026 года. После этой даты новые версии подов там публиковаться не будут. Используйте Swift Package Manager, если проекту не требуется оставаться на CocoaPods.

Для интеграции через Swift Package Manager требуется EDM v1.2.187 или новее и Unity 2021.3 или новее.

  • Убедитесь, что настройка Swift Package Manager Integration включена в EDM (Assets → External Dependency Manager → iOS Resolver → Settings → Swift Package Manager Integration).

  • Не выключайте настройку Podfile Generation в EDM (Assets → External Dependency Manager → iOS Resolver → Settings → Podfile Generation). Для зависимостей, у которых нет Swift пакета, EDM по-прежнему использует CocoaPods.

примечание

У адаптеров Amazon и Bigo Ads пока нет Swift пакетов.

Добавьте SKAdNetworkIds​

важно

Чтобы гарантировать правильное сканирование пакетов SKAdNetwork, следуйте формату Semantic Versioning (SemVer) при указании версии вашего приложения.

Рекламные сети, используемые в Appodeal медиации поддерживают отслеживание конверсий с помощью Apple SKAdNetwork, что означает возможность отслеживания установок в том случае, когда IDFA недоступен. Для включения данного функционала вам необходимо обновить ключи SKAdNetworkItems, добавив словарь (dictionary) в ваш Info.plist.

Откройте Appodeal → Appodeal Settings окно в верхней панели меню Unity. Установите указанный на скриншоте флажок.


Сконфигурируйте App Transport Security Settings​

Для предоставления рекламы, Appodeal SDK необходимо разрешение на произвольные загрузки. Настройте ключ NSAppTransportSecurity, чтобы разрешить произвольные загрузки, выполнив следующие шаги:

Откройте Appodeal → Appodeal Settings окно в верхней панели меню Unity. Установите указанный на скриншоте флажок.


Дополнительные Разрешения​

Следующие ключи помогут улучшить производительность рекламных СДК:

  1. NSUserTrackingUsageDescription - Начиная с iOS 14 использование IDFA требует разрешения от конечного пользователя. Добавление описания поможет объяснить пользователю необходимость данного разрешения.
  2. NSLocationWhenInUseUsageDescription - Необходимо добавлять если ваше приложение позволяет Appodeal SDK использовать данные геолокации.
  3. NSCalendarsUsageDescription - Добавление данного ключа рекомендовано рекламными сетями.

Откройте 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

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 адаптер.
Важно

Не забудьте установить нашу новую версию 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.


Шаг 4. Инициализируйте SDK​

Перед тем, как начать загрузку рекламы, вам необходимо инициализировать Appodeal SDK следующим образом:

  1. Добавьте Namespaces
using AppodealStack.Monetization.Api;
using AppodealStack.Monetization.Common;
  1. Вызовите Метод Инициализации

Добавьте следующий код в метод Start() (или любой другой) главного скрипта MonoBehaviour

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.

Инициализируйте только те типы рекламы, которые вы хотите использовать в своем приложении, чтобы не получать запросы к неиспользуемым.


Шаг 5. Настройте Типы Рекламы​

Appodeal SDK импортирован в ваш проект и вы готовы реализовать показ рекламы. Appodeal предоставляет множество рекламных форматов, вы можете выбрать те, которые наиболее оптимально подходят вашему приложению.


Шаг 6. Следующие шаги​

Добавление файла App-ads.txt​

Файл app-ads.txt - это текстовый файл, который предоставляет издателям возможность объявлять своих авторизованных цифровых продавцов.

Вы можете найти более подробную информацию здесь