Загрузка и интеграция Chartboost SDK для Adobe AIR

Последнее обновление:

 

Внесите свою мобильную игру в сеть Chartboost, добавив всего 10 строчек кода!

 


 

Что в пакете? В наш пакет SDK входит полный набор функций.

Высококачественная видеореклама, предназначенная специально для игр и ваших игроков!

Настраиваемые рекламные вставки, органично встроенные в игру и ее восприятие игроками!

Полезнейший набор аналитики, помогающий точно таргетировать нужную аудиторию!

Полная информация о версиях SDK ▶

 


 

Готовы к интеграции Chartboost SDK? Проведите ее!

 


 

 

Перед началом:

Добавить подключаемый модуль AIR в свои игры довольно легко, нужно лишь несколько составляющих:

  • Учетная запись Chartboost
  • Приложение на панели пользователя
  • Новейшая версия подключаемого модуля AIR
  • Активная кампания публикатора
  • Подключаемый модуль Chartboost для Adobe AIR пребывает на этапе бета-тестирования
  • Этот подключаемый модуль использует iOS SDK 6.4.7 и Android SDK 6.4.2.
  • Подключаемый модуль Chartboost AIR поддерживает iOS 6+ и Android 2.3+.
  • Требует флага компиляции -swf-version 33. Для Flash Builder он вносится в пункте Project properties > Flex Compiler > Additional compiler arguments.
  • Требует AIR SDK не ниже версии 22.

 

 

Импортируйте встроенное расширение Chartboost в свое приложение AIR.

Рекомендуем создать в своем проекте каталог для таких расширений, куда можно скопировать Chartboost.ane и Chartboost.swc. Затем, если вы пользуетесь Flash Builder, то можете просто добавить этот каталог как каталог собственного расширения в настройках проекта.

 


 

Добавьте декларацию <extensionID> в корневой элемент <application> дескриптора своего приложения AIR.

<extensions>
    <extensionID>com.chartboost.plugin.air</extensionID>
</extensions>

Если вы будете проводить сборку под Android, то следует также внести соответствующие добавления манифеста в файл дескриптора приложения (не забудьте вставить туда идентификатор и подпись своего приложения в Chartboost):

<manifestAdditions><![CDATA[
 <manifest android:installLocation="auto">
        <!-- Это разрешение требуется для Chartboost. -->
        <uses-permission android:name="android.permission.INTERNET"/>

        <!-- Эти разрешения рекомендуются для Chartboost. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <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"/>
 
 <application>
            <!-- Здесь следует указать ид. и подпись приложения для версии Android вашего приложения AIR. -->
            <meta-data android:name="__ChartboostAir__AppID" android:value="ANDROID_APP_ID" />
 <meta-data android:name="__ChartboostAir__AppSignature" android:value="ANDROID_APP_SIGNATURE" />
            
            <!-- Также требуется для Chartboost SDK. -->
            <activity android:name="com.chartboost.sdk.CBImpressionActivity"
 android:excludeFromRecents="true" 
 android:hardwareAccelerated="true"
 android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
 android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" />

            <!-- Для Google Play Services (требуется для Chartboost) -->
            <meta-data android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />
 </application>
 </manifest>
]]></manifestAdditions>

Разработчики под Android: обратите внимание на то, что если вы пользуетесь другим подключаемым модулем, включающим Google Play Services, то можете получить ошибку при сборке. Для того чтобы избежать этого конфликта, воспользуйтесь предлагаемым ANE, который не содержит Google Play Services.

 


 

Импортируйте классы Chartboost.

import com.chartboost.plugin.air.*;

 


 

Инициализируйте Chartboost.

Вызовите метод startWith() с окном приложения AIR и с идентификатором и подписью своего приложения в Chartboost. Скорее всего, вам понадобится вызывать этот метод по условию для разных платформ, поэтому мы подготовили для вас несколько вспомогательных функций:

if (Chartboost.isAndroid()) {
    Chartboost.startWith(stage, "ANDROID_APP_ID", "ANDROID_APP_SIGNATURE");
} else if (Chartboost.isIOS()) {
    Chartboost.startWith(stage, "IOS_APP_ID", "IOS_APP_SIGNATURE");
}
Chartboost обязательно нужно инициализировать, чтобы мы могли отслеживать запуски вашей игры. Если вы не инициализируете Chartboost, то не сможете запускать кампании рекламирования.

 


 

Чтобы показать статичную вставку или видеовставку:

Chartboost.showInterstitial(CBLocation.DEFAULT);
  • Интерфейсный класс CBLocation можно использовать для получения списка констант местоположения по умолчанию и для того, чтобы задавать собственные константы.  Если местоположение использовано хотя бы однажды, оно будет добавлено на вашу панель пользователя, где можно будет задать его настройки.
  • Для дополнительного управления поведением рекламы в вашей игре Chartboost SDK предлагает и другие функции: именованные местоположения, кэширование и делегированные методы.
  • Подробнее о видеорекламе Chartboost ▶
