开发期间的 Admob 广告

Admob Ad's during Development

我怀疑在 development.I 完成所有手续以使我的 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);

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

当我最终启动应用程序时广告会起作用吗?

我没有发现您的代码有任何问题,但我在实施 admob 时也发生了类似的事情。

我没想到广告在显示之前必须加载,而且加载可能需要一些时间。如果您尝试显示未加载的广告,可能会显示黑色 activity。

您应该实现一些等待时间或侦听器,以确保添加在显示之前已加载。

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){}
}

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