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

Шаг 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#v3.12.0
Управление версиями

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

Шаг 2. Настройка проекта

В случае, если вы предпочитаете использовать полный пакет Appodeal SDK вместе с его сервисами, пожалуйста, убедитесь, что вы не исключили их в вашем проекте (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 Plugin v1.2.175 или старше, пожалуйста, проверьте это руководство.

External Dependency Manager

Плагин Appodeal Unity использует пакет External Dependency Manager. Вам необходимо выполнить следующие шаги для разрешения зависимостей 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 section.

  • Это обязательные разрешения
<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" />

Обязательные разрешения уже добавлены в проект плагином Appodeal Unity. Если вы хотите использовать какие-либо из необязательных разрешений, добавьте их, следуя одному из методов, перечисленных ниже.

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


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

Особенности использования разрешения местоположения

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

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

  1. Удалите разрешение на определение местоположения в вашем приложении, добавив следующий код под тегом <manifest> в файле AndroidManifest.xml, расположенном в каталоге Assets/Plugins/Android.
<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 v2019.2 и более ранние версии, вам необходимо добавить поддержку Multidex в ваш проект. Следуйте этому руководству, чтобы добавить Multidex.

  • Если вы используете Unity v2019.3 или выше, перейдите в Player Settings → Publishing Settings → Other Settings и измените Minimum API Level на 21 или выше.

Требования к распространению в Google Play

Убедитесь, что вы добавили Политику конфиденциальности в свое приложение в Google Play, которая содержит ссылку на Политику конфиденциальности Appodeal, чтобы избежать нарушения Соглашения о распространении для разработчиков Google Play.


Конфигурация iOS

External Dependency Manager

  • Отключите опцию Link frameworks statically в EDM (Assets → External Dependency Manager → iOS Resolver → Settings → Link frameworks statically).

Добавить SKAdNetworkIds

important

Для обеспечения корректного сканирования пакетов SKAdNetwork используйте семантическое версионирование (SemVer) для версии вашего приложения.

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

Откройте окно Appodeal → Appodeal Settings в верхнем меню Unity. Отметьте соответствующий флажок.


Настройка параметров безопасности транспорта приложения

Для показа рекламы 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 ключевого окна с переданным 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 Bidding теперь доступен с Appodeal SDK 3.2.0.

Не забудьте загрузить нашу новейшую версию инструмента Admob Sync с этой страницы и выполнить синхронизацию.

Подробнее о Admob Sync вы можете прочитать в нашем руководстве.

Идентификатор приложения AdMob — это уникальный идентификатор, присвоенный вашему приложению.

Чтобы найти идентификатор приложения AdMob в вашей учетной записи AdMob, перейдите в Приложения → ваше приложение → настройки приложения и скопируйте идентификатор приложения AdMob.

Добавьте идентификаторы приложений AdMob из меню Appodeal → Appodeal Settings для каждой платформы.

Более подробную информацию о синхронизации Admob смотрите в нашем руководстве по подключению Admob.


Шаг 3. Инициализация SDK

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

  1. Импорт пространств имен
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.

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


Подробную документацию вы можете найти здесь