Adobe AIR用Chartboost SDKをダウンロードし、実装する

最終更新:

 

モバイルゲームをChartboostネットワークに統合。たった10行のコードで実装できます。

 


 

便利な機能が満載。SDKパッケージには最近技術が詰まっています。

プレイヤー目線を重視した高品質のビデオ広告

カスタマイズ可能なインタースティシャルで広告をシームレスに提供

詳細なデータ解析ツールを使って、広告のターゲットを絞り込み

SDKリリースノートを見る ▶

 


 

Chartboost SDKの実装方法

 


 

 

事前にお読みください

次の要素があれば、自社ゲームに簡単にAIRプラグインを組み込むことができます。

  • Chartboostアカウント
  • ダッシュボード内のアプリ
  • 最新のAIRプラグイン
  • アクティブなパブリッシング・キャンペーン
  • Chartboost Adobe AIRは現在、ベータ版で提供しております。
  • プラグインにはiOS SDK v6.4.7とAndroid SDK v6.4.2が必要です。
  • Chartboost AIRプラグインはiOS 6以上およびAndroid 2.3以上をサポートしています。
  • -swf-version 33コンパイラフラグが必要です。In Flash Builder, this is entered under Project properties > Flex Compiler > Additional compiler arguments.
  • AIR SDK version 22以上が必要です。

 

 

Chartboostネイティブ拡張をお客様のAIRアプリにインポートする

お客様のプロジェクトにネイティブ拡張用のディレクトリを作成し、Chartboost.aneChartboost.swcをコピーするといいでしょう。Flash Builderをご使用の場合は、プロジェクト設定でそのディレクトリをネイティブ拡張ディレクトリに指定します。

 


 

AIRアプリケーション記述子のルート要素<application><extensionID>宣言を追加する

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

Android用にビルドしている場合には、これらのマニフェスト追加要素をAIRアプリケーション記述子ファイルに追加するのも忘れずに!(ChartboostアプリIDとアプリ署名も必ずスワップインしてください。)

<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アプリのアプリIDと署名はここに入れます。 -->
            <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サービス用(Chartboostで必要) -->
            <meta-data android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />
 </application>
 </manifest>
]]></manifestAdditions>

Androidデベロッパーの場合:Google Playサービスを含む別のプラグインを使用している場合には、ビルド中にエラーが発生することがあります。同梱の、Google Playサービスを含まないANEを使えば、この競合を避けることができます。

 


 

Chartboostクラスをインポートする

import com.chartboost.plugin.air.*;

 


 

Chartboostを初期化する

AIRアプリケーションステージ、ChartboostアプリIDおよび署名startWith()メソッドを呼び出します。プラットフォームごとにメソッド呼び出し条件が異なることがあるので、ご自由にご使用になれるヘルパー関数を提供しています。

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ビデオ広告の詳細はこちら ▶
同じ場所でcacheInterstitialの直後にshowInterstitialの呼び出しを行うとSDKがサイレント障害に陥ります。ご注意ください。
表示前にインタースティシャルをキャッシュしておくことをお勧めします。キャッシュについて ▶

 

リワードビデオ広告を表示するには

Chartboost.showRewardedVideo(CBLocation.DEFAULT);
  • CBLocationインターフェイス クラスのデフォルト場所定数を使っても、自分で定義しても構いません。 一度場所が使われるとダッシュボードに追加されるので、以降は設定をカスタマイズできるようになります。
  • お客様のゲーム内における広告の表示方法は、キャッシュ、デリゲートメソッド、広告掲載場所などのChartboost SDKの追加機能を使うと、より詳細にカスタマイズできるようになります。
  • Chartboostビデオ広告について ▶
同じ場所でcacheRewardedVideoの直後にshowRewardedVideoの呼び出しを行うとSDKがサイレント障害に陥ります。ご注意ください。
表示前にインタースティシャルをキャッシュしておくことをお勧めします。キャッシュについて ▶

 

Chartboostメソッドを呼び出すには

