
スマホゲームを作った際、ユーザーの動向を探るために Analytics を実装したいと思います。
Firebase の Analytics は優秀で、指定した箇所にログを仕込んで、バックグラウンドで Analytics にアップロードしてくれるので、開発者の負担がほぼゼロなのです。
開発環境
- Windows 10 Home
- Cocos Creator Ver2.1.1
- Python 2.7
事前準備
- Cocos Creator で Android Native Build が出来るようにしておく。
- Google Firebaseプロジェクトを作成しておく。
実装手順
Cocosプロジェクトに Firebase をインポートする
SDKBOX GUI を開く。
[Extension] > [SDKBox] > [Launch]

SDKBOX GUI の Import を選択する。

Firebase の Import を選択する。

確認ダイアログ の Import ボタンを押す。

自動的に、Google Play Services プラグインと Firebase プラグインがインポートされる。

これで、Firebase のインポート作業は完了です。
Firebase設定ファイルを作成する
次にアンドロイドプロジェクトに読み込ませる、Firebase設定ファイルを作成する。
Google Firebase から、[google-services.json]をダウンロードする。

python を使って、[google-services.json]を xml形式に変換する。
[google-services.json]があるフォルダで下記コマンドを実行する。
python -c "import urllib; import sys; sys.argv = ['transpy', '-i', './google-services.json', '-o', './googleservices.xml']; s = urllib.urlopen('https://raw.githubusercontent.com/sdkbox-doc/en/master/tools/generate_xml_from_google_services_json.py').read(); exec(s);"

「 googleservices.xml 」が出来るので、「 NewProject\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\res\values 」フォルダに移動させる。

これで、Firebase設定ファイルの作成は完了です。
Javascript にログ出力処理を書く
最後に、実際に使うためのコードを書く。
cc.Class({
extends: cc.Component,
properties: {},
// use this for initialization
onLoad: function () {
sdkbox.firebase.Analytics.init();
},
onButtonClicked: function () {
const evt = {}
evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemID] = 'id123456';
evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemName] = 'name123456';
evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemCategory] = 'category123456';
evt[sdkbox.firebase.Analytics.Param.kFIRParameterPrice] = '123.4';
sdkbox.firebase.Analytics.logEvent(sdkbox.firebase.Analytics.Event.kFIREventViewItem, evt);
}
});

Compile してAndroid実機に転送してログ出力を試す。

なにがしかのログが出れば導入成功です。
まとめ
まだ、SDKBOXのFirebase plugin for Cocos2d-x では、Analytics しか実装されていません。
Firebase では、他にもできることがたくさんあるので、早く実装してほしいですね。
特に私が待ち焦がれているのは、Authentication の認証機能ですね。
Firebase plugin に Authentication が実装されたら、Cocos2d-js がさらに盛り上がると思っています。