Встраивание рекламы в торковские игры
Юрий “yurembo” Язев
независимый игродел
После того, как я разместил в Google Play свои игры, мне стали приходить разного рода предложения о повышении продаж: через рекламу за определенную плату, за определенный процент от продаж, etc. Одно из этих предложений мне понравилось, показавшись вполне реальным. Поэтому, сегодня, я хочу рассказать как реализовать рекламу в игре на движке Torque 2D.
Итак, я решил воспользоваться услугами сервиса AdBuddiz.
Дальнейшее повествование будет вестись на основе моей игры MagicMancala, уже выложенной в Google Play, не беда, загрузим 2-ю версию.
Чтобы зарегистрировать нашу Android-игру, надо сначала зарегистрироваться на сайте http://www.adbuddiz.com/. Затем, перейти в раздел Dashboard (открывается автоматически) и нажать кнопку Add app. Тебе предложат выбрать платформу: Google Play, Apple Store. На следующей странице надо ввести имя пакета и нажать Next.
Дальше, если приложение уже успешно зарегистрировано в Google Play, загрузиться новая страница, на которой отобразится иконка приложения и будет предложено выбрать стандартную ориентацию.
Жмем кнопку “Create App”. На следующей - финальной странице, сообщающей об успешном добавлении приложения, будет выведен Publisher Key для твоей игры.
Этот же ключ будет находиться в письме, которое придет на ящик, указанный при регистрации на http://www.adbuddiz.com/. На этом, добавление приложения завершено. Итак, Publisher Key у нас уже есть, совсем скоро он нам понадобится.
Откроем проект игры в Android Studio. Заодно, я заменил титульную картинку, а так же иконку для запуска игры.
Новая титульная картинка
Далее, откроем файл build.dradle (Module: app), в начало файла, после описания параметров signingConfigs { … } добавим следующий код:
dependencies {
compile 'com.purplebrain.adbuddiz.sdk:AdBuddiz-Java:3.+'
}
repositories {
maven {
url 'http://repository.adbuddiz.com/maven'
}
}
Затем на инструментальной панели Android Studio надо нажать кнопку «Sync Project with Gradle Files». После это откроем AndroidManifest.xml. В начало файла после описания манифеста добавим следующий код:
<!-- Mandatory permission -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Highly recommended permission to get more ads and revenue -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Кроме этого, в раздел тэга <application …> перед его закрытием вставим такие строчки:
<activity android:name="com.purplebrain.adbuddiz.sdk.AdBuddizActivity"
android:theme="@android:style/Theme.Translucent" />
Тем самым, мы дополняем тэг <activity …>, поскольку он уже написан.
Еще в этом файле надо увеличить номер версии приложения - строчка: android:versionCode="2" в манифесте. Потому что, при загрузки в Google Play приложения с одинаковым именем и той же версией, магазин сообщит о нарушении и откажет размещать.
Следующим шагом надо настроить SDK и включить объект рекламы. В обычных android-приложениях есть java-метод protected void onCreate() { … }, в нем и осуществляется это действо, однако, игра на движке Torque 2D не совсем обычное android-приложение, оно полностью написано на C/C++, и, хотя в нем имеется код инициализации на java, метод onCreate() там отсутствует. Но есть аналогичный метод, в котором можно произвести настройку рекламы. Откроем файл MyNativeActivity.java и перейдем в метод onWindowFocusChanged. Он выглядит следующим образом:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}
}
После установки свойств окна добавим такие строчки:
AdBuddiz.setLogLevel(AdBuddizLogLevel.Info);
Тем самым, мы включили средства логирования данного SDK.
В случае отсутствия регистрации приложения, для проведения проверки на успешность настройки SDK, надо включить тестовый режим (даже если приложение уже зарегистрировано, как в нашем случае, эту проверку лучше провести). Это делается такой строчкой:
AdBuddiz.setTestModeActive();
Затем, надо инициализировать SDK для получения рекламы:
AdBuddiz.setPublisherKey("полученный Publisher Key");
С помощью этого метода мы передаем полученный при регистрации приложения Publisher Key для инициализации ключа, по которому будет определяться приложение в маркете, и в соответствии с его свойствами (как то: возрастные ограничения, etc) будет подбираться и показываться реклама. Между тем, если приложение не зарегистрировано (отсутствует Publisher Key), и/или нам надо осуществить проверку, тогда в качестве параметра методу надо передать строку: TEST_PUBLISHER_KEY. В этом случае, будет выведена стандартная реклама от AdBuddiz.
Следующим методом, наше приложение получает рекламу и сохраняет ее в кэше:
AdBuddiz.cacheAds(this);
Наконец, отображаем рекламу:
AdBuddiz.showAd(this);
В итоге, метод onWindowFocusChanged принял следующий вид:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
AdBuddiz.setLogLevel(AdBuddizLogLevel.Info);
AdBuddiz.setTestModeActive();
AdBuddiz.setPublisherKey("TEST_PUBLISHER_KEY");
AdBuddiz.cacheAds(this);
AdBuddiz.showAd(this);
}
}
Стандартная реклама от AdBuddiz выглядит так:
Когда добавленный код будет протестирован, и ты убедишься в том, что все работает, как надо, удали строчку: AdBuddiz.setTestModeActive(); А в вызове метода setPublisherKey параметр “TEST_PUBLISHER_KEY” замени на полученный в результате регистрации приложения Publisher Key.
После регистрации приложения и задания ему выданного Publisher Key, в него стала приходить реальная реклама:
Комментариев нет:
Отправить комментарий