In /actionscript/src/com/chartboost/plugin/air/Chartboost.asに、Chartboostプラグインとやり取りするために使用するAIR-to-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

/** MoreAppsページをキャッシュする。 */
public static function cacheMoreApps(location:String):void

/** MoreAppsページを表示する。 */
public static function showMoreApps(location:String):void

/** MoreAppsページがキャッシュされているかどうか確認する。 */
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オブジェクトを返すかわりに
*  準備ができると用意されていた関数に渡します。
* インプレー広告がない場合には、関数の呼び出しは行われません。
* 関数には1つの引数、CBInPlayオブジェクトが含まれます。使い方についてはサンプルアプリを参照ください。 */
public static function getInPlay(location:String, fn:Function):void

/** インプレー広告がキャッシュされているかどうか確認する。 */
public static function hasInPlay(location:String):Boolean

/** デリゲートメソッド didPauseClickForConfirmation() への応答として表示させる
* 何らかのUIの結果としてこれを呼び出す。 */
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

/** MoreAppsページの読込画面を全画面にするかどうかを設定する。 */
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

/** IAPが自動トラッキングされたかを返す。iOSのみ。 */
public static function getAutoIAPTracking():Boolean

/** ウェブビューが有効(サーバー設定)かどうかを返す。Androidのみ。 */
public static function isWebViewEnabled():Boolean

/** 広告表示中にシステムのUIを非表示にするかどうかを設定する。Androidのみ。 */
public static function setShouldHideSystemUI(shouldHide:Boolean):void

/** ラッパーのみ:利用するメディエーションサービスを設定する。 */
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をタップしたり、[戻る] ボタンを押すことにより、インタースティシャル広告が閉じられたときに起動される)。
* 引数:(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";

/** MoreAppsページの読み込みに失敗したときに起動される。
* 引数:(location:String, error:CBLoadError) */
public static const DID_FAIL_TO_LOAD_MOREAPPS:String = "didFailToLoadMoreApps";

/** MoreAppsページが表示されるときに起動される。いかなる場合も返す。
* 引数:(location:String) */
public static const SHOULD_DISPLAY_MOREAPPS:String = "shouldDisplayMoreApps";

/** 何らかのメソッドを使用してMoreApps画面が終了されるときに起動される。
* これは、常に閉じるイベントまたはクリック イベントとペアになる。
* 引数:(location:String)
* 戻り値:ブール値 */
public static const DID_CLICK_MORE_APPS:String = "didClickMoreApps";

/** MoreAppsページが閉じられたときに起動される。
* (Xをタップしたり、[戻る] ボタンを押すことにより、MoreAppsページが閉じられたときに起動される)。
* 引数:(location:String) */
public static const DID_CLOSE_MORE_APPS:String = "didCloseMoreApps";

/** MoreAppsページの一覧がクリックされたときに起動される。
* 引数:(location:String) */
public static const DID_DISMISS_MORE_APPS:String = "didDismissMoreApps";

/** MoreAppsページがキャッシュされたときに起動される。
* 引数:(location:String) */
public static const DID_CACHE_MORE_APPS:String = "didCacheMoreApps";

/** MoreAppsページが表示されたときに起動される。
* 引数:(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 SDKの追加機能

  • キャッシュ: ローカルデバイスに保管することで、広告とMoreAppsページの読み込み時間を短縮します。
  • Chartboostビデオ: 高品質の美しいビデオ広告を提供できます。
  • 広告掲載場所: ダッシュボードでキャンペーンのターゲティングと広告の表示頻度を微調整できます。
  • MoreApps: お客様のアプリ内におすすめゲームの一覧を表示するページを作って、自社や他社のゲームを宣伝できます。
  • ポストインストール・アナリティクス(PIA): アプリ内購入ができるゲーム用です。プレイヤーの購入データを見ながらキャンペーンやリターゲティングを最適化できます。
  • メディエーション: 他社ネットワークと連携して広告を表示できます。

 


 

関連項目