2014-07-21 3 views
0

Я потратил немало дней, пытаясь решить это, но он не работает.Flash Pro CS6 - adMob не работает после обновления сервисов Google

Я использовал adMobManager от: https://github.com/lancelot1/ane-admob

Это работает до нового обновления сервисов 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> 

Выше предполагалось работать (как это было до обновления), но это не делает.

Что я могу сделать?

Мне нужно реализовать объявления как можно скорее!

спасибо.

EDIT: Я использую AIR 14 SDK для Android.

+0

Вам нужно быть более конкретным, чем «не работает» – William

+0

Вы получаете сообщение в logcat? – tsukimi

+0

Я имею в виду, что он больше не работает, когда он работает нормально. – S4VV4S

ответ

0

У меня такая же проблема в FlashDevelop, но, вероятно, потому, что я только недавно начал использовать ANE Code-Alchemy, я никогда не видел, чтобы она работала должным образом. Я пробовал использовать другие ANE, и, кстати, те, кто использует автономный SDK AdMob, который действительно может быть оставлен, действительно работают (BrinkBit и некоторые другие бесплатные функции AdMob ANE). Code-Alchemy's и lilili87222's (https://github.com/lilili87222/admob-for-flash) ANE использует новую Службу Google Play, и до сих пор я не получал никакого объявления. Слушатели событий не вызываются.

Таким образом, это не будет правильным ответом, но в краткосрочной перспективе вы можете использовать один из ANE, который использует автономный SDK. ANE от BrinkBit является коммерческим и многофункциональным, но вы можете попробовать демо-версию. Не забудьте удалить метаданные < > под < приложение >, если вы это сделаете. Автономные клиенты выдают ошибку в противном случае. Кроме того, разрешен только один тег <extensionID> для AdMob, поэтому закомментируйте код для алхимии кода, если вы поместите другой идентификатор.

Между тем, будем надеяться, что Code-Alchemy и/или Google исправит все, что с ним связано.

+0

Кажется, у меня на самом деле была другая проблема. После замены «com.google.ads.AdActivity» на «com.google.android.gms.ads.AdActivity» в разделе манифеста, объявления начали отображаться. – ToonChopper

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 для s (это удобно, когда вы хотите отслеживать статистику использования баннера).

Но в большинстве случаев применения вы просто использовать один идентификатор для всех баннеров, так, так как ты уже указать по умолчанию AdMob ID в:

adMobManager.bannersAdMobId = "My AD ID"; 

Было бы лучше, чтобы избежать писать Id снова которые могут быть источником ошибок ошибок.

Наконец, если вы используете автошоу (опция) верно при создании баннера, то вам не нужно использовать:

adMobManager.showBanner("TopBanner1"); 

Так как знамя это будет шоу автоматически.

Поэтому снимите его. Если вы хотите отобразить его вручную, вам нужно использовать вызов showBanner внутри прослушивателя событий и показать баннер только тогда, когда на самом деле загружен баннер. Вызывается, что он будет генерировать пропущенный снимок, что может вызвать проблемы. Мисс стреляет уже ручкой внутри ANE, однако лучше избегать шансов. Береженого Бог бережет.

Теперь для самой главной проблемы.
На самом деле, в настоящее время мы используем последнее обновление ANE с последним GPS-навигатором в нашем приложении, и мы не сталкиваемся с проблемой, запрос загружен на 99,8%. Это касается и других профессионалов, которые включают ANE на своих APP/Games.

Однако мы иногда испытывали некоторую проблему при пропущенной загрузке запроса (что довольно раздражает), но это происходит очень редко и только с межстраничным.

Как правильно указал Уильям и Цукими, логарифм будет чрезвычайно полезен для лучшего понимания того, что порождает проблему.

Разделяя мой опыт по аналогичным вопросам, я могу дать вам эти советы:

Проверка 1: Даже если вы используете:

adMobManager.operationMode = AdMobManager.TEST_MODE; 

Вы должны предоставить действительный AdmobID созданный на веб-сайте AdMob. Если используется недействительный идентификатор или у него есть орфографическая ошибка, тогда запрос не удастся, и баннер не покажет. Пожалуйста, убедитесь, что правильной AdMob ID

Проверка 2: Помните, что AdMob ID для Знамени и межстраничному не то же самое.Для баннера используйте исключительно AmobId, созданный для баннеров, тогда как для межстраничного создания создается исключительно AdmobId, созданный для межстраничных.

Check 3: Добавить прослушиватель событий в приложение и войти в систему при их вызове.
Пример: Создание диспетчера Instance

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

Set События Слушатели

// 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: Убедитесь, что устройство имеет фактическое подключение к сети, если нет соединения, запрос не может быть выполнен и/или eted ergo баннер не появится. Я советую создать класс монитора соединений для управления и устранения потери соединения.

Check 5: Учтите, что отладка Banner может выполняться только на реальных устройствах. вы не можете увидеть или отладить поток работы баннера с рабочего стола или любого симулятора.

Все это приходит мне на ум в качестве списка проверки/консультирования, если все эти проверки выполнены, вы не должны сталкиваться с проблемой.

Последнее слово, мы никогда не испытывали ошибок с баннерами в Admob, однако Google активно осуждает старый SDK прямо сейчас, некоторые недостатки во время устаревания/обновления могут быть заметны и в сервисе GPS до тех пор, пока их работа не завершится ,

Надеюсь, что ответ будет полезен.

+0

Привет, когда я сказал «Мой идентификатор», я фактически использую свой идентификатор adMob, я просто не публиковал его :) – S4VV4S

+0

Также я использую Flash Pro, а не Flash Builder. – S4VV4S

Смежные вопросы