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

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

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


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

Минимальные требования:
  • iOS 15.0 и выше
  • Xcode 26.0 и выше при интеграции через Swift Package Manager; для CocoaPods достаточно Xcode 16.4

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

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

Шаг 1. Установка

Appodeal SDK (сборки Fat и CocoaPods 4.4.0) работают на Obj-C, Swift и смешанных Obj-C/Swift проектах.

Objective C

Если в вашем проекте не используется Swift код, добавьте пустой Swift файл, например Dummy.swift.

Xcode предложит вам создать Bridging Header после добавления пустого файла Swift, нажмите "Create".

Отключение рекламных сетей

Рекомендуемая конфигурация ниже включает адаптеры сервисов. Если какие-то из них вам не нужны, исключите их из вашего Podfile или из SDK package при ручной интеграции.

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

  1. Настройка Podfile
Настройка Podfile

Ниже представлен базовый и рекомендуемый код для Podfile. Вы можете добавлять или удалять любые адаптеры сетей или сервисов в зависимости от ваших требований.

Мы предоставляем удобный и интерактивный способ управления и создания Podfile в зависимости от выбранных типов рекламы, сетей и сервисов. Чтобы настроить ваш Podfile, пожалуйста, посетите страницу Настройка Медиационных Сетей.

Поддержка iOS 18

Appodeal 4.4.0 полностью совместим с iOS 18. Если вы проинтегрировали Appodeal и столкнулись с проблемами во время публикации вашего приложения в AppStore, пожалуйста, обновитесь до версии Appodeal 4.4.0. Если у вас нет возможности для обновления, удалите APDSmaatoAdapter и BidMachineSmaatoAdapter из вашего Podfile или пропишите post-install hook приведенный ниже, чтобы исправить проблему.

post_install do |installer|
xcframework_path = "#{installer.sandbox.root}/smaato-ios-sdk/vendor"

Dir.glob("#{xcframework_path}/**/*.framework/OMSDK_Smaato").each do |binary|
if File.exist?(binary)
puts "Stripping bitcode from: #{binary}"
system("xcrun bitcode_strip #{binary} -r -o #{binary}")
end
end
end

Generating code...

  1. Вызов pod install

Запустите $ pod install , чтобы настроить зависимости CocoaPods или $ pod update , чтобы обновить их. Если у вас нет загруженных Pod'ов, для того, чтобы упростить управление зависимостями, вам нужно установить Cocoapods, следуя этой интрукции CocoaPods

sudo gem install cocoapods

Если у вас возникли проблемы с версией Cocoapods, используйте следующий код:

rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update

Если официальный репозиторий не отвечает, вы можете обновить Pod'ы c помощью зеркального репозитория Appodeal, добавив следующий код:

source 'https://github.com/appodeal/CocoaPods.git'
source 'https://cdn.cocoapods.org/'

