Google Admob Android: работает только на одном устройстве

Я настроил рекламу 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 своему клиенту, и рекламное пространство всегда отображается пустым без тестовой рекламы.

Это преднамеренное поведение или я что-то упустил ?? Пожалуйста помоги.

stackoverflow.com/questions/21663618/…
Mian.Ammar 02.03.2019 05:44

Пробовали ли вы использовать демо-учетные данные командой Ad Mob? Это поможет вам увидеть демонстрационную рекламу в вашем приложении, и вам не нужно добавлять тестовое устройство для этого.

Rakshit Nawani 02.03.2019 05:48

да, я пробовал демо-объявления, они работают правильно

Pemba Tamang 02.03.2019 05:49

вероятно, это добавление addTestDevice каждый раз.

V-rund Puro-hit 02.03.2019 05:55

@PembaTamang, поэтому, если тестовые объявления работают правильно, это означает, что ваша часть кодирования в порядке и работает, просто измените идентификатор Ad Mob (действующий), и вы готовы к загрузке в Магазин. Имейте в виду, что реклама привязана к конкретному местоположению, и если в вашем регионе нет доступных объявлений, она ничего не покажет.

Rakshit Nawani 02.03.2019 05:58
2
5
558
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы добавили только одно тестовое устройство для adRequest() в режиме отладки. Так что это работает только для этого устройства. Прежде всего, вам не нужно тестировать реальную учетную запись с реальным идентификатором рекламного блока AdMob, вы можете использовать тестовый идентификатор рекламного блока. И не нужно проверять, находится ли он в режиме отладки или нет.

Вы можете использовать этот способ для интеграции тестовых баннеров AdMob.

  1. Добавьте это в build.gradle на уровне проекта
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
  1. Добавьте этот build.gradle на уровне приложения
    dependencies {

        implementation 'com.google.android.gms:play-services-ads:17.1.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>
  1. Затем в своей деятельности сделайте это
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 и идентификатор баннера. Надеюсь, это поможет вам.

Другие вопросы по теме