@tako_programingの忘備録とか

男子高校生の日常の忘備録

AWS Mobile Analyticsのイントロダクションとかをてきとうに和訳

バイト先でAWS Mobile Analyticsを使うことになって調べていたのを英語が読めないので和訳したのでメモ的に貼っておきます。

AWS Mobile Analytics

公式のGetting Started

  • 1 : AWSアカウントでサインアップする

  • 2 : 以下の手順に従ってアプリを追加する。

    • 次のリンクからAmazon Mobile Analyticsコンソールを開きます
      Amazon Mobile Analytics Console
    • 初めての利用の場合は画面の指示に従ってアプリを追加します。
    • すでにアプリを追加している場合は設定アイコンを選びます。
    • 「Manage Apps」で、「Add App」を選択します。
    • 指示に従います。
  • 3 : Mobile Analyticsを自分のアプリに結合します。

    • Mobile Analyticsを結合するには、アプリに適したプラットフォームのSDKを使用します。(以下のプラットフォームのSDKがあります)
      • Android app
      • iOS app
      • JavaScript app(*僕が今回使ったのはこれなのでこれだけリンクがはってあります。)
      • Unity app
      • Xamarin app
  • 4 : Amazon Mobile Analyticsレポートのデータを確認する


aws-sdk-mobile-analytics(npm)

https://www.npmjs.com/package/aws-sdk-mobile-analytics

イントロダクション

JavaScript用Mobile Analytics SDKを使用すると、JavsScript対応アプリケーションは、AWSコンソールでの分析、S3およびRedshiftへの自動エクスポートによって、イベントを作成して送信することができます。ライブラリはブラウザのローカルキャッシュAPIを使用してデータのローカルキャッシュを作成し、アプリケーションがオフラインのときでもWebアプリケーションでイベントをバッチおよび記録できます。

Setup

  <script src="/js/aws-sdk.min.js"></script>
  <script src="/js/aws-sdk-mobile-analytics.min.js"></script>

使い方

  • 1 : Amazon Mobile Analytics管理コンソールにログインし、新しいアプリを作成する。App IdとCognito Identity Pool Idに注意する。
  • 2 : Cognito Identity Pool IDを使用して、クレデンシャルプロバイダを初期化します。 これは、AWS SDKAmazon Mobile Analytics REST APIへの認証を管理するために必要です。
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: COGNITO_IDENTITY_POOL_ID   //Required e.g. 'us-east-1:12345678-c1ab-4122-913b-22d16971337b'
});
  • 3 : 上記の手順1で生成したアプリIDを含め、MobileAnalyticsManagerをインスタンス化します。セッションイベントは自動的に記録され、クライアントは10秒ごとにAmazon Mobile Analyticsにイベントを送信します。
var options = {
    appId : MOBILE_ANALYTICS_APP_ID   //Required e.g. 'c5d69c75a92646b8953126437d92c007'
};
mobileAnalyticsClient = new AMA.Manager(options);

手動でイベントの送信を強制するには次の呼び出しを行います。

mobileAnalyticsClient.submitEvents();

追加のオプション

カスタムイベント

オプションとして、カスタムイベントを追加して、追加情報をキャプチャすることができます。

mobileAnalyticsClient.recordEvent('CUSTOM EVENT NAME', {
        'ATTRIBUTE_1_NAME': 'ATTRIBUTE_1_VALUE',
        'ATTRIBUTE_2_NAME': 'ATTRIBUTE_2_VALUE'
        /* ... */
    }, {
        'METRIC_1_NAME': 1,
        'METRIC_2_NAME': 99.3
        /* ... */
    });

セッションの設定

デフォルトの設定ではセッションは10分間続きますが、optionsオブジェクトにsessionLengthを含めることで、Mobile Analytics Managerを初期化するときにこのデフォルト設定を上書きすることができる。

var options = {
    appId : MOBILE_ANALYTICS_APP_ID, 
    sessionLength: 300000   //ミリ単位でのセッションの長さです。この場合は、5分になります。
};
mobileAnalyticsClient = new AMA.Manager(options);

セッションのタイムアウトは、セッションの継続を可能にするように更新できる。

//以下の記述で、現在のセッションが5秒語に期限切れになります。
mobileAnalyticsClient.resetSessionTimeout(5000); 
    
//以下の記述で、初期化中に指定された時間を使用して、現在のセッションの有効期限がリセットされます。 
//デフォルトの設定をそのまま使用するとセッションは10分後に期限切れになります。 
mobileAnalyticsClient.resetSessionTimeout();

アプリの詳細をイベントに追加する

SDKを初期化するときに、追加のアプリケーションの環境と詳細をoptionsオブジェクトに追加するとこができます。これらの詳細はキャプチャされ、すべてのイベントに適用され、自動エクスポートを使用してデータのカスタム分析を行う場合に使えます。

 var options = {
    appId : MOBILE_ANALYTICS_APP_ID,       //Required e.g. 'c5d69c75a92646b8953126437d92c007'
    appTitle : APP_TITLE,                  //Optional e.g. 'Example App'
    appVersionName : APP_VERSION_NAME,     //Optional e.g. '1.4.1'
    appVersionCode : APP_VERSION_CODE,     //Optional e.g. '42'
    appPackageName : APP_PACKAGE_NAME,     //Optional e.g. 'com.amazon.example'
    make : DEVICE_MAKE,                    //Optional e.g. 'Amazon'
    model : DEVICE_MODEL,                  //Optional e.g. 'KFTT'
    platform : DEVICE_PLATFORM,            //Optional valid values: 'Android', 'iPhoneOS', 'WindowsPhone', 'Blackberry', 'Windows', 'MacOS', 'Linux'
    platformVersion : DEVICE_PLATFORM_VER  //Optional e.g. '4.4'
};
mobileAnalyticsClient = new AMA.Manager(options);

バイスの詳細が特に指定されていない時は、AmazonMobileAnalyticsがUser-Agentヘッダー値に基いてこれらの値を予測し指定します。これらの値は、使用できる場合初期化中に指定したほうがよいです。

詳しいドキュメント

詳しいドキュメントと追加の設定は以下のリンクから参照してください。 https://aws.github.io/aws-sdk-mobile-analytics-js/doc/AMA.Manager.html

ネットワーク構成

Amazon Mobile Analytics JavaScript SDKは以下のエンドポイントにリクエストを送信します。 * イベントを使う場合 : https://mobileanalytics.us-east-1.amazonaws.com * Cognito認証の場合: https://cognito-identity.us-east-1.amazonaws.com - このエンドポイントは、アイデンティティが作成された領域に基いて、変更されることがあります。 * ほとんどのフレームワークは、*.amazonaws.comですべてのAWSエンドポイントをホワイトリストに登録することで両方のエンドポイントをホワイトリストに登録することができます。