2

アプリに InterstitialAd を実装しており、Google コード例に従って広告を実装しています。

質問:

ほとんどの場合、広告は正しく表示されません。私はすでにすべてのアクティビティと AdActivity をマニフェストに設定しており、オリエンテーションがプロトレイトであることを強制しています。それでもまだ失敗します。何が問題なのか知っている人はいますか?ミリオンありがとう!

PS: 私はここで広告を宣伝しているわけではありません..私が遭遇した問題のスクリーンキャプチャをここに持っているだけです.

OK の場合の広告:

ここに画像の説明を入力

しかし、ほとんどの場合、画面からはみ出します。水平になり、下部に白い空白の画面が表示されます

ここに画像の説明を入力

コード:

    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(これ);

  4. これらの 2 行を onCreate メソッドから削除し、interstitialAd.loadAd(adRequest); の前に onClick に追加します。
  5. AD_UNIT_ID_GOES_HERE を自分の ID に置き換えます
  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 の作成を行った場合)、正常に動作します。したがって、回避策の主なアイデアは、実際のアプリケーション内でインタースティシャルを表示するための同じ条件を作成することです。実際のアクティビティの onCreate メソッド内に InterstitialAd オブジェクトを作成するためのコードを配置できない場合、または任意のコード (ライブラリ コード内のフォームなど) からインタースティシャルを表示する必要がある場合は、追加の「ランチャー」アクティビティを作成する必要があります。

私の場合、次の手順を使用しました:
1. インタースティシャル広告のランチャーとして使用される (Google サンプルの InterstitialSample に基づく) 追加のアクティビティを作成します
。 2. InterstitialAd オブジェクトを作成し、そのアクティビティの onCreate メソッド内にリスナーを設定するためのコードを追加し
ます。 . インタースティシャル広告を読み込むコードを onCreate メソッド
に追加 4. インタースティシャル広告を表示するコードを onReceiveAd リスナー メソッド
に追加 5. アクティビティを終了するコードを onFailedToReceiveAd および onDismissScreen リスナー メソッドに追加

次に、広告を表示する必要があるときはいつでも、この追加の「ランチャー」アクティビティを起動するだけです。この回避策は私にとってはうまくいきます。

于 2013-02-22T00:03:08.340 に答える
0

同じ問題があり、いくつかのテストで、他のものがこの問題を引き起こすことがわかりました。アプリが WebView を使用し、開発者が WebView タイマーを一時停止してから、インタースティシャル広告を表示する場合。また、この問題が発生します。

HTML/JS によっては、インタースティシャル広告が原因である可能性があります。タイマーを一時停止すると、異常な動作が発生します。

このソリューションでは、WebView タイマーを保持し、一時停止することはありません。

于 2013-05-22T14:24:43.733 に答える