Решение проблем при интеграции SDK
Как определить, что интеграция проведена правильно?
Проверить корректность интеграции можно одним из способов:
- загрузить рекламу с помощью демоблоков и проверить, что реклама реагирует на клик;
- использовать встроенный в SDK анализатор или нативный инструмент Console;
- для нативной рекламы также можно включить индикатор некорректной интеграции и проверить, что не отображается красный индикатор.
Подробнее о тестировании интеграции читайте в разделе Yandex Mobile Ads SDK:
Кнопка имплементации выдает неправильное подключение SDK
Рекомендуется проверить:
- корректность добавления зависимостей;
- корректность инициализации библиотеки.
Также можно воспользоваться режимом отладки интеграции.
Возможные ошибки интеграции
Интеграция может быть некорректной по причинам:
-
Не подключен или некорректно подключен адаптер. Ознакомьтесь с инструкциями по подключению сторонних медиаций:
-
Не интегрирован Unity плагин для приложений на Unity. Ознакомьтесь с инструкцией по интеграции плагина.
-
Некорректно указан ID блока в интерфейсе Рекламной сети Яндекса и кабинете сторонней медиации. Проверьте, что во всех кабинетах указаны одинаковые ID блока.
-
Указаны разные пороги в интерфейсе Рекламной сети Яндекса и кабинете сторонней медиации. Проверьте, что во всех кабинетах указаны одинаковые пороги.
При интеграции с Unity появляется ошибка resource android:attr/lStar not found
Чтобы исправить ошибку, можно понизить Target API Level до версии 30. Подробнее в инструкции.
Однако рекомендуется обновление до Target API Level версии 31, так как у Google есть ограничения на выпуск обновлений для приложений с устаревшей версией Target API Level. Подробнее в статье.
При интеграции с React Native (Android) появляется ошибка Could not find any matches for com.facebook.react:react-android
Чтобы исправить ошибку, в файле android/build.gradle
приложения в блоке allprojects
добавьте следующее:
allprojects {
repositories {
// ...
}
// this fixes an issue with react-native dependencies resolution
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module("com.facebook.react:react-android") using module("com.facebook.react:react-native:+")
}
}
}
Возникает Fatal Error
по нахождению пути классов
Вероятно, при сборке ProGuard производит манипуляции и перестановки. Такая ошибка возникает, если включена настройка -keepclasseswithmembernames
в файле конфигурации proguard config
. Необходимо закомментировать код или удалить строку.
При сборке появляется ошибка невозможности подключения к ресурсу
Ошибка может возникать, если некорректно указан ресурс в Podfile
. Подробнее в инструкции.
Если ошибка повторяется, обратитесь в службу поддержки.
Написать в службу поддержки
Сообщение Provided block ID doesn't exist
После запроса за рекламой появляется сообщение Provided block ID doesn't exist
, несмотря на то, что в интерфейсе Рекламной сети Яндекса созданы блоки.
Проверьте корректность указанного блока из интерфейса Рекламной сети Яндекса в запросе в приложении.
Почему возникает ошибка NoAdsAvailable
?
Данная ошибка означает, что система не смогла подобрать рекламу. Она может возникать при тестировании из-за того, что для новых непроклеенных устройств нужно время, чтобы наша система собрала информацию по устройству и Крипта ее подцепила. После этого процесса начинается подбор рекламы. Из-за чего еще может возникать данная ошибка:
- На рекламном блоке выставлен слишком высокий порог CPM.
- Рекламный блок находится в архиве.
- Медиация, которую вы используете, не поддерживает показы рекламы в РФ.
- BundleID приложения в интерфейсе Рекламной сети Яндекса отличается от BundleID, для которого запрашивается реклама.
Если ошибка повторяется, обратитесь в службу поддержки.
Написать в службу поддержки
Не приходит ответ на запрос получения рекламы, и возникает ошибка Banner Rendering Failed with Timeout
Такая ошибка может возникать, если долго обрабатывается запрос. Обратитесь в службу поддержки и предоставьте в своем запросе лог ошибок.
Написать в службу поддержки
Не грузится баннер после запроса за рекламой
Почему возникает отключение видимости баннера после успешной загрузки?
Возможно, вы применяете настройку android:visibility="gone"
для параметров видимости. Выставьте программно или вручную android:visibility="visible"
.
Можно ли ограничить длину видеороликов в Rewarded video?
Да, такая возможность есть. Обратитесь в службу поддержки или к вашему персональному менеджеру.
Написать в службу поддержки
Как правильно оформить нативный рекламный блок?
Подробности в статье.
Можно ли обрезать картинку в нативной рекламе?
Основное изображение можно обрезать не более чем на 25% и только относительно центра изображения. Иконку нельзя увеличить или обрезать, но можно уменьшить без изменения пропорций. Подробные правила описаны в разделе Нативная реклама.
Как включить видеорекламу и медийную рекламу в нативные блоки?
По умолчанию в нативных рекламных блоках показываются только текстово-графические объявления. Для включения видеорекламы и/или медийной рекламы в ваших нативных блоках обратитесь в службу поддержки или к вашему персональному менеджеру.
Примечание
Написать в службу поддержки
Почему может быть низкий Fill Rate?
Причиной низкой заполняемости рекламного блока может быть наличие порога CPM, блокировка тематик и брендов, технические проблемы. Чтобы повысить Fill Rate, необходимо выявить и устранить проблему.
Подробнее о повышении эффективности рекламы читайте в Справке.
Как записать сессию сниффера (Сharles)?
Charles — прокси-сервер, который работает на вашем компьютере и позволяет записывать HTTP- и HTTPS-трафик подключенных устройств. Запись сессии позволит службе поддержки быстро диагностировать проблему, связанную с загрузкой или показом рекламы, поскольку содержит данные запрашиваемого блока, параметры рекламного места, информацию о баннерах, которые были показаны, и техническую информацию об устройстве.
Установить Charles
- Установите Charles на компьютере с официального сайта.
- Если при первом запуске приложение предложило автоматически настроить параметры сети, нажмите Grant Privileges.
- Приложение бесплатное в течение 30 дней. Если у вас есть ключ, в меню Charles выберите Help → Register Charles и зарегистрируйте приложение.
Подробные инструкции по использованию приложения приведены в документации Charles.
Настроить прокси
Чтобы приложение на компьютере могло записывать трафик мобильного устройства:
- В меню Charles выберите Proxy → SSL Proxying Settings.
- Включите опцию Enable SSL Proxying.
- Нажмите кнопку Add под Include Location и укажите звездочку в поле Host. Сохраните изменения.
- В меню Charles выберите Help → SSL Proxying → Install Root Certificate on a Mobile Device or Remote Browser. Charles отобразит IP-адрес и порт прокси-сервера, то есть IP-адрес вашего компьютера и используемый по умолчанию порт 8888.
- Перезапустите Charles.
- Подключите мобильное устройство к той же сети Wi-Fi, что и компьютер. Перейдите в настройки этой сети, выберите настроить прокси вручную и укажите IP-адрес и порт прокси-сервера.
Установить сертификат
Чтобы записывать HTTPS-трафик, установите на мобильном устройстве корневой SSL-сертификат Charles. Более подробная информация приведена в документации Charles.
-
В системном браузере скачайте сертификат по ссылке http://chls.pro/ssl.
Примечание
Если скачать сертификат не удается, возможно, файрвол на компьютере блокирует входящие соединения. В настройках файрвола разрешите приложению Charles принимать входящие соединения и повторите попытку.
-
Если установка сертификата не началась автоматически, в настройках устройства найдите раздел установки сертификатов и установите сертификат Charles. Выберите тип использования «для VPN и приложений». Если потребуется установить PIN, укажите любой.
-
Для Android версии 10 и выше настройте конфигурацию приложения (APK), которое запрашивает рекламу:
-
В каталоге
res/xml
создайте файлnetwork_security_config.xml
с текстом:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <!-- Trust preinstalled CAs --> <certificates src="system" ></certificates> <!-- Trust user added CAs --> <certificates src="user" ></certificates> </trust-anchors> </base-config> </network-security-config>
-
В файл
AndroidManifest.xml
добавьте атрибут для секцииapplication
:<manifest> ... <application android:networkSecurityConfig="@xml/network_security_config"> ... </application> </manifest>
-
-
В браузере Safari скачайте сертификат по ссылке http://chls.pro/ssl.
Примечание
Если скачать сертификат не удается, возможно, файрвол на компьютере блокирует входящие соединения. В настройках файрвола разрешите приложению Charles принимать входящие соединения и повторите попытку.
-
Если установка сертификата не началась автоматически, в настройках устройства перейдите в раздел Профиль, выберите сертификат Charles и установите его.
-
В настройках устройства перейдите в раздел Основные → Об этом устройстве → Доверие сертификатам и включите доверие для сертификата Charles.
Записать сессию
Чтобы начать и остановить запись трафика, используйте кнопку / на панели инструментов Charles. Когда идет запись, кнопка выглядит так: .
Обновите экран приложения, на котором запрашивается реклама. Убедитесь, что в сессии появился URL для загрузки рекламы — mobile.yandexadexchange.net/v4/ad
. В меню Charles выберите File → Save Session As... и сохраните файл с расширением .chls
.
Совет
После завершения отладки удалите сертификат на устройстве и выключите использование прокси-сервера.