Google Admob Android: работает только на одном устройстве - PullRequest
0 голосов
/ 02 марта 2019

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

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

1 Ответ

0 голосов
/ 02 марта 2019

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

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

  1. Добавить это в сборку на уровне проекта.gradle
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
Добавить этот уровень приложения build.gradle
    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 и идентификатор блока баннера.Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...