Не вызывайте showInterstitial сразу после cacheInterstitial для той же локации, иначе SDK даст сбой без уведомления.
Настоятельно рекомендуем кэшировать рекламные вставки перед их показом. Подробнее о кэшировании ▶

 

Чтобы показать видеорекламу с вознаграждением за просмотр:

Chartboost.showRewardedVideo(CBLocation.DEFAULT);
  • Интерфейсный класс CBLocation можно использовать для получения списка констант местоположения по умолчанию и для того, чтобы задавать собственные константы.  Если местоположение использовано хотя бы однажды, оно будет добавлено на вашу панель пользователя, где можно будет задать его настройки.
  • Для дополнительного управления поведением рекламы в вашей игре Chartboost SDK предлагает и другие функции: именованные местоположения, кэширование и делегированные методы.
  • Подробнее о видеорекламе Chartboost ▶
Не вызывайте showRewardedVideo сразу после cacheRewardedVideo для той же локации, иначе SDK даст сбой без уведомления.
Настоятельно рекомендуем кэшировать рекламные вставки перед их показом. Подробнее о кэшировании ▶

 

Вызов методов Chartboost:

В /actionscript/src/com/chartboost/plugin/air/Chartboost.as вы найдете переходные методы между AIR и собственным расширением для взаимодействия с подключаемым модулем Chartboost:

/** Инициализирует подключаемый модуль Chartboost */
public static function startWith(stage:Stage, appID:String, appSignature:String):void

/** Принимает делегированное событие из класса ChartboostEvent. См. документацию
* события, выбранного в качестве аргументов, и возвращаемого значения предоставленной вами функции. */
public static function addDelegateEvent(eventName:String, listener:Function):void

/** Кэширует рекламную вставку. */
public static function cacheInterstitial(location:String):void

/** Показывает рекламную вставку. */
public static function showInterstitial(location:String):void

/** Проверяет, кэширована ли вставка. */
public static function hasInterstitial(location:String):Boolean

/** Кэширует страницу «Другие приложения» */
public static function cacheMoreApps(location:String):void

/** Показывает страницу «Другие приложения» */
public static function showMoreApps(location:String):void

/** Проверяет, кэширована ли страница «Другие приложения» */
public static function hasMoreApps(location:String):Boolean

/** Кэширует видео с вознаграждением. */
public static function cacheRewardedVideo(location:String):void

/** Показывает видео с вознаграждением. */
public static function showRewardedVideo(location:String):void

/** Проверяет, кэшировано ли видео с вознаграждением. */
public static function hasRewardedVideo(location:String):Boolean

/** Кэширует Встроенную рекламу. */
public static function cacheInPlay(location:String):void

/** Извлекает кэшированную Встроенную рекламу.
* Это асинхронная операция, поэтому она не возвращает объект CBInPlay,
*  а передает его по готовности в предоставленную функцию.
* Если Встроенной рекламы нет, предоставленная функция не вызывается.
* У предоставленной функции должен быть один аргумент – объект CBInPlay. Пример использования см. в предлагаемом образце приложения. */
public static function getInPlay(location:String, fn:Function):void

/** Проверяет, кэширована ли Встроенная реклама. */
public static function hasInPlay(location:String):Boolean

/** Вызывает это как результат любого UI, который вы показываете в ответ на
* делегированный метод didPauseClickForConfirmation() */
public static function didPassAgeGate(pass:Boolean):void

/** Пользовательские настройки */
public static function setCustomID(customID:String):void
public static function getCustomID():String

/** Указывает, нужно ли запрашивать вставки при первом сеансе пользователя */
public static function setShouldRequestInterstitialsInFirstSession(shouldRequest:Boolean):void

/** Указывает, нужно ли пользоваться функцией проверки возраста.
* Вызывает Chartboost.didPassAgeGate(), чтобы обеспечить отклик вашего пользователя. */
public static function setShouldPauseClickForConfirmation(shouldPause:Boolean):void

/** Указывает, будет ли страница «Другие приложения» загружаться в полноэкранном виде. */
public static function setShouldDisplayLoadingViewForMoreApps(shouldDisplay:Boolean):void

/** Указывает, будет ли предварительно извлекаться видеоконтент */
public static function setShouldPrefetchVideoContent(shouldPrefetch:Boolean):void

/** Управляет тем, будет ли реклама кэшироваться автоматически, если это возможно (по умолчанию: true). */
public static function setAutoCacheAds(shouldCache:Boolean):void
public static function getAutoCacheAds():Boolean

