【Amazon Ads】サンプル表示はできるんだけど


というわけで、AmazonMobileAds の

W/AmazonMobileAds AdLoader: Server Message: DISABLED_APP; code: 400



問題。

サンプルの広告は表示できたので、こちらの記事 への追加情報ってことで。

まず、setAppKey ですが、onCreate() の中で、こんな感じで設定してるんですが、


        AdRegistration.enableLogging(true);
        AdRegistration.enableTesting(true);

        try{
            AdRegistration.setAppKey(APP_KEY);
        }catch(Exception e){
            Log.e(TAG, "Exception thrown:" + e.toString());
            return;
        }



この APP_KEY は、

private static final String APP_KEY = "sample-app-v1_pub-2";



こんな感じで、サンプル用のものに書き換えてやらなきゃダメみたいです。

で、失敗しちゃったのが、LoadAd() の中での Gravity 設定。

            nextAdView = new AdLayout(this, AdSize.SIZE_320x50);

            LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);



と、Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL で指定(というかコピペ)したのですが、実際には画面の上部に表示するレイアウトだったので、スペースがなく、表示できずにエラーが出ていたもよう。

ので、

            LayoutParams.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL);



と変更して問題解決。いや、うっかりミス。

ところで、MobileAds のサンプルについてる FloatingAdActivity.java の APP_KEY 指定のコメントに、

    private static final String APP_KEY = "sample-app-v1_pub-2"; // Sample Application Key. Replace this value with your Application Key.



実際に与えられた Application Key に置き換えろ、と、書いてあるんだけど、実際に試してみると、DISABLED_APP...


あと、もう1つ分からないのが、デバッグ用のフラグ設定、

        // For debugging purposes enable logging, but disable for production builds.
        AdRegistration.enableLogging(true);
        // For debugging purposes flag all ad requests as tests, but set to false for production builds.
        AdRegistration.enableTesting(true);



下の AdRegistration.enableTesting() は、製品版では、false に設定しろってことなんだろうけど、上の AdRegistration.enableLogging() は、どうなんだろう?
false に設定するのか、そもそも削除しちゃっていいのか?
英語に弱いと、この辺のニュアンスが分からなくて困る。

一応、ディベロッパー・サイトの API > モバイル広告 > アンドロイド向けモバイル広告 の中のリンク、「開発者向け事前チェックリスト」というのがあって、こうなってなきゃいけないってことがズラっと書いてあるんだけど、確認方法が良く分からないんだよねぇ。

特に最後の

アプリ設定(enableTestingがfalseに設定されている)

  • リクエストがテストリクエストフラグなしに送信されているかどうか。たとえば、アプリがAdRegistration.enableTestingメソッドを呼び出したり、falseを引数として渡したりしていない。
  • デバッグログ記録フラグを有効にせずにリクエストが送信されているかどうか。たとえば、アプリがAdRegistration.enableLoggingメソッドを呼び出したり、falseを引数として渡したりしていない。
  • リクエストが正しいアプリケーションキーと共に送信されているかどうか。



これを読むと、アプリ内から AdRegistration.enableTesting() と、 AdRegistration.enableLogging() を呼び出しちゃいけないみたいなんだけど、そもそも、「enableTestingがfalseに設定されている」が前提なので、相反するような気がするし。
最後の「リクエストが正しいアプリケーションキーと共に送信されているかどうか」は、正しい(アマゾンさんから与えられた)アプリケーションキーを設定すると、DISABLED_APP になるし・・・。

なんか、この辺が良く分からなくて、製品版に組み込んだものの、実際に表示されてるかどうか不安になって、AdMob に切り替えたような記憶がうっすらある。

「開発者向け事前チェックリスト」が、こうなってなきゃいけない項目ではなくて、こういうチェックをして、結果がこうなってればOKっ書き方だとすごく助かるんだけどなぁ。

スポンサーサイト

コメント

非公開コメント