Posted at

Apache Cordovaを使ったハイブリッドHTML5アプリにAmazon Mobile Analyticsを導入する

More than 3 years have passed since last update.

iOSとAndroid向けのアプリ開発を効率化することができる注目のApache Cordova

HTML5でのアプリケーション開発においてもそのアプリの利用状況を把握したい!

ということで、Apache CordovaのアプリにAWS Javascript SDKを使ってAmazon Mobile Analyticsのインプリしてみます。


Amazon Congnitoの設定

Amazon Mobile Analyticsを使うためにCognitoの設定を行います。

Amazon Cognitoの画面からCreate identity Poolをクリックします。

Kobito.s7IpwG.png

今回は、Unauthenticated Identitesを使うので、チェックボックスをオンにします。

作成されたUnauthenticatedのIAMロールにMobile AnalyticsへのPut Eventを許可する権限を付与します。

IAMのコンソールで当該のロール開いて、Attach Policyを選択します。

image.png

Inline Policiesにロールを追加します。

Create Role Policy → Policy Generatorを開きます。

Amazon Mobile AnalyticsのPutEventを許可(今回リソースは*にしました。厳密には、ARNを指定すること)

Kobito.05B35U.png


Amazon Mobile Analyticsの設定

マネジメントコンソールからAmazon Mobile Analyticsを選択します。

Create Mobile Analytics Appをクリックし、アプリケーション名を入力します。

あとで、App IDが必要になるのでApp IDをメモ帳などにコピーしておいてください。


Apache Cordovaアプリ開発

Intel Edisonの開発でIntel XDK for IoTを使ってた背景で、Intel社が提供しているIntel XDKを使ってみます。

Intel XDKの使い方などはこちらをご覧ください。

新しいプロジェクトを作ります。

HTML5 + Cordovaを選択してください。

Kobito.l3FthO.png

Developタブを開いて実装します。

AWS SDK for Javascript及ぶAmazon Mobile Analytics SDK for JavaScriptをダウンロードしてプロジェクトフォルダ内のwww¥jsにいれます。

実装は、このブログを参考に実装します。

変更点は以下の部分です。


index.html(抜粋)

        console.log('Analytics initializing');

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'CognitoのIdentityPoolIDを入れてください',
RoleArn:'MobileAnlyticsのRole ARNを入れてください',
});

var options = {
appId : 'Mobile AnalyticsのApp ID',
platform: 'iPhoneOS',
autoSubmitEvents: true,
autoSubmitInterval: 1000
};
this.mobileAnalyticsClient = new AMA.Manager(options);


あとは、Run My Appをクリックしてエミュレータを起動します。

Kobito.0e2RmH.png

Kobito.V7xdt0.png

ブログのソースでは、スクリーンをタッチするだけでカスタムイベントが飛ぶようになってます。

Mobile Analyticsのマネジメントコンソールでは以下のようなグラフで確認できます。

Kobito.1i3ZY8.png

Kobito.icOAPz.png


最後に

Amazon Mobile Analytics SDK for JavascriptがでたことでブラウザはもちろんHTML5アプリケーション上での分析もMobile Analyticsを用いることができます。

Amazon Mobile Analyticsは、S3やRedshiftへのロードも自動的にできるようになっているので、マネジメントコンソールでの確認だけでなく他のデータと合わせた分析を行うこともできます。


免責

こちらは個人の意見で、所属する企業や団体は関係ありません。