Admob插页式广告显示在游戏中间

时间:2014-03-04 14:02:01

标签: java android admob ads interstitial

我只是把游戏变成了铁人,我试图在比赛结束时投放插页式广告。

但插页式广告始终显示在游戏中间。我觉得这对用户来说很烦人。如果谷歌将禁止我的admob帐户,我担心。

插页式广告仅在5倍游戏结束后显示。

我只有一些屏幕MainGameView.java

这是在游戏结束时显示admob插页式广告的代码

初始化插页式广告的方法

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initialiseAccelerometer();

    // Create the interstitial
    interstitial = new InterstitialAd(this, getResources().getString(R.string.InterstitialAd_unit_id));

}

public void openAd() {
    runOnUiThread(new Runnable() {
        public void run() {
            // Create ad request
            AdRequest adRequest = new AdRequest();

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

            // Set Ad Listener to use the callbacks below
            interstitial.setAdListener(new AdListener() {

                @Override
                public void onReceiveAd(Ad arg0) {
                    if (interstitial.isReady()) {
                        interstitial.show();
                    }
                }

                @Override
                public void onPresentScreen(Ad arg0) {
                }

                @Override
                public void onLeaveApplication(Ad arg0) {
                }

                @Override
                public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
                }

                @Override
                public void onDismissScreen(Ad arg0) {
                }
            });
        }
    });
}

我在游戏结束时调用openAd()方法

public synchronized void GameOver() {
    if (adounter >= this.getResources().getInteger(R.integer.add_shows_every_X_gameovers)) {
        openAd();
        adounter = 0;
    }
    adounter++;
}

非常感谢你,抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

您的问题是,您在收到插页式广告后立即显示插页式广告(即在AdListener#onReceiveAd中)。 不要这样做。它提供了糟糕的用户体验,并确保您获得较低的评分。

而是在您的应用中自然中断显示您的添加。

答案 1 :(得分:0)

  

而是在您的应用中自然中断显示您的添加。

确切地说,如果您执行以下操作,则更精确的是用户体验: - 请求onCreate中的广告 - 在GameOver中调用:

if (interstitial.isReady()) {
    interstitial.show();
}