/** Аналитика Chartboost для покупок внутри приложений */
public static function trackIOSInAppPurchaseEvent(receipt:String, title:String, description:String, price:Number, currency:String, productID:String):void
public static function trackGooglePlayInAppPurchaseEvent(title:String, description:String, price:String, currency:String, productID:String, purchaseData:String, purchaseSignature:String):void
public static function trackAmazonStoreInAppPurchaseEvent(title:String, description:String, price:String, currency:String, productID:String, userID:String, purchaseToken:String):void

/** Послеустановочная аналитика Chartboost */
public static function trackLevelInfoEvent(eventLabel:String, eventField:CBLevelType, mainLevel:int, subLevel:int, description:String):void

/** Только iOS: укажите, как следует взаимодействовать с Chartboost, если есть панель состояния (по умолчанию: игнорировать). */
public static function setStatusBarBehavior(statusBarBehavior:CBStatusBarBehavior):void

/** Определяет, отображается ли на экране какая-нибудь реклама. */
public static function isAnyViewVisible():Boolean

/** Закрывает любой открытый показ. Для iOS возвращает успех или неудачу; для Android всегда возвращает «true». */
public static function closeImpression():Boolean

/** Проверяет, ведется ли автоматическое отслеживание покупок внутри приложения. Только для iOS. */
public static function getAutoIAPTracking():Boolean

/** Проверяет, включен ли WebView (настройка сервера). Только для Android. */
public static function isWebViewEnabled():Boolean

/** Определяет, прятать ли системный UI при показах. Только для Android. */
public static function setShouldHideSystemUI(shouldHide:Boolean):void

/** Только для надстроек (wrappers): задает используемую посредническую службу */
public static function setMediation(mediator:CBMediation, version:String):void

 


 

Прием событий Chartboost:

Chartboost запускает много разных событий, чтобы сообщить вам о статусе показов. Чтобы реагировать на эти события, нужно явным образом принимать их. Лучшее место для этого – код инициализации вашего активного экрана:

// в коде инициализации
chartboost.addDelegateEvent(ChartboostEvent.DID_CLICK_INTERSTITIAL, function (location:String):void {
 trace( "Chartboost: on Interstitial clicked: " + location );
});

В /actionscript/src/com/chartboost/plugin/air/ChartboostEvent.as вы найдете все события, доступные для приема:

/** Запускается после успешной инициализации SDK. Используйте, чтобы получать уведомление о том, что процесс инициализации завершен.
* Аргументы: (status:Boolean) */
public static const DID_INITIALIZE:String = "didInitialize";

/** Запускается, когда не удается загрузить рекламную вставку
* Аргументы: (location:String, error:CBLoadError) */
public static const DID_FAIL_TO_LOAD_INTERSTITIAL:String = "didFailToLoadInterstitial";

/** Запускается перед отображением рекламной вставки. Возвращает, нужно это делать или нет.
* Аргументы: (location:String)
* Возвращает: булево значение */
public static const SHOULD_DISPLAY_INTERSTITIAL:String = "shouldDisplayInterstitial";

/** Запускается, когда рекламная вставка прекращается любым способом.
* Всегда сопровождается событием закрывания или клика.
* Аргументы: (location:String) */
public static const DID_CLICK_INTERSTITIAL:String = "didClickInterstitial";

/** Запускается при закрывании рекламной вставки
* (то есть, если пользователь нажимает «X» или кнопку «Назад» в Android).
* Аргументы: (location:String) */
public static const DID_CLOSE_INTERSTITIAL:String = "didCloseInterstitial";

/** Запускается при клике на рекламной вставке.
* Аргументы: (location:String) */
public static const DID_DISMISS_INTERSTITIAL:String = "didDismissInterstitial"; 

/** Запускается при кэшировании рекламной вставки.
* Аргументы: (location:String) */
public static const DID_CACHE_INTERSTITIAL:String = "didCacheInterstitial";

/** Запускается при отображении рекламной вставки.
* Аргументы: (location:String) */
public static const DID_DISPLAY_INTERSTITIAL:String = "didDisplayInterstitial";

/** Запускается, когда не удается загрузить страницу «Другие приложения».
* Аргументы: (location:String, error:CBLoadError) */
public static const DID_FAIL_TO_LOAD_MOREAPPS:String = "didFailToLoadMoreApps";

/** Запускается при отображении страницы «Другие приложения». Возвращает, нужно это делать или нет.
* Аргументы: (location:String) */
public static const SHOULD_DISPLAY_MOREAPPS:String = "shouldDisplayMoreApps";

/** Запускается при завершении страницы «Другие приложения» любым способом.
* Всегда сопровождается событием закрывания или клика.
* Аргументы: (location:String)
* Возвращает: булево значение */
public static const DID_CLICK_MORE_APPS:String = "didClickMoreApps";

/** Запускается при закрывании страницы «Другие приложения»
* (то есть, если пользователь нажимает «X» или кнопку «Назад» в Android).
* Аргументы: (location:String) */
public static const DID_CLOSE_MORE_APPS:String = "didCloseMoreApps";

