comScore分析コンポーネント
comScore(英語のみ)を使用すると、アプリを詳細に分析して、メディアの各再生イベントに関する情報や、広告メッセージの再生に関する詳細などを入手できます。Fire App Builderは、必要なcomScoreコードを統合して、測定データをcomScoreのサーバーに送信します。Fire App Builderで必要な作業は、コンポーネントを有効にして、comScoreのキーを構成することだけです。comScoreのキーのセキュリティを確保するために、Fire App Builderにはキーを暗号化するユーティリティも用意されています。
手順1: comScore分析コンポーネントを構成する
- Gradle Scriptsを展開し、settings.gradle(Project Settings)を開きます。
-
2か所にある「
// Uncomment when using ComScore Analytics
」というコメントを検索し、それぞれの下の行のコメントを解除します。最初の出現箇所のコメントを解除すると、次のようになります。// Uncomment when using ComScore Analytics ':comscore',
2番目の出現箇所のコメントを解除すると、次のようになります。
// Uncomment when using ComScore Analytics project(':comscore').projectDir = new File(rootProject.projectDir, '../ComScoreAnalyticsComponent/libs/comscore')
-
comScore分析コンポーネントをアプリに読み込みます。詳細については、アプリ内のコンポーネントを追加または削除するを参照してください。
アプリにほかの分析コンポーネント(CrashlyticsComponent、OmnitureAnalyticsComponent、GoogleAnalyticsComponent、LoggerAnalyticsComponentなど)が読み込まれている場合は、すべて削除してください。
注: 読み込むことができるコンポーネントは、インターフェイスごとに1つだけです。たとえば、Flurry AnalyticsコンポーネントとOmniture Analyticsコンポーネントは、どちらも同じIAnalytics
インターフェイスを使用するため、両方を同時に読み込むことはできません。インターフェイスごとのコンポーネント一覧は、コンポーネントの概要を参照してください。 -
[Save] をクリックし、[Resync Project with Gradle Files] ボタンをクリックします。
不足しているプラットフォームやファイルをインストールするように求められた場合は、プロンプトに従ってインストールします。
-
ComScoreAnalyticsComponent > res > values > custom.xmlに移動し、
resources
要素内のタグをコピーします。以下に例を示します。<!-- アプリ用の暗号化されたComScoreクライアントトークン。ResourceObfuscationStandaloneUtilityを使用して暗号化します。 --> <string name="encrypted_comscore_client_id">encrypted_comscore_client_id</string> <!-- アプリ用の暗号化されたComScoreアプリID。ResourceObfuscationStandaloneUtilityを使用して暗号化します。 --> <string name="encrypted_comscore_publisher_secret">encrypted_comscore_publisher_secret</string> <!-- ComScoreリソースを暗号化/復号化するためのランダムキーの生成に使用する疑似乱数文字列。 これらのキーは、ResourceObfuscationStandaloneUtilityで使用されるキーと常に同期している必要があります。 --> <string name="comscore_key_1">comscore_key_1</string> <string name="comscore_key_2">comscore_key_2</string> <string name="comscore_key_3">comscore_key_3</string> <string name="comscore_key_4">comscore_key_4</string> <string name="comscore_key_5">comscore_key_5</string> <string name="comscore_key_6">comscore_key_6</string>
- コピーしたコンテンツを、アプリのcustom.xmlファイル(resources > values内)に貼り付けます。
- 次のセクション(comScoreのキーを暗号化する)の手順に従って、comScoreのクライアントIDとパブリッシャーのシークレットキーの値を暗号化します。これらの値を暗号化したら、
encrypted_comscore_client_id
要素とencrypted_comscore_publisher_secret
要素に入力します。暗号化を行うには、comscore_key_[#]
の値に乱数文字列を入力する必要もあります。
手順2:comScoreのキーを暗号化する
このセクションでは、comScoreのクライアントIDとパブリッシャーのシークレットキーの値を暗号化します。その後、暗号化されたキーを、アプリのcustom.xmlファイルのencrypted_comscore_client_id
要素とencrypted_comscore_publisher_secret
要素に入力します。
- comScoreから、クライアントIDとパブリッシャーのシークレットキーを取得します。
- アプリのcustom.xmlファイル(res > values内)を開きます。
-
comscore_key_[#]
の値のそれぞれに、ランダムな英数字の文字列を入力します。以下に例を示します。<string name="comscore_key_1">calypso</string> <string name="comscore_key_2">something_random</string> <string name="comscore_key_3">more_random_stuff</string> <string name="comscore_key_4">dadadadada</string> <string name="comscore_key_5">qwertfghyufksld</string> <string name="comscore_key_6">myfinalkey</string>
これらの疑似乱数文字列は、Fire App BuilderのResourceObfuscationStandaloneUtilityで、ComScoreリソースを暗号化/復号化するランダムキーを生成するために使用されます。
- [Android] ビューで、Utils > java > com > amazon > utils > securityフォルダを展開し、ResourceObfuscationStandaloneUtilityクラスを開きます。
-
getRandomStringsForKey()
メソッドに、comscore_key_1
、comscore_key_2
、comscore_key_3
として使用した値をそれぞれ入力します。たとえば、これらの最初の3つのキーが前のコードサンプルに示した値である場合、次のように入力します。
private static String[] getRandomStringsForKey() { return new String[]{ "calypso", "something_random", "more_random_stuff" }; }
この例の値はそれぞれ次のとおりです。
calypso
は、comscore_key_1
として使用した値です。something_random
は、comscore_key_2
として使用した値です。more_random_stuff
は、comscore_key_3
として使用した値です。
-
getRandomStringsForIv()
メソッドに、comscore_key_4
、comscore_key_5
、comscore_key_6
として使用した値をそれぞれ入力します。以下に例を示します。private static String[] getRandomStringsForIv() { return new String[]{ "dadadadada", "qwertfghyufksld", "myfinalkey" }; } }
この例の値はそれぞれ次のとおりです。
dadadadada
は、comscore_key_4
として使用した値です。qwertfghyufksld
は、comscore_key_5
として使用した値です。myfinalkey
は、comscore_key_6
として使用した値です。
-
getPlainTextToEncrypt()
メソッドで、Encrypt_this_text
の代わりにcomScoreクライアントIDキーを入力します。private static String getPlainTextToEncrypt() { return "123456789"; }
- ResourceObfuscationStandaloneUtility.javaファイルを右クリックし、[Run 'ResourceObfusc…main()] を選択します。
-
暗号化された結果がコンソールに出力されていることを確認します。これは次のようになります。
Encrypted version of plain text 123456789 is MVfm5qWBdsfkl3i876MaAr0/pB7Pan9ijvQ8MtP3k=
-
暗号化されたcomScoreクライアントIDキーをコピーし、アプリのcustom.xmlファイルに
encrypted_comscore_client_id
文字列の値として貼り付けます。以下に例を示します。<string name="encrypted_comscore_client_id">Hgei944983ljdfHoaQ==</string>
-
手順7~10を繰り返します。ただし、今回はcomScoreのクライアントIDではなく、comScoreのパブリッシャーシークレットキーを
getPlainTextToEncrypt()
に入力します。暗号化された値を生成したら、アプリのcustom.xmlファイルにencrypted_comscore_publisher_secret文字列の値として貼り付けます。ヒント: ランダムキーは、必要時にすぐに参照できるように、社内のwikiなどの安全な場所に保管してください。これらのキーは、値を復号化するために必要です。
comScoreがデータを送信していることの確認
comScoreがデータを送信していることを確認するには、次の手順を実行します。
- アプリを実行します。
- Android Studioの下部にある [Android Monitor] をクリックして、イベントログを開きます。
- [Regex] チェックボックスの左にある空のフィールドで、「comscore」という単語でフィルターを適用します。
-
アプリでビデオを視聴します。
次のようなイベントデータが送信されます。
75/com.amazon.android.calypso D/ComScoreAnalytics: Tracking Action: ACTION_AD_START 06-27 19:09:14.727 31975-31975/com.amazon.android.calypso D/ComScoreAnalytics: Action has the following attributes: {ATTRIBUTE_ADVERTISEMENT_TYPE=postroll, ATTRIBUTE_VIDEO_TYPE=video, ATTRIBUTE_VIDEO_ID=169313, ATTRIBUTE_AD_ID=709684216, ATTRIBUTE_VIDEO_CURRENT_POSITION=86507, ATTRIBUTE_AD_DURATION=10000, ATTRIBUTE_TITLE=Beautiful Whale Tail Uvita Costa Rica} 06-27 19:09:25.016 31975-31975/com.amazon.android.calypso D/ComScoreAnalytics: Tracking Action: ACTION_AD_COMPLETE
comScoreの分析ダッシュボードにログインすると、これらのイベントがグラフ化されて表示されます。