Решение проблем при интеграции SDK

Как определить, что интеграция проведена правильно?

Проверить корректность интеграции можно одним из способов:

  • загрузить рекламу с помощью демоблоков и проверить, что реклама реагирует на клик;
  • использовать встроенный в SDK анализатор или нативный инструмент Console;
  • для нативной рекламы также можно включить индикатор некорректной интеграции и проверить, что не отображается красный индикатор.

Подробнее о тестировании интеграции читайте в разделе Yandex Mobile Ads SDK:

Кнопка имплементации выдает неправильное подключение SDK

Рекомендуется проверить:

Также можно воспользоваться режимом отладки интеграции.

Возможные ошибки интеграции

Интеграция может быть некорректной по причинам:

  1. Не подключен или некорректно подключен адаптер. Ознакомьтесь с инструкциями по подключению сторонних медиаций:

  2. Не интегрирован Unity плагин для приложений на Unity. Ознакомьтесь с инструкцией по интеграции плагина.

  3. Некорректно указан ID блока в интерфейсе Рекламной сети Яндекса и кабинете сторонней медиации. Проверьте, что во всех кабинетах указаны одинаковые ID блока.

  4. Указаны разные пороги в интерфейсе Рекламной сети Яндекса и кабинете сторонней медиации. Проверьте, что во всех кабинетах указаны одинаковые пороги.

При интеграции с 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?

Данная ошибка означает, что система не смогла подобрать рекламу. Она может возникать при тестировании из-за того, что для новых непроклеенных устройств нужно время, чтобы наша система собрала информацию по устройству и Крипта ее подцепила. После этого процесса начинается подбор рекламы. Из-за чего еще может возникать данная ошибка:

  1. На рекламном блоке выставлен слишком высокий порог CPM.
  2. Рекламный блок находится в архиве.
  3. Медиация, которую вы используете, не поддерживает показы рекламы в РФ.
  4. BundleID приложения в интерфейсе Рекламной сети Яндекса отличается от BundleID, для которого запрашивается реклама.

Если ошибка повторяется, обратитесь в службу поддержки.

Написать в службу поддержки

Не приходит ответ на запрос получения рекламы, и возникает ошибка Banner Rendering Failed with Timeout

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

Написать в службу поддержки

Не грузится баннер после запроса за рекламой

Рекомендуется проверить корректность передаваемого AdUnitID, параметры запроса и размеры баннера. Примеры кода:

Почему возникает отключение видимости баннера после успешной загрузки?

Возможно, вы применяете настройку android:visibility="gone" для параметров видимости. Выставьте программно или вручную android:visibility="visible".

Можно ли ограничить длину видеороликов в Rewarded video?

Да, такая возможность есть. Обратитесь в службу поддержки или к вашему персональному менеджеру.

Написать в службу поддержки

Как правильно оформить нативный рекламный блок?

Подробности в статье.

Можно ли обрезать картинку в нативной рекламе?

Основное изображение можно обрезать не более чем на 25% и только относительно центра изображения. Иконку нельзя увеличить или обрезать, но можно уменьшить без изменения пропорций. Подробные правила описаны в разделе Нативная реклама.

Как включить видеорекламу и медийную рекламу в нативные блоки?

По умолчанию в нативных рекламных блоках показываются только текстово-графические объявления. Для включения видеорекламы и/или медийной рекламы в ваших нативных блоках обратитесь в службу поддержки или к вашему персональному менеджеру.

Примечание

Перед включением вам необходимо начать передавать размеры в запросе. Подробности в инструкциях:

Написать в службу поддержки

Почему может быть низкий Fill Rate?

Причиной низкой заполняемости рекламного блока может быть наличие порога CPM, блокировка тематик и брендов, технические проблемы. Чтобы повысить Fill Rate, необходимо выявить и устранить проблему.

Подробнее о повышении эффективности рекламы читайте в Справке.

Как записать сессию сниффера (Сharles)?

Charles — прокси-сервер, который работает на вашем компьютере и позволяет записывать HTTP- и HTTPS-трафик подключенных устройств. Запись сессии позволит службе поддержки быстро диагностировать проблему, связанную с загрузкой или показом рекламы, поскольку содержит данные запрашиваемого блока, параметры рекламного места, информацию о баннерах, которые были показаны, и техническую информацию об устройстве.

Установить Charles

  1. Установите Charles на компьютере с официального сайта.
  2. Если при первом запуске приложение предложило автоматически настроить параметры сети, нажмите Grant Privileges.
  3. Приложение бесплатное в течение 30 дней. Если у вас есть ключ, в меню Charles выберите Help → Register Charles и зарегистрируйте приложение.

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

Настроить прокси

Чтобы приложение на компьютере могло записывать трафик мобильного устройства:

  1. В меню Charles выберите Proxy → SSL Proxying Settings.
  2. Включите опцию Enable SSL Proxying.
  3. Нажмите кнопку Add под Include Location и укажите звездочку в поле Host. Сохраните изменения.
  4. В меню Charles выберите Help → SSL Proxying → Install Root Certificate on a Mobile Device or Remote Browser. Charles отобразит IP-адрес и порт прокси-сервера, то есть IP-адрес вашего компьютера и используемый по умолчанию порт 8888.
  5. Перезапустите Charles.
  6. Подключите мобильное устройство к той же сети Wi-Fi, что и компьютер. Перейдите в настройки этой сети, выберите настроить прокси вручную и укажите IP-адрес и порт прокси-сервера.

Установить сертификат

Чтобы записывать HTTPS-трафик, установите на мобильном устройстве корневой SSL-сертификат Charles. Более подробная информация приведена в документации Charles.

  1. В системном браузере скачайте сертификат по ссылке http://chls.pro/ssl.

    Примечание

    Если скачать сертификат не удается, возможно, файрвол на компьютере блокирует входящие соединения. В настройках файрвола разрешите приложению Charles принимать входящие соединения и повторите попытку.

  2. Если установка сертификата не началась автоматически, в настройках устройства найдите раздел установки сертификатов и установите сертификат Charles. Выберите тип использования «для VPN и приложений». Если потребуется установить PIN, укажите любой.

  3. Для 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>
      
  1. В браузере Safari скачайте сертификат по ссылке http://chls.pro/ssl.

    Примечание

    Если скачать сертификат не удается, возможно, файрвол на компьютере блокирует входящие соединения. В настройках файрвола разрешите приложению Charles принимать входящие соединения и повторите попытку.

  2. Если установка сертификата не началась автоматически, в настройках устройства перейдите в раздел Профиль, выберите сертификат Charles и установите его.

  3. В настройках устройства перейдите в раздел Основные → Об этом устройстве → Доверие сертификатам и включите доверие для сертификата Charles.

Записать сессию

Чтобы начать и остановить запись трафика, используйте кнопку  /  на панели инструментов Charles. Когда идет запись, кнопка выглядит так: .

Обновите экран приложения, на котором запрашивается реклама. Убедитесь, что в сессии появился URL для загрузки рекламы — mobile.yandexadexchange.net/v4/ad. В меню Charles выберите File → Save Session As... и сохраните файл с расширением .chls.

Совет

После завершения отладки удалите сертификат на устройстве и выключите использование прокси-сервера.

Обратиться в службу поддержки

Предыдущая
Следующая