Руководство По Интеграции
Версия Релиза | Дата Релиза |
---|---|
3.2.1 | 24.01.2024 |
Следуйте этому гайду, чтобы получить максимум от 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 2020.3.16+, 2021.1.17+, 2022.3.0+
- Android API level 21 (Android OS 5.0) и выше
- iOS 12.0 и выше
- Используйте Xcode 14.3 и выше
- 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 12.0 и выше
- Используйте Xcode 14.3 и выше
- 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.2.1
- Загрузите Appodeal Unity Plugin, который включает в себя новейшие Android и iOS Appodeal SDK.
Unity Плагин v3.2.1
- Чтобы импортировать Appodeal Unity плагин, дважды щёлкните по Appodeal-Unity-Plugin-3.2.1-23.01.2024.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 v2017.4 - v2019.2
- Unity v2019.3 - v2019.4
- Unity v2020.1 - v2022.1
- Unity v2022.2 и новее
- Перейдите в Player Settings → Publishing Settings и включите флаг Custom Gradle Template.
- Перейдите в Assets → Plugins → Android → mainTemplate.gradle, откройте файл и измените
classpath 'com.android.tools.build:gradle:3.4.0'
наclasspath 'com.android.tools.build:gradle:3.4.3'
.
- Перейдите в 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'
.
- Перейдите в Assets → External Dependency Manager → Android Resolver → Settings и включите флаг Copy and patch settingsTemplate.gradle from 2022.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
Рекламные сети, используемые в 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, которые отображаются внутри содержимого приложения.