0

これを解決するためにかなりの数日を費やしましたが、うまくいきません。

https://github.com/lancelot1/ane-admobから adMobManager を使用していました。

これは、新しい Google Play サービスの更新前に機能していました。

私のコード:

import com.codealchemy.ane.admobane.AdMobManager;
import com.codealchemy.ane.admobane.*;
var adMobManager:AdMobManager;
adMobManager = AdMobManager.manager;

if(adMobManager.isSupported){

    adMobManager.verbose = true;
    adMobManager.operationMode = AdMobManager.TEST_MODE;
    adMobManager.bannersAdMobId = "My AD ID";


    adMobManager.createBanner(AdMobSize.BANNER, AdMobPosition.TOP_CENTER, "TopBanner1", "My Ad id", true);



    adMobManager.showBanner("TopBanner1");


};

XML:

     <android>
    <manifestAdditions>
      <![CDATA[
      <manifest android:installLocation="auto">
                <uses-permission android:name="android.permission.INTERNET"/>
                <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
                <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
                <uses-permission android:name="android.permission.READ_PHONE_STATE" />
                <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
                <application android:hardwareAccelerated="true">
                    <meta-data android:name="com.google.android.gms.version" android:value="4452000" />
                    <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
                </application>              
    </manifest>]]>
    </manifestAdditions>
  </android>
  <extensions>
    <extensionID>com.codealchemy.ane.admobane</extensionID>
  </extensions>

上記は(更新前と同様に)機能するはずでしたが、機能しません。

私に何ができる?

早急に広告を実装する必要があります!!!

ありがとうございました。

編集: Android 用の AIR 14 SDK を使用しています。

4

2 に答える 2

1

S4VV4S、
まずあなたのコードは間違っていません。改善できることがいくつかありますが、それらは問題を解決するものではなく、コードを改善するだけです。

例えば:

変化する:

import com.codealchemy.ane.admobane.AdMobManager;
import com.codealchemy.ane.admobane.*;

import com.codealchemy.ane.admobane.*;

すべてではなく、使用するクラスのみをインポートすることをお勧めします。

次に、
使用している場合:

adMobManager.bannersAdMobId = "My AD ID";

その後、バナーの作成時に特定の admobId を指定する必要がないため、次のように変更できます。

adMobManager.createBanner(AdMobSize.BANNER, AdMobPosition.TOP_CENTER, "TopBanner1", "My Ad id", true);

に:

adMobManager.createBanner(AdMobSize.BANNER, AdMobPosition.TOP_CENTER, "TopBanner1", null, true);

特定のバナーに特定の AdmobId を使用する場合を除きます (これは、特定のバナーの使用統計を追跡する場合に便利です)。

ただし、ほとんどのアプリケーションでは、すべてのバナーに 1 つの ID を使用するだけです。つまり、デフォルトの AdMob ID を次の場所で指定しているためです。

adMobManager.bannersAdMobId = "My AD ID";

ミスタイプエラーの原因となる可能性のある Id を再度書き込むことは避けたほうがよいでしょう。

最後に、バナーの作成中に自動表示 (オプション true) を使用する場合は、以下を使用する必要はありません。

adMobManager.showBanner("TopBanner1");

バナーなので自動で表示されます。

したがって、それを削除します。手動で表示したい場合は、イベント リスナー内で showBanner 呼び出しを使用し、バナーが実際にロードされたときにのみバナーを表示する必要があります。ミス ショットしか生成しないため、問題が発生する可能性があります。ミス シュートは ANE によってすでに内部的に処理されていますが、チャンスを回避することをお勧めします。転ばぬ先の杖。

さて、主な問題自体について。
実際のところ、現在アプリでも最新の GPS を備えた最新のアップデート ANE を使用しており、問題に直面しておらず、リクエストは 99.8% でロードされています。これは、アプリ/ゲームに ANE を組み込んでいる他のいくつかの専門家にも当てはまります。

