Я настроил рекламу admob в своем приложении для Android: Манифест:
<meta-data
android:name = "com.google.android.gms.ads.APPLICATION_ID"
android:value = "ca-app-pub-123456567787889990">
Мой xml:
<com.google.android.gms.ads.AdView xmlns:ads = "http://schemas.android.com/apk/res-auto"
android:id = "@+id/adView"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "bottom"
ads:adSize = "BANNER"
ads:adUnitId = "ca-app-pub-0987784576567456234511"
ads:layout_constraintBottom_toBottomOf = "parent"
ads:layout_constraintEnd_toEndOf = "parent"
ads:layout_constraintStart_toStartOf = "parent">
</com.google.android.gms.ads.AdView>
В моем java-коде я сделал следующее:
MobileAds.initialize(this, "ca-app-pub-123456567787889990");
AdRequest adRequest = null;
if (BuildConfig.DEBUG) {
adRequest = new AdRequest.Builder().addTestDevice("EDDADA7CC97DD3A4AAD9123312312321").build();
} else {
adRequest = new AdRequest.Builder().build();
}
adView.loadAd(adRequest);
Я понимаю, что настоящая реклама должна использоваться только в производстве, и я должен использовать тестовую рекламу. Однако тестовая реклама появляется только на одном устройстве (устройство, на котором я тестирую), там оно работает правильно. Однако он не отображается ни на одном другом устройстве. Я отправил apk своему клиенту, и рекламное пространство всегда отображается пустым без тестовой рекламы.
Это преднамеренное поведение или я что-то упустил ?? Пожалуйста помоги.
Пробовали ли вы использовать демо-учетные данные командой Ad Mob? Это поможет вам увидеть демонстрационную рекламу в вашем приложении, и вам не нужно добавлять тестовое устройство для этого.
да, я пробовал демо-объявления, они работают правильно
вероятно, это добавление addTestDevice каждый раз.
@PembaTamang, поэтому, если тестовые объявления работают правильно, это означает, что ваша часть кодирования в порядке и работает, просто измените идентификатор Ad Mob (действующий), и вы готовы к загрузке в Магазин. Имейте в виду, что реклама привязана к конкретному местоположению, и если в вашем регионе нет доступных объявлений, она ничего не покажет.
Вы добавили только одно тестовое устройство для adRequest() в режиме отладки. Так что это работает только для этого устройства. Прежде всего, вам не нужно тестировать реальную учетную запись с реальным идентификатором рекламного блока AdMob, вы можете использовать тестовый идентификатор рекламного блока. И не нужно проверять, находится ли он в режиме отладки или нет.
Вы можете использовать этот способ для интеграции тестовых баннеров AdMob.
allprojects {
repositories {
google()
jcenter()
}
}
dependencies {
implementation 'com.google.android.gms:play-services-ads:17.1.1'
}
Затем добавьте это в файл Manifest.xml внутри тега приложения.
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name = "com.google.android.gms.ads.APPLICATION_ID"
android:value = "[ADMOB_APP_ID]"/>
4.Затем в вашем XML-файле макета
<com.google.android.gms.ads.AdView
xmlns:ads = "http://schemas.android.com/apk/res-auto"
android:id = "@+id/adView"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_centerHorizontal = "true"
android:layout_alignParentBottom = "true"
ads:adSize = "BANNER"
ads:adUnitId = "ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
package ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AppCompatActivity {
private AdView mAdView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this,
"ca-app-pub-3940256099942544~3347511713");
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
Тогда он будет отлично работать на всех устройствах. После этого вам нужно просто заменить идентификатор приложения admob и идентификатор баннера. Надеюсь, это поможет вам.