Просмотр полной версии : AdMob и Starling? Как показать рекламу?
caseyryan
19.03.2014, 19:44
Сделал игру для мобил. Все бы ок, думал и с рекламой проблем не будет, но не тут то было.
Вопрос в том, как показать рекламный блок, если игра построена на старлинге? По идее надо добавлять блок в Starling.current.nativeOverlay, но доступные библиотеки AdMob этого не позволяют.
Есть ли уже обходные пути? Или надо самому велосипед писать?
Разве мобильная реклама хоть как-то завязана на дисплейлист?
Если так, то можно просто добавить её в дисплейлист, он всегда отображается поверх stage3d
caseyryan
19.03.2014, 19:53
Первый раз сталкиваюсь с мобильной рекламой.
У меня блок не показывается. Видимо проблема в дисплей листе
Astraport
20.03.2014, 00:03
Вот тоже не смог запустить AdMob. Послушал совета illuzor что рыбы в рекламе мало, хотя давно знал об этом, но всеобщий интерес к рекламе на форумах подталкивал встроить рекламу. В итоге сделал свою луна-парк банеро-крутилку, обвязал свои приложения и даже продал места партнерам.
рыбы в рекламе мало
Денег то в рекламе полно. Просто, чтобы на ней хоть что-то заработать, нужно огромное количество пользователей.
caseyryan
20.03.2014, 08:48
А у кого по сколько пользователей набиралось? И какие доходы с рекламы при этом были?
Чисто ради интереса. Так как сам я с рекламой не работал еще ни разу. Всегда делал монетизацию на API соцсетей
Добавлено через 46 минут
П.с. Проблему я решил. Она была в том, что метод adMob.supportDevice всегда возвращал false. К дисплей листу это действительно не имеет отношения. Сейчас реклама показывается в аппликухе на старлинге вообще без проблем.
Решается все так (сразу говорю, что речь идет о последней, на данный момент, версии FlashDevelop 4.5.2.5 и AIR 3.9):
1) Добавляем файл admob_all_in_one6.6.7.ane (http://code.google.com/p/flash-air-admob-ane-for-ios/) в папку lib, дальше add to library (ну как бы правой кнопочкой, думаю тут все и так ясно)))
2) потом опять по этому файлу правой кнопкой и лезем в options и ставим External Library (not included).
3) находим файл bat/Packager.bat и ищем строку
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%" "%APP_XML%" %FILE_OR_DIR%
меняем ее на
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% "%OUTPUT%" "%APP_XML%" %FILE_OR_DIR% -extdir lib/
Сохраняем файл, в нем больше делать нечего.
4) В файле application.xml, перед тегом </application> добавляем ID нашего расширение, в моем случае это
<extensions>
<extensionID>so.cuo.platform.admob</extensionID>
</extensions>
(ВАЖНО!!!) для тестов на десктопе, эту строку надо откомментировать и все, что связано с AdMob в коде - тоже. Так как будет вылетать ошибка VerifyError, что мол класс не найден.
Ну вот, собственно и все.
В коде делаем примерно так:
_admob = Admob.getInstance();
trace("3:SUPPORT DEVICE", _admob.supportDevice);
if (_admob.supportDevice) {
_admob.setKeys("ca-app-pub-4744525099112098/4532981367");
_admob.showBanner(Admob.BANNER, AdmobPosition.BOTTOM_CENTER);
_admob.enableTrace = true;
}
Запускаем на андроид устройстве и, о чудо! Реклама появляется по центру внизу экрана.
Если кто-то хочет подробнее, то гляньте тут описание от Филиппе (один из создателей FlashDevelop, если кто не в курсе) https://plus.google.com/u/0/+PhilippeElsass/posts/7rhFEX7S372
П.с. ну и про необходимые разрешения не забываем, там же в файле application.xml
<android>
<manifestAdditions><![CDATA[<manifest android:installLocation="auto">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch" />
<application>
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</application>
</manifest>]]></manifestAdditions>
</android>
caseyryan, так проблема не в admob, а в том, что вы не умели пользоваться ane.
для тестов на десктопе, эту строку надо откомментировать и все, что связано с AdMob в коде - тоже. Так как будет вылетать ошибка VerifyError, что мол класс не найден.
Достаточно просто подключить ane, как обычную swc библиотеку.
caseyryan
20.03.2014, 13:03
Достаточно просто подключить ane, как обычную swc библиотеку.
Не совсем. Обязательно нужно убрать extentionID из xml.
Иначе будет это:
Starting AIR Debug Launcher with screen size 'NexusOne'
(hint: edit 'Run.bat' to test on device or change screen size)
The content cannot be loaded because there was a problem loading an extension: E
rror: Requested extension so.cuo.platform.admob could not be found.
Для продолжения нажмите любую клавишу . . .
Astraport
20.03.2014, 14:55
Не понял.
Обязательно нужно убрать extentionID из xml.
В файле application.xml, перед тегом </application> добавляем ID нашего расширение
caseyryan
20.03.2014, 16:38
Что не понятного-то? Для теста на мобиле он нужен, для теста на компе - нет
Что не понятного-то? Для теста на мобиле он нужен, для теста на компе - нет
Для нормально написанного расширения никаких дополнительных действий не требуется. Для этого в расширении должна быть платформа по-умолчанию (<platform name="default">...) (убедиться в ее наличии можно посмотрев файл extension.xml). В случае разработки для мобилок в поддерживаемые профили необходимо добавить extendedMobileDevice. Если вы в коде правильно реализовали работу с расширением (проверяете isSupported), то приложение будет корректно работать как на девайсе, так и в симуляторе.
caseyryan
20.03.2014, 21:17
alatar, там есть платформа по умолчанию.
Сложно сказать, корявая тут реализация расширения (делал его не я) или FlashDevelop так коряво работает с ane, но могу точно сказать, что убирать extentionID для теста на десктопе обязательно. Иначе даже не скомпилируется.
работу с расширением (проверяете isSupported)
Это само собой делаю. Но проблемы, как понятно из описанного выше, совсем не в этом.
Вот это странно. Возможно вы что-то путаете, ошибка может возникать при попытке запуска в симуляторе (возможно в FD это выглядит похоже на ошибку компиляции), если не найден подходящий профиль. Или в рантайме, если ошибка возникает в расширении.
caseyryan
20.03.2014, 22:34
Ошибка вылетает не в окно output FD, а в окне которое появляется при запуске батника.
Если расширение не откомментировать, то все остановится вот на этом:
Starting AIR Debug Launcher with screen size 'NexusOne'
(hint: edit 'Run.bat' to test on device or change screen size)
The content cannot be loaded because there was a problem loading an extension: E
rror: Requested extension so.cuo.platform.admob could not be found.
Для продолжения нажмите любую клавишу . . .
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.