Идентификатор моего устройства для тестирования AdMob изменен (Android) - PullRequest
0 голосов
/ 18 февраля 2020

Я установил идентификатор устройства телефона, который я использую для тестирования adMob, как const в моем приложении. Мое тестовое устройство не является моим повседневным устройством.

Сегодня я хотел протестировать сценарий использования с видео с вознаграждением, и внезапно я получил no fill или internal errors.

Я заглянул в Log Cat и увидел, что идентификатор устройства изменился

По идентификатору устройства я имею в виду тот, который указан в этом журнале:

I/Ads: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("THIS_ID_HERE") to get test ads on this device.
  • Почему это изменилось?
  • Это потому, что я удалил версию prod и установил dev-версию своего приложения?
  • Это происходит случайно?
  • Могу ли я предотвратить это поведение?

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Идентификатор устройства меняется, если вы перезагружаете свой телефон. Это может произойти при обновлении ОС. Это не меняется случайно. Удаление версии prod и установка версии dev не должны изменять идентификатор вашего устройства (AFAIK).

0 голосов
/ 18 февраля 2020

Согласно данным Google , попробуйте использовать ниже учетные данные для тестирования объявлений. В этом случае вам не нужно будет добавлять идентификатор устройства .

<!--Ad test credentials-->
<string name="admob_app_id">ca-app-pub-3940256099942544~3347511713</string>
<string name="banner_home_footer">ca-app-pub-3940256099942544/6300978111</string>
<string name="interstitial_full_screen">ca-app-pub-3940256099942544/1033173712</string>
<string name="rewarded_video">ca-app-pub-3940256099942544/5224354917</string>

<!--Ad live credentials-->
<string name="admob_app_id">add here your live app id</string>
<string name="banner_home_footer">add here your live footer id</string>
<string name="interstitial_full_screen">add here your live interstitial id</string>
<string name="rewarded_video">add here your live rewarded id</string>

Сейчас используйте функцию ниже для показа рекламы.

//Banner Ads
private void loadBannerAds(AdView mAdView) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    mAdView.loadAd(adRequest);
}

//Interstitial Ads
private void loadInterstitialAds(final InterstitialAd mInterstitialAd) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();
    // Load ads into Interstitial Ads
    mInterstitialAd.loadAd(adRequest);
    mInterstitialAd.setAdListener(new AdListener() {
        public void onAdLoaded() {
            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }
        }
    });
}

//RewardedVideo Ads
private void loadRewardedVideoAd(RewardedVideoAd mRewardedVideoAd) {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();

    mRewardedVideoAd.loadAd(context.getResources().getString(R.string.rewarded_video), adRequest);

    mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewarded(RewardItem rewardItem) {
        }
        @Override
        public void onRewardedVideoAdLeftApplication() {
        }
        @Override
        public void onRewardedVideoAdClosed() {
        }
        @Override
        public void onRewardedVideoAdFailedToLoad(int errorCode) {
        }
        @Override
        public void onRewardedVideoCompleted() {
        }
        @Override
        public void onRewardedVideoAdLoaded() {
            try {
                if (mRewardedVideoAd.isLoaded()) {
                    mRewardedVideoAd.show();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        @Override
        public void onRewardedVideoAdOpened() {
        }
        @Override
        public void onRewardedVideoStarted() {
        }
    });

    // showing the ad to user
    // make sure the ad is loaded completely before showing it
    if (mRewardedVideoAd.isLoaded()) {
        mRewardedVideoAd.show();
    }
}

Я надеюсь, что это может помочь вам!

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