android InterstitialAd始终无法正常显示

时间:2013-02-11 12:10:14

标签: android layout interstitial

我正在我的应用中实施InterstitialAd,并按照Google代码示例来实施广告。

问题:

广告大部分时间都无法正常显示。我已经设置了所有活动以及Manifest中的AdActivity,迫使他们被定位为protrait。但它仍然失败。有没有人知道这是什么问题?百万谢谢!

PS:我不是在这里宣传任何广告..只是为了解决我遇到的问题而在这里有一个屏幕截图

广告如果可以:

enter image description here

但大部分时间它都在屏幕外:它变为水平,底部有白色空白

enter image description here

代码:

    interstitialAd = new InterstitialAd(this, MY_PUBLISHER_ID); 
    interstitialAd.setAdListener(this); // Set the AdListener.
    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    interstitialAd.loadAd(adRequest);

清单:

<application
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Abc"
        android:screenOrientation="portrait"
        android:label="@string/title_activity_startup" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity
    android:name="com.google.ads.AdActivity"
    android:screenOrientation="portrait"           
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我已经以100%的可重复性再现了这个问题。寻找下面的解决方法。

说明
Admob interstitial在Android上显示不正确

重现的步骤:

  1. 使用链接“下载示例项目”在页面上下载admob interstitial示例: https://developers.google.com/mobile-ads-sdk/docs/admob/advanced
  2. 打开InterstitialSample.java
  3. 在onCreate方法中查找以下两行代码:

      

    interstitialAd =新的InterstitialAd(此,AD_UNIT_ID_GOES_HERE);
      interstitialAd.setAdListener(本);

  4.   
  5. 从onCreate方法中删除这两行,并在interstitialAd.loadAd(adRequest)之前将它们添加到onClick;
  6.   
  7. 用您的ID
  8. 替换AD_UNIT_ID_GOES_HERE   
  9. 将GoogleAdMobAdsSdk-6.3.0.jar添加到项目
  10.   
  11. 构建并运行
  12.   
  13. 点击“加载非页内广告”按钮,然后点击“显示非页内广告”按钮
  14.      观察结果:
      当设备处于纵向方向时,插页式广告会显示广告内容的横向版本,反之亦然,当设备处于横向时,插页式广告会显示广告内容的纵向版本。

    用于测试的配置:
    Android操作系统:4.2.1或4.2.2
    GoogleAdMobAdsSdk:6.2.1或6.3.0
    装置:Galaxy Nexus

    解决方法:
    如您所见,原始样本未经修改(在Activity.onCreate中创建InterstitialAd时)正常工作。因此,解决方法的主要思想是创建在实际应用程序中显示插页式广告的相同条件。如果您无法在真实Activity的onCreate方法中放置用于创建InterstitialAd对象的代码,或者您需要显示来自任意代码的插页式广告(例如库代码中的表单),那么您需要创建其他“启动器”活动。

    在我的情况下,我使用了以下步骤:
    1.创建其他活动(基于Google示例中的InterstitialSample),该活动将用作插页式广告的启动器 2.添加用于创建InterstitialAd对象的代码,并在该Activity的onCreate方法内设置监听器 3.添加用于将插页式广告加载到onCreate方法的代码
    4.将用于显示插页式广告的代码添加到onReceiveAd侦听器方法
    5.添加完成活动的代码到onFailedToReceiveAd和onDismissScreen监听器方法

    然后,只要您需要展示广告,就可以启动此额外的“启动器”活动。这种解决方法适合我。

答案 2 :(得分:0)

有同样的问题和一些测试,我发现其他东西会导致这个问题。如果应用程序使用WebView,开发人员暂停WebView计时器,然后显示插页式广告。它也会导致这个问题。

原因可能是插页式广告,具体取决于HTML / JS。暂停计时器将导致异常行为。

解决方案可以保留WebView计时器,不要暂停它。