2

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

问题:

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

PS:我不是在这里宣传任何广告..只是为了在这里为我遇到的问题截屏

没事的时候做广告:

在此处输入图像描述

但大多数时候它不在屏幕上:它变成水平的,底部有白色的空白屏幕

在此处输入图像描述

代码:

    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"/>
4

3 回答 3

2

现在已修复。因此不再需要解决方法: https ://groups.google.com/forum/?fromgroups=#!topic/google-admob-ads-sdk/83DP6aCnwx4

于 2013-02-22T06:48:11.380 回答
1

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

说明:
Admob 插页式广告在 Android 上显示不正确

重现步骤:

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

    interstitialAd = new InterstitialAd(this, AD_UNIT_ID_GOES_HERE);
    interstitialAd.setAdListener(this);

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

用于测试的配置:
Android OS:4.2.1 或 4.2.2
GoogleAdMobAdsSdk:6.2.1 或 6.3.0
设备:Galaxy Nexus

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

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

然后,只要您需要展示广告,只需启动这个额外的“启动器”活动。这种解决方法对我有用。

于 2013-02-22T00:03:08.340 回答
0

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

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

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

于 2013-05-22T14:24:43.733 回答