/** Запускается при клике в списке страницы «Другие приложения»
* Аргументы: (location:String) */
public static const DID_DISMISS_MORE_APPS:String = "didDismissMoreApps";

/** Запускается при кэшировании страницы «Другие приложения»
* Аргументы: (location:String) */
public static const DID_CACHE_MORE_APPS:String = "didCacheMoreApps";

/** Запускается при отображении страницы «Другие приложения»
* Аргументы: (location:String) */
public static const DID_DISPLAY_MORE_APPS:String = "didDisplayMoreApps";

/** Запускается, когда зарегистрирован клик, но пользователь не перенаправляется в iOS App Store.
* Аргументы: (location:String, error:CBClickError) */
public static const DID_FAIL_TO_RECORD_CLICK:String = "didFailToRecordClick";

/** Запускается при кэшировании видео с вознаграждением.
* Аргументы: (location:String) */
public static const DID_CACHE_REWARDED_VIDEO:String = "didCacheRewardedVideo";

/** Запускается при клике на видео с вознаграждением.
* Аргументы: (location:String) */
public static const DID_CLICK_REWARDED_VIDEO:String = "didClickRewardedVideo";

/** Запускается при закрывании видео с вознаграждением.
* Аргументы: (location:String) */
public static const DID_CLOSE_REWARDED_VIDEO:String = "didCloseRewardedVideo";

/** Запускается при завершении видео с вознаграждением.
* Аргументы: (location:String, reward:int) */
public static const DID_COMPLETE_REWARDED_VIDEO:String = "didCompleteRewardedVideo";

/** Запускается при прекращении видео с вознаграждением.
* Аргументы: (location:String) */
public static const DID_DISMISS_REWARDED_VIDEO:String = "didDismissRewardedVideo";

/** Запускается при ошибке загрузки видео с вознаграждением.
* Аргументы: (location:String, error:CBLoadError) */
public static const DID_FAIL_TO_LOAD_REWARDED_VIDEO:String = "didFailToLoadRewardedVideo";

/** Запускается при отображении видео с вознаграждением. Возвращает, нужно это делать или нет.
* Аргументы: (location:String)
* Возвращает: булево значение */
public static const SHOULD_DISPLAY_REWARDED_VIDEO:String = "shouldDisplayRewardedVideo";

/** Запускается сразу после отображения видео с вознаграждением.
* Аргументы: (location:String) */
public static const DID_DISPLAY_REWARDED_VIDEO:String = "didDisplayRewardedVideo";

/** Запускается перед отображением видео.
* Аргументы: (location:String) */
public static const WILL_DISPLAY_VIDEO:String = "willDisplayVideo";

/** Вызывается, если подключаемый модуль Chartboost приостанавливает действия при клике в ожидании подтверждения от пользователя.
* Аргументы: нет */
public static const DID_PAUSE_CLICK_FOR_COMFIRMATION:String = "didPauseClickForConfirmation";

/** Только iOS: Запускается, когда страница App Store прекращается при отображении встроенного листа приложения.
* Аргументы: нет */
public static const DID_COMPLETE_APP_STORE_SHEET_FLOW:String = "didCompleteAppStoreSheetFlow";

 


 

Проверьте свою интеграцию.

Для проверки настроек начните кампанию публикатора, добавьте в нее приложение, интегрированное с нашим подключаемым модулем, и соберите свой проект на устройство.

Если вы видите тестовые рекламные вставки Chartboost в тех местах, для которых добавили в код их вызовы, то все сделано правильно! Не забудьте отключить тестовый режим (на странице «Настройки приложения» ), чтобы начать видеть реальную сетевую рекламу:

 


 

Ура! Вы только что интегрировали Chartboost SDK в свое приложение!

Теперь можно перейти к запуску кампании ▶

 


 

Ознакомьтесь с другими функциями Chartboost

  • Кэширование: Ускоряет сроки загрузки рекламы и страниц «Другие приложения», локально сохраняя их на устройствах.
  • Chartboost Video: Добавляет в приложения красивую видеорекламу высокого качества для лучшего восприятия игроками.
  • Именованные местоположения: Тонкая настройка таргетинга кампаний и частоты показа рекламы прямо на панели пользователя.
  • Страница «Другие приложения»: Создание и видоизменение страницы с перечнем других игр, которая появляется в приложении для рекламы ваших собственных игр или для публикации рекламы других разработчиков.
  • Послеустановочная аналитика: Для игр с покупками внутри приложения. Пользуйтесь полезными данными о поведении игроков как покупателей для того, чтобы оптимизировать кампании и проводить ретаргетинг.
  • Посредничество: Показывайте свою рекламу в других популярных сетях.

 


 

Вам может быть интересно...