Admob Ad在开发期间

时间:2016-11-03 21:36:27

标签: android android-studio android-emulator admob

我怀疑天气是不是可以在开发过程中点击实时广告。我做了所有手续让我的admob广告正常工作。然后我看到我们应该只在开发过程中使用测试添加。所以我使用了这段代码:

AdRequest request = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)        // All emulators
.addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4")  // An example device ID
.build();

工作得很好。但后来我改回到现场广告代码,担心我以后会忘记这样做:

AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

但现在广告不会在试运行期间出现。这是正常的吗?

当我最终推出应用时广告是否有效?

1 个答案:

答案 0 :(得分:0)

我没有看到你的代码有什么问题,但是在实现admob时也发生了类似的事情。

我没有计算广告必须在展示之前加载,并且加载可能需要一些时间。如果您尝试展示未加载的广告,则可能会显示黑色活动。

你应该实现一些等待时间或一个监听器,以确保在显示之前加载了这个。

public InterstitialAd interstitialAd;
[...]
public void setNewInterstitialRequest()
{
    interstitialAd = new InterstitialAd(CurrActivity.this);
    interstitialAd.setAdUnitId("ca-app-pub-***************************");

    AdRequest adRequest = new AdRequest.Builder()
        //.addTestDevice("ZY22247DJV")
        .build();

    // Begin loading your interstitial.
    interstitialAd.loadAd(adRequest);

    //add listener so you know is fully loaded
    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            [...]  // <- code you want to execute as soon as the ad is loaded
        }
    });
}
public void displayAd() {
    try {
        //verify is loaded before showing a black screen
        if (interstitialAd.isLoaded()) {
            interstitialAd.show();
        }
        //else
        //  showToast("Not loaded");
    }
    catch (Exception ex){}
}

因此,考虑到这一点,如果您希望在某些事情发生时立即显示广告,您应该在该事件发生之前加载它。