Руководство по интеграции
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 проектах.
Если в вашем проекте не используется Swift код, добавьте пустой
Swift файл, например Dummy.swift.
Xcode предложит вам создать Bridging Header после добавления пустого файла Swift, нажмите "Create".
Рекомендуемый Podfile ниже не включает адаптеры сервисов: вы добавите их в Шаге 2. SDK package для ручной интеграции включает их; если какие-то из них вам не нужны, исключите их из SDK package.
Мы рекомендуем использовать стандартную конфигурацию, так как отключение некоторых рекомендуемых адаптеров может негативно сказаться на доходах.
- Cocoa Pods
- Swift Package Manager
- Manual
- Настройка Podfile
Ниже представлен базовый и рекомендуемый код для Podfile. Вы можете добавлять или удалять любые адаптеры сетей или сервисов в зависимости от ваших требований.
Мы предоставляем удобный и интерактивный способ управления и создания Podfile в зависимости от выбранных типов рекламы, сетей и сервисов.
Чтобы настроить ваш Podfile, пожалуйста, посетите страницу Настройка Медиационных Сетей.
Generating code...
- Вызов 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
- Открывайте ваш проект используя .xcworkspace файл с данного момента.
Чтобы интегрировать Appodeal SDK через SPM:
-
В Xcode выберите File → Add Package Dependencies…
-
В строке поиска введите URL GitHub-репозитория Appodeal Swift Package и выберите пакет, когда он появится в списке.
https://github.com/appodeal/Appodeal-Swift-Package -
Выберите Dependency Rule и укажите в Add to Project таргет вашего приложения.
-
Нажмите Add Package, чтобы подключить
AppodealSDK. -
Повторите шаги 1–4 для каждого адаптера рекламной сети или сервиса, который вам нужен. Полный список ссылок на пакеты — на странице Настройка Медиационных Сетей.
При интеграции через Swift Package Manager необходимо добавить флаг -ObjC в Other Linker
Flags в Build Settings вашего проекта:
- Выберите проект в Project Navigator
- Выберите ваш таргет
- Перейдите на вкладку Build Settings
- Найдите "Other Linker Flags"
- Добавьте
-ObjCв список флагов
Без этого флага SDK не будет работать корректно.
- Скачайте SDK
Интегрируйте iOS SDK 4.4.0
SDK 4.4.0
- Скопируйте файлы в ваш проект
Откройте ваш проект в Xcode, затем перетащите скачанные фреймворки в ваш проект (используйте "Product Navigator view").
Выберите "Copy items into destination group's folder" и нажмите "Finish".
- Добавьте Linker flag
Теперь вам необходимо добавить флаг линковщика -ObjC. В вашем проекте XCode нажмите
Project -> Build Settings -> Найдите "Other Linker Flags" -> Добавьте -ObjC.
Добавьте библиотеки в Build Phases -> Link Binary with Libraries для обеспечения совместимости с категориями Objective-C и низкоуровневыми системными функциями:
libc++.tbdlibresolv.tbdlibz.tbdlibc++abi.tbdlibbz2.tbd
- Настройте Embed and Sign для фреймворков
В вашем проекте Xcode перейдите в Project -> General -> раздел Frameworks, Libraries, and Embedded Content. Убедитесь, что следующие фреймворки установлены в режим Embed & Sign:
ATOM.xcframeworkAdjustSigSdk.xcframeworkAppLovinSDK.xcframeworkDTBiOSSDK.xcframeworkFBAEMKit.xcframeworkFBSDKCoreKit.xcframeworkFBSDKCoreKit_Basics.xcframeworkInMobiSDK.xcframeworkMobileFuseSDK.xcframeworkMolocoSDK.xcframeworkOMSDK_Ogury.xcframeworkOMSDK_Pubmatic.xcframeworkOMSDK_Pubnativenet.xcframeworkOMSDK_Smaato.xcframeworkOguryAds.xcframeworkOguryCore.xcframeworkOgurySdk.xcframeworkOpenWrapSDK.xcframeworkSmaatoSDKBanner.xcframeworkSmaatoSDKCore.xcframeworkSmaatoSDKInAppBidding.xcframeworkSmaatoSDKInterstitial.xcframeworkSmaatoSDKNative.xcframeworkSmaatoSDKOpenMeasurement.xcframeworkSmaatoSDKOutstream.xcframeworkSmaatoSDKRewardedAds.xcframeworkSmaatoSDKRichMedia.xcframeworkSmaatoSDKVideo.xcframeworkStartApp.xcframeworkTaurusxAdsSDK.xcframework
Шаг 2. Подключите сервисы
Если вы планируете запускать UA (User Acquisition) кампании, хотите анализировать метрики в BI-инструмен те Appodeal без использования MMP или использовать remote config для тестов и настроек, подключите сервисы ниже. Каждому сервису также нужна собственная настройка, описанная на его странице:
-
Подключитесь к Adjust или AppsFlyer, чтобы разблокировать функции Атрибуции для ваших UA-кампаний.
-
Подключитесь к Meta (ранее известная как facebook-core) для User Acquisition.
-
Подключитесь к Firebase для Аналитики + remote config для продуктовых A/B тестов и настроек.
- Cocoa Pods
- Swift Package Manager
- Manual
Podfile из Шага 1 не включает сервисы. Код ниже добавляет адаптеры всех этих сервисов: добавьте его в ваш
Podfile и снова запустите $ pod install. Если какие-то сервисы вам не нужны, просто удалите их строки или
настройте набор на странице На стройка Медиационных Сетей.
Generating code...
Добавьте пакеты нужных сервисов так же, как Appodeal SDK в Шаге 1. Ссылки на пакеты — на странице Настройка Медиационных Сетей.
Шаг 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.
- Выберите файл Info.plist в Project navigator вашего Xcode проекта
- Нажмите правой кнопкой мыши нафайл Info.plist → Open As → Source Code
- Скопируйте 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.
- Выберите файл Info.plist в Project navigator вашего Xcode проекта
- Нажмите правой кнопкой мыши на файл Info.plist → Open As → Source Code
- Скопируйте AdAttributionKitItems из списка ниже и вставьте в ваш Info.plist файл
AdAttributionKit IDs в формате Info.plist
<key>AdAttributionKitItems</key>
<array>
</array>
Сконфигурируйте App Transport Security Settings
Для предоставления рекламы, Appodeal SDK необходимо разрешение на произвольные загрузки. Добавьте следующие ключи в info.plist вашего приложения:
- В файле info.plist нажмите Add+ в любом поле первой колонки.
- Добавьте App Transport Security Settings key**.** В качестве его типа во второй колонке выберите Dictionary .
- Нажмите 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 в нашей инструкции.
Следующие ключи помогут улучшить производительность рекламных СДК:
- GADApplicationIdentifier - Если в вашем проекте присутствует
AdMob адаптер, вам н еобходимо добавить AdMob app ID в ваш
info.plist . Используйте ключ
GADApplicationIdentifierи в качестве значения используйте AdMob app ID вашего приложения.
Подробнее о синхронизации с Admob в Admob инструкции. - NSUserTrackingUsageDescription - Начиная с iOS 14 использование IDFA требует разрешения от конечного пользователя. Добавление описания поможет объяснить пользователю необходимость данного разрешения.
- 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:
- Swift
- Objective-C
import Appodeal
#import <Appodeal/Appodeal.h>
Мы рекомендуем использовать метод инициализации SDK в функции жизненного
цикла приложения AppDelegate - didFinishLaunchingWithOptions:
- Swift
- Objective-C
@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
}
}