Я пытаюсь понять, почему я получаю сообщение об ошибке "Объявления не найдены" .
Ожидаемое
Собственные объявления из сети аудитории Facebook (FAN) для показа в Android RecyclerView показываются так же, как тестовые рекламные блоки, показанные на снимке экрана ниже.
Настройка
Android
Я выполнил настройку Android для нативной рекламы. Приложение не доступно в Play Store, так как оно все еще находится в стадии тестирования.
AndroidManifest.xml
...
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="[app-package-here]">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="[app-package-here].MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.mopub.common.privacy.ConsentDialogActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name="com.mopub.common.MoPubBrowser" android:configChanges="keyboardHidden|orientation|screenSize"/>
</application>
</manifest>
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
<domain includeSubdomains="true">example.com</domain>
<domain includeSubdomains="true">cdn.example2.com</domain>
</domain-config>
</network-security-config>
build.gradle (Модуль)
implementation('com.mopub:mopub-sdk-native-static:5.4.1@aar') {
transitive = true
}
implementation 'com.facebook.android:audience-network-sdk:5.1.0'
implementation 'com.mopub.mediation:facebookaudiencenetwork:5.1.0.0'
build.gradle (приложение)
buildscript {
ext.kotlin_version = '1.3.11'
repositories {
google()
jcenter()
mavenCentral()
maven { url 'https://maven.google.com' }
maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha09"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
}
}
MainActivity
val sdkConfiguration = SdkConfiguration.Builder([ad-unit-id-here])
.build()
MoPub.initializeSdk(this, sdkConfiguration, initSdkListener())
Деятельность / Фрагмент
private fun populateAdapterType() {
moPubAdapter = MoPubRecyclerAdapter(activity!!, adapter,
MoPubNativeAdPositioning.MoPubServerPositioning())
val moPubStaticNativeAdRenderer = MoPubStaticNativeAdRenderer(
ViewBinder.Builder(R.layout.native_ad_list_item)
.titleId(R.id.native_title)
.textId(R.id.native_text)
.mainImageId(R.id.native_main_image)
.iconImageId(R.id.native_icon_image)
.callToActionId(R.id.native_cta)
.privacyInformationIconImageId(R.id.native_privacy_information_icon_image)
.build()
)
moPubAdapter.registerAdRenderer(moPubStaticNativeAdRenderer)
contentRecyclerView.adapter = moPubAdapter
moPubAdapter.loadAds([ad-unit-id-here])
}
Консоль MoPub
App
Рекламный блок
Сеть
Сегмент
Фактический
Идентификатор тестового рекламного блока 11a17b188668469fb0412708c3d16813 успешно отображается. Однако живая реклама на Facebook не отображается при использовании идентификатора рекламного блока, созданного в консоли MoPub.
Ошибка : "MoPubNetworkError: Нет объявлений для рекламного блока"
Полная ошибка
2019-01-11 18: 46: 12.312 29624-29624 / [app-package-here] D / MoPub: MoPubNative Загрузка объявления из: https://ads.mopub.com/m/ad?id=[ad-id-here]&nv=5.4.1&dn=Google%2CPixel%202%2Cwalleye&bundle=[app-package-here]&z=-0800&o=p&w=1080&h=1920&sc=2.625&mcc=310&mnc=260&cn=Google%20Fi&ct=2&av=0.15&udid=mp_tmpl_advertising_id&dnt=mp_tmpl_do_not_track&gdpr_applies=0&force_gdpr_applies=0¤t_consent_status=unknown&MAGIC_NO=0
2019-01-11 18: 46: 12.689 29624-29624 / [app-package-here] D / MoPub: Попытка вызвать пользовательское событие: com.mopub.nativeads.FacebookNative
2019-01-11 18: 46: 13.114 29624-29624 / [app-package-here] D / MoPub: Успешное попадание в конечную точку отслеживания: https://ads.mopub.com/m/attempt
2019-01-11 18: 46: 13.205 29624-29624 / [app-package-here] W / MoPub: MoPubNative.onNativeAdLoaded com.mopub.nativeads.CustomEventNativeAdapter@708f83c
2019-01-11 18: 46: 13.206 29624-29624 / [app-package-here] V / MoPub: не удалось загрузить собственное объявление с ошибкой: для CustomEventNative не зарегистрирован необходимый рендерер ..
2019-01-11 18: 46: 13.394 29624-29624 / [app-package-here] D / MoPub: собственный запрос рекламы не выполнен.
com.mopub.network.MoPubNetworkError: Нет объявлений для рекламного блока.
в com.mopub.network.MultiAdResponse. (MultiAdResponse.java:157)
at com.mopub.network.MultiAdRequest.parseNetworkResponse (MultiAdRequest.java:96)
at com.mopub.volley.NetworkDispatcher.processRequest (NetworkDispatcher.java:132)
at com.mopub.volley.NetworkDispatcher.run (NetworkDispatcher.java:87)
Потенциальные решения
- Идентификатор места размещения: В MoPub Facebook был добавлен как сеть, но добавлен неправильный идентификатор места размещения . Я обновил идентификатор места размещения на тот, который был сгенерирован из Менеджера монетизации Facebook в инструментах Business Manager .
При правильном идентификаторе места размещения Facebook Отладчик запросов объявлений показывает запросы, сделанные MoPub.
Менеджер монетизации Facebook
Настройки сети MoPub > Настройка приложения и рекламного блока
Отладчик запроса рекламы в Facebook
- Приложение не активировано: В настоящее время приложение находится в тестовом режиме, поэтому оно не отображается в Play Store. Тем не менее, согласно документации Facebook Ваше приложение не сможет получать рекламу от Audience Network до тех пор, пока не будет добавлена информация о выплатах. Информация о выплатах была добавлена, но в документации Facebook не указано, должно ли приложение быть активным как хорошо, чтобы получать объявления.
Я также добавил тестовое устройство с AAID моего телефона на Документация по тестированию Facebook , поэтому не должно быть проблем с живым в Play Store.