Если вы получаете следующую ошибку [!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/e/Appodeal/${VERSION}/Appodeal.podspec.json Response: Failure when receiving data from the peer используйте следующий код:

pod repo remove trunk
  1. Открывайте ваш проект используя .xcworkspace файл с данного момента.

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

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

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

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

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

Шаг 3. Подготовьте Ваше Приложение

Добавление SKAdNetworkIds

важно

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

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

к сведению

Если вы используете Xcode 14+ и SwiftUI в вашем приложении, тогда вы можете заметить, что Info.plist файл по-умолчанию отсутствует в вашем project navigator.

Вам необходимо перейти по пути Target → Info tab → Custom iOS Target Properties и сделать любые изменения в файле, достаточно добавить пустую строку, и Info.plist файл появится в вашем project navigator.

  1. Выберите файл Info.plist в Project navigator вашего Xcode проекта
  2. Нажмите правой кнопкой мыши нафайл Info.plist → Open As → Source Code
  3. Скопируйте SKAdNetworkItems из списка ниже и вставьте в ваш Info.plist файл.

Ниже представлены SKAdNetworks идентификаторы в формате Info.plist:

SKAdNetworks IDs в формате Info.plist
<key>SKAdNetworkItems</key>
<array>

</array>

Добавление AdAttributionKit IDs

AdAttributionKit — это современный фреймворк Apple для атрибуции рекламы, который работает совместно с SKAdNetwork. Рекламные сети, используемые в медиации Appodeal, поддерживают AdAttributionKit для улучшенного отслеживания конверсий и атрибуции на iOS 17.4+.

Для включения данного функционала вам необходимо добавить ключ AdAttributionKitItems со словарём (dictionary) в ваш Info.plist, аналогично SKAdNetworkItems.

  1. Выберите файл Info.plist в Project navigator вашего Xcode проекта
  2. Нажмите правой кнопкой мыши на файл Info.plist → Open As → Source Code
  3. Скопируйте AdAttributionKitItems из списка ниже и вставьте в ваш Info.plist файл
AdAttributionKit IDs в формате Info.plist
<key>AdAttributionKitItems</key>
<array>

</array>

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

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

  1. В файле info.plist нажмите Add+ в любом поле первой колонки.
  2. Добавьте App Transport Security Settings key**.** В качестве его типа во второй колонке выберите Dictionary .
  3. Нажмите Add+ в конце строки App Transport Security Settings keyи выберите Allow Arbitrary loads . Установите тип Boolean и значение Yes .

Вы можете добавить ключ непосредственно в файл info.plist с помощью следующего кода:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

Описание Геолокации (Опционально)

NSLocationWhenInUseUsageDescription - Необходимо добавлять если ваше приложение позволяет Appodeal SDK использовать данные геолокации.

<key>NSLocationWhenInUseUsageDescription</key>
<string><App Name> needs your location for analytics and advertising purposes</string>
к сведению

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

Интегрируйте Core Location и запросите разрешение у пользователей следуя официальной документации.

Дополнительные Параметры

Важно

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

Можете прочитать подробнее про Admob Sync в нашей инструкции.

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

  1. GADApplicationIdentifier - Если в вашем проекте присутствует AdMob адаптер, вам необходимо добавить AdMob app ID в ваш info.plist . Используйте ключ GADApplicationIdentifier и в качестве значения используйте AdMob app ID вашего приложения.
    Подробнее о синхронизации с Admob в Admob инструкции.
  2. NSUserTrackingUsageDescription - Начиная с iOS 14 использование IDFA требует разрешения от конечного пользователя. Добавление описания поможет объяснить пользователю необходимость данного разрешения.
  3. NSCalendarsUsageDescription - Добавление данного ключа рекомендовано рекламными сетями.
<key>GADApplicationIdentifier</key>
<string>YOUR_ADMOB_APP_ID</string>
<key>NSUserTrackingUsageDescription</key>
<string><App Name> needs your advertising identifier to provide personalised advertising experience tailored to you</string>
<key>NSCalendarsUsageDescription</key>
<string><App Name> needs your calendar to provide personalised advertising experience tailored to you</string>
к сведению

Обратите внимание: если вы удалили адаптер Admob, то не забудьте также удалить BDMNotsyAdapter используя инструкцию.

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

Перед инициализацией мы настоятельно рекомендуем получить все необходимые разрешения от конечного пользователя. Следуйте руководству по защите пользовательских данных.

Импортируйте Appodeal в AppDelegate (AppDelegate.m) класс и инициализируйте SDK:

import Appodeal

Мы рекомендуем использовать метод инициализации SDK в функции жизненного цикла приложения AppDelegate - didFinishLaunchingWithOptions:

@UIApplicationMain
final class MyAppDelegate: UIResponder, UIApplicationDelegate, AppodealInitializationDelegate {
func application(
_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
Appodeal.setAutocache(false, types: .interstitial)
Appodeal.setLogLevel(.verbose)

// Optional delegate for initialization completion
Appodeal.setInitializationDelegate(self)
/// Any other pre-initialization
/// app specific logic

Appodeal.initialize(
withApiKey: "APP_KEY",
types: .interstitial
)

return true
}
func appodealSDKDidInitialize() {
// Appodeal SDK did complete initialization
}
}

adTypes - это параметр отвечающий за рекламные форматы (прим. AppodealAdTypeRewardedVideo, AppodealAdTypeInterstitial). Инициализируйте только те типы рекламы, которые вы хотите использовать в своем приложении, чтобы не получать запросы к неиспользуемым.appodealSDKDidInitialize - делегат завершения инициализации Appodeal SDK.

Убедитесь, что вы заменили строку YOUR_APP_KEY вашим ключом приложения. Вы можете найти его в списке приложений в вашем личном кабинете.

Шаг 5. Конфигурация Типов Рекламы

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

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

Конфигурация App Privacy

Сконфигурируйте App Privacy в соответствии с документацией:

App Privacy Details

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

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

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