ただし、リクエストの読み込みに失敗するという問題が発生することもありましたが(これはかなり面倒です)、これはめったに発生せず、インタースティシャルでのみ発生します。

William と tsukimi から正しく指摘されているように、logcat は問題の原因をよりよく理解するのに非常に役立ちます。

同様の問題に関する私の経験を共有することで、次のアドバイスを提供できます。

チェック1:使用している場合でも:

adMobManager.operationMode = AdMobManager.TEST_MODE;

AdMob ウェブサイトで作成された有効な AdmobID を提供する必要があります。無効な ID が使用されているか、スペルが間違っている場合、リクエストは失敗し、バナーは表示されません。正しい AdMob ID を確認してください

チェック 2:バナーとインタースティシャルの AdMob ID は同じではないことに注意してください。バナーの場合はバナー用に作成された AmobId のみを使用し、インタースティシャルの場合はインタースティシャル用に作成された AdmobId のみを作成します。

チェック 3:イベント リスナーをアプリケーションに追加し、呼び出されたときにログに記録します。
例: Dispatcher インスタンスの作成

/**
 * Extension event dispatcher instance
 **/
private function get dispatcher():EventDispatcher
{
    // Return the extension dispatcher
    return adMobManager.dispatcher;
}

イベント リスナーの設定

// onBannerLoaded Event Listener
if (!dispatcher.hasEventListener(AdMobEvent.BANNER_LOADED))
    dispatcher.addEventListener(AdMobEvent.BANNER_LOADED, onBannerLoaded);

イベントを処理する

/**
 * onBannerLoaded Event listener
 *
 * @param e AdMobEvent Object
 **/
private function onBannerLoaded(e:AdMobEvent):void
{
    // Show the specific banner which did dispatch the event
    // e.data:String = Banner unique ID
    adMobManager.showBanner(e.data);
}

チェック 4:デバイスがネットワークに実際に接続されていることを確認してください。接続がない場合、要求を実行できないか、完了したため、バナーは表示されません。接続の切断を管理および処理するための接続モニター クラスを作成することをお勧めします。

チェック 5:バナー デバッグは実機でしか実行できないことを考慮してください。デスクトップまたはシミュレーターからバナー ワークフローを表示またはデバッグすることはできません。

これはすべて、チェック/アドバイス リストとして頭に浮かんだことです。これらのチェックがすべて完了していれば、問題は発生しないはずです。

最後に一言、Admob のバナーでエラーが発生したことは一度もありませんが、Google は現在、古い SDK を積極的に廃止しています。廃止/更新中のいくつかの欠点は、操作が完了するまで GPS サービスでも通知される可能性があります。

答えが役に立てば幸いです。

于 2014-07-23T00:38:00.417 に答える
0

FlashDevelop で同様の問題が発生していますが、おそらく Code-Alchemy の ANE を最近使い始めたばかりだったため、適切に動作することはありませんでした。私は他の ANE を使用してみましたが、偶然にも、まもなく非推奨になるスタンドアロンの AdMob SDK を使用するものは実際に動作します (BrinkBit およびその他の機能制限付きの無料の AdMob ANE)。Code-Alchemy と lilili87222 ( https://github.com/lilili87222/admob-for-flash ) の ANE は新しい Google Play Service を使用しており、今まで広告を受け取ることができませんでした。イベント リスナーは呼び出されません。

したがって、これは適切な答えではありませんが、短期的には、スタンドアロン SDK を使用する ANE のいずれかを使用できます。BrinkBit の ANE は商用で機能が豊富ですが、デモ版を試すことができます。<application> の下の <meta-data> を削除することを忘れないでください。それ以外の場合、スタンドアロン クライアントはエラーをスローします。また、AdMob の <extensionID> タグは 1 つしか許可されないため、他の ID を配置する場合は code-alchemy のタグをコメントアウトします。

それまでの間、Code-Alchemy や Google がサービスの問題点を修正してくれることを期待しましょう。

于 2014-07-22T11:25:59.513 に答える