Интеграция Медиации Яндекса
Важно
Обязательно обновите версии используемых адаптеров на актуальные (Медиация Яндекса). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.
Мобильная медиация — платформа, которая автоматически подбирает рекламу из множества сетей на основе алгоритмов ML. Это позволяет максимизировать доход. Все настройки работают «из коробки» — отлаживать каждую сеть отдельно не нужно. Если вы раньше использовали Mobile Ads SDK только с одной сетью Яндекса, то для перехода на Медиацию не придется ничего менять в коде. Предварительно нужно только настроить блоки в веб-интерфейсе внешних рекламных сетей.
Предварительная настройка
Чтобы подготовить приложение, выполните действия, описанные в следующих разделах.
Требования к приложению
- Используйте Android Studio 2021 или выше.
- Убедитесь, что в файле сборки вашего приложения используются следующие значения:
- minSdkVersion 23 или выше;
- compileSdkVersion 34 или выше.
- Используйте iOS 13 и выше.
- Используйте Xcode 16.1 и выше.
Настройте приложение в своем аккаунте в Рекламной сети Яндекса
Зарегистрируйте свое приложение как приложение Рекламной сети Яндекса, выполнив следующие действия:
- Войдите или зарегистрируйте аккаунт в Рекламной сети Яндекса.
- Зарегистрируйте свое приложение в Рекламной сети Яндекса.
Подключение Yandex Mobile Ads React Native plugin
Чтобы интегрировать Yandex Mobile Ads SDK в приложение React Native, используйте Yandex Mobile Ads React Native плагин.
Установите плагин Yandex Mobile Ads React Native в свой проект. Из корня проекта вызовите команду:
npm install yandex-mobile-ads
После добавления плагина в файле package.json появится строка с зависимостью:
"dependencies": {
"yandex-mobile-ads": "^7.18.0"
}
Настройка для конкретной платформы
Разрешение на использование рекламного идентификатора
Рекламный идентификатор – уникальный идентификатор сервисов Google Play для показа рекламы пользователям, которые согласны видеть персонализированные объявления. Пользователь может отключить персонализацию рекламы или сбросить идентификатор в настройках. В таком случае рекламные сети не смогут использовать его для подбора релевантной рекламы.
При необходимости вы можете удалить разрешение. Например, если какие-то политики, такие как Families Policy, не позволяют использовать идентификатор для подбора рекламы.
Чтобы разрешение не попало в основной манифест приложения, добавьте в файл AndroidManifest.xml следующий код:
<manifest>
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
</manifest>
Важно
Отсутствие разрешения и доступа к идентификатору может снизить релевантность рекламы и, как следствие, ваш доход.
Настройка COPPA
Настроить политики использования персональных данных можно через AndroidManifest.file или непосредственно перед инициализацией SDK вручную.
При автоматической инициализации, для уведомления Yandex Mobile Ads SDK об использовании приложения ребенком, добавьте в AndroidManifest.xml файл следующий код:
<manifest>
<application>
<!-- Disable the use of child's personal data for app monetization. -->
<meta-data
android:name="@string/yandex_mobileads_age_restricted_user"
android:value="true" />
</application>
</manifest>
Поддержка SKAdNetwork
Что такое SKAdNetwork?
С выходом iOS 14 компания Apple ограничила доступ к идентификатору IDFA, который использовался для привязки установок приложений к рекламным кампаниям. Рекламные сети больше не могут полностью полагаться на IDFA для атрибуции конверсий в рекламных кампаниях. SKAdNetwork решает эту задачу, предоставляя агрегированные данные об атрибуции без раскрытия персональных данных.
Mobile Ads SDK интегрирован со SKAdNetwork и обеспечивает трекинг установок на всех устройствах, в том числе тех, где IDFA недоступен.
Подробнее в разделе Configuring a source App документации Apple.
Зачем внедрять SKAdNetwork?
Для корректного учета всех конверсий при показе рекламы приложения объявите ID рекламных сетей в своем Info.plist. Иначе часть конверсий будет утеряна, что может негативно повлиять на рекламный доход.
Внедрение SKAdNetwork
Прямое встраивание списка
Список для ручного добавления идентификаторов в Info.plist:
Список идентификаторов SKAdNetwork
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zq492l623r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n9x2a789qt.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r26jy69rpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5l3tpt7t6e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta9lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>633vhxswh4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tmhh9296z4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vcra2ehyfk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zh3b7bxvad.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xmn954pzmp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>79w64w269u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>488r3q3dtq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>d7g9azk84q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nzq8sh4pbs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>866k9ut3g3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2q884k2j68.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8jxxk4ff5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gfat3222tu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pd25vrrwzn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>lr83yxwka7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cp8zw746q7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwdxu55a5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c6k4g5qg8m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s39g8k73mm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wg4vff78zm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g28c52eehv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>523jb4fst2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>294l99pt4k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qy4746246.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a8cz6cu7e5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ggvn48r87g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y755zyxw56.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qlbq5gtkt8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mls7yz5dvl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>67369282zy.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>899vrgt9g8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mj797d8u6f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3sh42y64q3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24t9a8vw3c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mp6xlyr22a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x44k69ngh6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>88k8774x49.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t3b3f7n3x8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c7g47wypnu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>52fl2v3hgk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9vvzujtq5s.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m8dbw4sv7c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9g2aggbj52.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m5mvw97r93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>z5b3gh5ugf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dd3a75yxkv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9nlqeag3gk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cj5566h2ga.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>h5jmj969g5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dr774724x4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t7ky8fmwkd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>fz2k2k5tej.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>u679fj5vs4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cs644xg564.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9b89h5y424.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>w28pnjg2k4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2rq3zucswp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a7xqa6mtl2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g2y4y55b64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vc83br9sjg.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>eqhxz8m8av.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7k3cvf297u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>w9q455wk68.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nu4557a4je.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v4nxqhlyqp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7fmhfwg9en.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7tnzynbdc7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>l6nv3x923s.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>h8vml93bkz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uzqba5354d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8qiegk9qfv.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v79kvwwj4g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xx9sdjej2w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>au67k4efj4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rx5hdcabgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5lm9lj6jb7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qqp299437r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>zmvfpc5aq8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>79pbpufp6p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dmv22haz9p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y5ghdn5j9k.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n6fk4nfna4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7rz58n8ntl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>feyaarzu9v.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7fbxrn65az.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>47vhws6wlr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ejvt5qm6ak.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>b55w3d8y8z.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v7896pgt74.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5ghnmfs3dh.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>275upjj5gd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>627r9wr2y5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>sczv5946wb.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8w3np9l82g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hb56zgv37p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nrt9jy4kw9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7953jerfzd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dn942472g5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6v7lgmsu45.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cad8qz2s3j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>eh6m2bh4zr.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>jb7bn6koa5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>fkak3gfpt6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>238da6jt44.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>b9bk5wbcq9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>24zw6aqk47.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2tdux39lx8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3cgn6rq224.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>glqzh8vgby.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>klf5c3l5u5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>nfqy3847ph.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dticjx1a9i.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ppxm28t8ap.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9wsyqb3ku7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>74b6s63p6l.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xy9t38ct57.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>424m5254lk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>qu637u8glc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f73kdq92p3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44n7hlldy6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ecpz2srf59.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x5854y7y24.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x8uqf25wch.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6964rsfnh4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gvmwg8q7h5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6yxyv74ff7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>84993kbrcf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>54nzkqm89y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pwa73g5rt2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9yg77x724h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n66cz3y3bx.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>578prtvx9j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>bvpn9ufa9b.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6qx585k4p6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mtkv5xtk9e.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>l93v5h6a4m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>rvh3l7un93.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5tjdwbrq8w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r45fhb6rf7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>32z4fx6l9h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>e5fvkxwrpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8c4e2ghe7u.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>axh5283zss.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5mv394q32t.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v72qych5uu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4pfyvq9l8r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>5a6flpkh64.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4w7y6s5ca2.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>252b5q8x7y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3l6bd9hu43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4mn522wn87.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6g9af3uyq4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6p4ks3rnbw.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>6xzpu9s2p8.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>737z793b9f.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>89z7zv988g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8m87ys6875.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8r8llnkz5a.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>bxvub5ada5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cg4yq2srnc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dbu4b84rxf.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dkc879ngq3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>dzg6xy7pwj.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>gta8lk7p23.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hdw39hrw9y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hjevpa356n.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>krvm3zuq6h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ln5gz23vtd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m297p6643m.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>pu4na253f3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>s69wq72ugq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t6d3zquu66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vutu7akeur.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x2jnk7ly8j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x5l83yy675.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>y45688jllp.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yrqqpx2mcb.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>z4gj7hsk7h.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>33r6p7g8nc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g69uk9uh2b.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>g6gcrrvk4p.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mqn7fxpca7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ns5j362hk7.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>vhf287vqwu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>xga6mpmplv.skadnetwork</string>
</dict>
</array>
Автоматизация обновления
Обновляйте список SKAdNetwork ID программно, например, встроив его в свой CI/CD. Для этого используйте актуальный список идентификаторов в одном из форматов:
https://yastatic.net/pcode-static/skadnetwork/skadids.json
https://yastatic.net/pcode-static/skadnetwork/skadids.xml
Использование скрипта
Вы также можете воспользоваться готовым скриптом:
Скрипт для обновления идентификаторов SKAdNetwork
#!/bin/bash
# ============================================================
# Yandex Ads SDK — SKAdNetwork IDs Updater
#
# Fetches the latest SKAdNetwork IDs from Yandex
# and merges them into Info.plist
# ============================================================
set -o pipefail
URLS=(
"https://yastatic.net/pcode-static/skadnetwork/skadids.json"
"https://yastatic.net/pcode-static/skadnetwork/skadids.xml"
)
PLIST_BUDDY="/usr/libexec/PlistBuddy"
TAG="[YandexAds]"
# ---- Colors ----
if [ -t 1 ]; then
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m'
else
RED=''
GREEN=''
YELLOW=''
NC=''
fi
log_info() { printf "${NC}${TAG} %s${NC}\n" "$1"; }
log_start() { printf "${YELLOW}${TAG} %s${NC}\n" "$1"; }
log_success() { printf "${GREEN}${TAG} %s${NC}\n" "$1"; }
log_warn() {
if [ -t 1 ]; then
# Terminal: colored, readable format
printf "${RED}${TAG} Warning: %s${NC}\n" "$1"
else
# Xcode Build Phase: recognized as warning in Issue Navigator
printf "warning: ${TAG} %s\n" "$1"
fi
}
# ---- Start ----
log_start "Starting SKAdNetwork IDs update..."
# ---- Resolve Info.plist path ----
resolve_plist() {
# 1. Explicit argument
if [ -n "${1:-}" ]; then
echo "$1"
return 0
fi
# 2. Xcode environment
if [ -n "${INFOPLIST_FILE:-}" ]; then
if [[ "${INFOPLIST_FILE}" = /* ]]; then
echo "${INFOPLIST_FILE}"
else
echo "${SRCROOT:-.}/${INFOPLIST_FILE}"
fi
return 0
fi
# 3. Auto-search in current directory
local found
found=$(find . \
-name "Info.plist" \
-not -path "*/Pods/*" \
-not -path "*/Carthage/*" \
-not -path "*/DerivedData/*" \
-not -path "*/build/*" \
-not -path "*/.build/*" \
-not -path "*/Packages/*" \
-not -path "*Tests*" \
-not -path "*Extensions*" \
2>/dev/null)
local count
count=$([ -n "$found" ] && echo "$found" | wc -l | tr -d ' ' || echo "0")
if [ "$count" -eq 1 ]; then
echo "$found"
return 0
elif [ "$count" -gt 1 ]; then
log_warn "Found multiple Info.plist files:" >&2
echo "$found" >&2
log_warn "Pass the correct path as argument." >&2
return 1
fi
log_warn "Info.plist not found. Pass as argument or run from project root." >&2
return 1
}
PLIST_PATH=$(resolve_plist "${1:-}") || exit 0
if [ ! -f "$PLIST_PATH" ]; then
log_warn "File not found: $PLIST_PATH"
exit 0
fi
log_info "Plist: $PLIST_PATH"
# ---- Fetch with fallback ----
RESPONSE=""
for url in "${URLS[@]}"; do
log_info "Trying: $url"
RESPONSE=$(curl -sf --max-time 5 "$url" 2>/dev/null) && [ -n "$RESPONSE" ] && {
log_info "Fetched: $url"
break
}
RESPONSE=""
done
if [ -z "$RESPONSE" ]; then
log_warn "All sources unavailable. Skipping."
exit 0
fi
# ---- Extract IDs (both JSON and XML) ----
REMOTE_IDS=$(echo "$RESPONSE" \
| grep -ioE '[a-z0-9]+\.skadnetwork' \
| tr '[:upper:]' '[:lower:]' \
| sort -u)
if [ -z "$REMOTE_IDS" ]; then
log_warn "No IDs parsed. Skipping."
exit 0
fi
REMOTE_COUNT=$(echo "$REMOTE_IDS" | wc -l | tr -d ' ')
log_info "Remote IDs: $REMOTE_COUNT"
# ---- Read existing IDs from plist ----
EXISTING_IDS=$("$PLIST_BUDDY" -c "Print :SKAdNetworkItems" "$PLIST_PATH" 2>/dev/null \
| grep -ioE '[a-z0-9]+\.skadnetwork' \
| tr '[:upper:]' '[:lower:]' \
| sort -u)
EXISTING_COUNT=$([ -n "$EXISTING_IDS" ] && echo "$EXISTING_IDS" | wc -l | tr -d ' ' || echo "0")
log_info "Existing IDs: $EXISTING_COUNT"
# ---- Additive diff: only new IDs ----
if [ -n "$EXISTING_IDS" ]; then
IDS_TO_ADD=$(comm -23 <(echo "$REMOTE_IDS") <(echo "$EXISTING_IDS"))
else
IDS_TO_ADD="$REMOTE_IDS"
fi
ADD_COUNT=$([ -n "$IDS_TO_ADD" ] && echo "$IDS_TO_ADD" | wc -l | tr -d ' ' || echo "0")
if [ "$ADD_COUNT" -eq 0 ]; then
log_success "Up to date."
exit 0
fi
log_start "Adding $ADD_COUNT new ID(s)..."
# ---- Ensure SKAdNetworkItems array exists ----
"$PLIST_BUDDY" -c "Print :SKAdNetworkItems" "$PLIST_PATH" &>/dev/null \
|| "$PLIST_BUDDY" -c "Add :SKAdNetworkItems array" "$PLIST_PATH"
# ---- Append new entries ----
INDEX=$("$PLIST_BUDDY" -c "Print :SKAdNetworkItems" "$PLIST_PATH" 2>/dev/null \
| grep -c "Dict")
while IFS= read -r skad_id; do
[ -z "$skad_id" ] && continue
"$PLIST_BUDDY" \
-c "Add :SKAdNetworkItems: dict" \
-c "Add :SKAdNetworkItems:${INDEX}:SKAdNetworkIdentifier string ${skad_id}" \
"$PLIST_PATH" 2>/dev/null || {
log_warn "Failed to add: $skad_id"
continue
}
INDEX=$((INDEX + 1))
done <<< "$IDS_TO_ADD"
TOTAL=$((EXISTING_COUNT + ADD_COUNT))
log_success "Done. Total: $TOTAL (+$ADD_COUNT new)"
Скрипт загружает актуальный список SKAdNetwork ID с серверов Яндекса и добавляет недостающие записи в Info.plist.
Особенности работы скрипта:
- Только добавление. Скрипт добавляет только недостающие ID и не удаляет существующие записи, даже если они отсутствуют в новом списке.
- Без сохранения состояния. Скрипт не хранит промежуточные данные. При каждом запуске он заново запрашивает актуальный список, сравнивает его с
Info.plistи вносит изменения при необходимости. - Безопасность сборки. При сетевой ошибке скрипт завершается с кодом 0 и не прерывает процесс сборки.
Путь к Info.plist определяется автоматически:
| Приоритет | Источник | Когда |
|---|---|---|
| 1 | Аргумент ./script.sh path |
Явно указан путь |
| 2 | $INFOPLIST_FILE |
Xcode Build Phase |
| 3 | Автопоиск в текущей директории | Ручной запуск без аргумента |
Автопоиск исключает Pods/, Carthage/, DerivedData/, build/, Packages/, *Tests*, *Extensions*.
Использование в Xcode (Build Phase)
-
Скопируйте файл
update_skad_ids.shв корень проекта. -
Сделайте исполняемым:
chmod +x update_skad_ids.sh -
Откройте Target → Build Phases → + → New Run Script Phase.
-
Переименуйте в
Update Yandex SKAdNetwork IDs. -
В тело скрипта вставьте:
"${SRCROOT}/update_skad_ids.sh" -
Настройте параметры запуска скрипта. Для этого в созданной фазе
Update Yandex SKAdNetwork IDsвключите параметры:Параметр Значение Зачем For Install Builds Only 
Запуск только при Archive Based on dependency analysis 
Запускать всегда при Archive При этих настройках скрипт будет запускаться каждый раз при выполнении Archive. Если нужно, чтобы скрипт запускался при каждой сборке, выключите опцию For Install Builds Only.
-
Измените порядок выполнения фаз сборки.
В списке Build Phases переместите созданную фазу
Update Yandex SKAdNetwork IDsвыше фазыCopy Bundle Resources. Это гарантирует, чтоInfo.plistбудет обновлен до копирования ресурсов в бандл.
Ручной запуск
-
Сделайте исполняемым:
chmod +x update_skad_ids.sh -
Запустите скрипт:
Из корня проектаС указанием пути:Путь определится автоматически:
./update_skad_ids.sh./update_skad_ids.sh MyApp/Info.plist
Требования
- macOS 10.15 и выше
- Xcode 12 и выше
Подключение медиации
Подключение отдельных адаптеров
Важно
Обязательно обновите версии используемых адаптеров на актуальные (Мобильная медиация Яндекса). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.
Чтобы подключить адаптеры по отдельности, подключите Yandex Ads SDK и необходимые адаптеры по инструкциям к этим адаптерам:
-
Настройте медиацию в интерфейсе Рекламной сети Яндекса.
-
Добавьте зависимость от YandexMobileAds в build.gradle файл модуля вашего приложения:
dependencies { ... implementation 'com.yandex.android:mobileads:x.x.x' // add supported version // Add dependencies on Yandex Mediation adapters. } -
Добавьте поддержку Java 8 в build.gradle файл Android-модуля вашего приложения:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } -
Добавьте код в build.gradle файл Android-модуля вашего приложения:
// IronSource maven { url 'https://android-sdk.is.com/' } // Pangle maven { url 'https://artifact.bytedance.com/repository/pangle' } // Tapjoy maven { url "https://sdk.tapjoy.com/" } // Mintegral maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" } // Chartboost maven { url "https://cboost.jfrog.io/artifactory/chartboost-ads/" } // AppNext maven { url "https://dl.appnext.com/" } -
Настройте разрешение на использование рекламного идентификатора (для приложений, использующих sdk ниже версии 4.5.0).
Как настроить разрешение на использование рекламного идентификатора
Рекламный идентификатор – уникальный идентификатор сервисов Google Play для показа рекламы пользователям, которые согласны видеть персонализированные объявления. Пользователь может отключить персонализацию рекламы или сбросить идентификатор в настройках. В таком случае рекламные сети не смогут использовать его для подбора релевантной рекламы.
Если ваше приложение использует версию Yandex Mobile Ads SDK ниже 4.5.0, необходимо добавить разрешение com.google.android.gms.permission.AD_ID в AndroidManifest.xml файл вашего приложения:
<manifest> <application> <!-- For apps targeting Android 13 or higher & Yandex Mobile Ads SDK versions lower than 4.5.0 --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> </application> </manifest>Начиная с версии 4.5.0 Yandex Mobile Ads SDK добавляет разрешение com.google.android.gms.permission.AD_ID по умолчанию. Поэтому указывать его дополнительно в основном манифесте приложения не нужно. Разрешение позволяет использовать рекламный идентификатор для подбора более релевантной рекламы от рекламных сетей.
При необходимости, вы можете удалить разрешение. Например, если какие-то политики, такие как Families Policy, не позволяют использовать идентификатор для подбора рекламы.
Чтобы разрешение не попало в основной манифест приложения, добавьте в файл AndroidManifest.xml следующий код:
<manifest> <application> <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/> </application> </manifest>Важно
Отсутствие разрешения и доступа к идентификатору может снизить релевантность рекламы и, как следствие, ваш доход.
-
Подключите необходимые адаптеры отдельно с помощью соответствующих пакетов.
Чтобы подключить адаптеры по отдельности, подключите Yandex Ads SDK и необходимые адаптеры по инструкциям к этим адаптерам:
-
Настройте медиацию в интерфейсе Рекламной сети Яндекса.
-
Добавьте библиотеку
YandexMobileAdsв файл Podfile.pod 'YandexMobileAds', 'x.x.x' // add supported version -
Подключите необходимые адаптеры отдельно с помощью соответствующих библиотек.
Инициализация библиотеки Yandex Mobile Ads SDK
Успешная инициализация Yandex Mobile Ads SDK является важным условием корректной интеграции библиотеки.
По умолчанию, для Android, инициализация SDK происходит автоматически во время запуска приложения. Это ускоряет загрузку рекламы и, следовательно, увеличивает доход от монетизации.
По умолчанию, для iOS, инициализация SDK происходит автоматически перед загрузкой рекламы, но ручная инициализация позволит ускорить загрузку первого рекламного объявления, и, следовательно, увеличить доход от монетизации.
В useEffect хуке вашего главного компонента добавьте вызов MobileAds.initialize();:
React.useEffect(() => {
(async () => {
// Configure the user privacy data policy before init sdk
await MobileAds.initialize();
})();
});
Если для вашего приложения требуется настроить политики использования персональных данных, сделать это необходимо перед инициализацией Yandex Mobile Ads SDK.
Настроить политики использования персональных данных можно через AndroidManifest.file или непосредственно перед инициализацией SDK вручную.