Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   AdMob и Starling? Как показать рекламу? (http://www.flasher.ru/forum/showthread.php?t=207012)

caseyryan 19.03.2014 19:44

[РЕШЕНО] AdMob и Starling? Как показать рекламу?
 
Сделал игру для мобил. Все бы ок, думал и с рекламой проблем не будет, но не тут то было.
Вопрос в том, как показать рекламный блок, если игра построена на старлинге? По идее надо добавлять блок в Starling.current.nativeOverlay, но доступные библиотеки AdMob этого не позволяют.
Есть ли уже обходные пути? Или надо самому велосипед писать?

illuzor 19.03.2014 19:52

Разве мобильная реклама хоть как-то завязана на дисплейлист?
Если так, то можно просто добавить её в дисплейлист, он всегда отображается поверх stage3d

caseyryan 19.03.2014 19:53

Первый раз сталкиваюсь с мобильной рекламой.
У меня блок не показывается. Видимо проблема в дисплей листе

Astraport 20.03.2014 00:03

Вот тоже не смог запустить AdMob. Послушал совета illuzor что рыбы в рекламе мало, хотя давно знал об этом, но всеобщий интерес к рекламе на форумах подталкивал встроить рекламу. В итоге сделал свою луна-парк банеро-крутилку, обвязал свои приложения и даже продал места партнерам.

illuzor 20.03.2014 00:36

Цитата:

рыбы в рекламе мало
Денег то в рекламе полно. Просто, чтобы на ней хоть что-то заработать, нужно огромное количество пользователей.

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 в папку 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, что мол класс не найден.

Ну вот, собственно и все.
В коде делаем примерно так:
Код AS3:

_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/+Philipp...ts/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>

illuzor 20.03.2014 12:58

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

Что не понятного-то? Для теста на мобиле он нужен, для теста на компе - нет

alatar 20.03.2014 18:50

Цитата:

Сообщение от caseyryan (Сообщение 1162142)
Что не понятного-то? Для теста на мобиле он нужен, для теста на компе - нет

Для нормально написанного расширения никаких дополнительных действий не требуется. Для этого в расширении должна быть платформа по-умолчанию (<platform name="default">...) (убедиться в ее наличии можно посмотрев файл extension.xml). В случае разработки для мобилок в поддерживаемые профили необходимо добавить extendedMobileDevice. Если вы в коде правильно реализовали работу с расширением (проверяете isSupported), то приложение будет корректно работать как на девайсе, так и в симуляторе.

caseyryan 20.03.2014 21:17

alatar, там есть платформа по умолчанию.
Сложно сказать, корявая тут реализация расширения (делал его не я) или FlashDevelop так коряво работает с ane, но могу точно сказать, что убирать extentionID для теста на десктопе обязательно. Иначе даже не скомпилируется.

Цитата:

работу с расширением (проверяете isSupported)
Это само собой делаю. Но проблемы, как понятно из описанного выше, совсем не в этом.

alatar 20.03.2014 22:05

Вот это странно. Возможно вы что-то путаете, ошибка может возникать при попытке запуска в симуляторе (возможно в 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.
Для продолжения нажмите любую клавишу . . .


Часовой пояс GMT +4, время: 02:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.