このガイドでは、Android 向け Google タグ マネージャー SDK を使って一般的なユニバーサル アナリティクス タグを実装する方法について説明します。
ユニバーサル アナリティクス(UA)タグの一般的な設定
Google タグ マネージャーを使ってアプリにユニバーサル アナリティクスを実装すると、Google アナリティクスの実装をすぐに変更できます。アプリバイナリを再構築してマーケットプレイスに再送信する必要はありません。
このガイドでは、ユニバーサル アナリティクス タグと Android 向け Google タグ マネージャー SDK を使用して、次の作業を行う方法について説明します。
アプリビュー(スクリーン ビュー)を送信する
アプリで新しい画面が開かれるたびにアプリビュー(スクリーン ビュー)を Google アナリティクスに送信するには:
- スクリーン名のマクロを作成する
- OpenScreenEvent ルールを作成する
- UA アプリビュー(スクリーン ビュー)タグを作成する
- イベントとスクリーン名をデータレイヤーにプッシュするようにコードを更新する
1. スクリーン名のマクロを作成する
次の設定値を使用して、新しいスクリーン名マクロを作成します。
マクロ名 : screen name
マクロの種類 : Data Layer Variable
データレイヤー変数名 : screenName
2. OpenScreenEvent ルールを作成する
次の設定値を使用して、新しい UA アプリビュー(スクリーン ビュー)タグの配信に使用する新しいルールを作成します。
ルール名 : OpenScreenEvent
条件: {{ event }}
が openScreen
と等しい
3. アプリビュー(スクリーン ビュー)の UA タグを作成する
次の設定値を使用して、新しい UA タグを作成します。
タグ名 : Screen Open
トラッキング ID : プロパティ ID
タグタイプ : Universal Analytics (beta)
トラッキング タイプ : AppView
基本設定 - アプリ名 : {{ app name }}
基本設定 - アプリのバージョン : {{ app version }}
基本設定 - スクリーン名 : {{ screen name }}}
4. イベントとスクリーン名をデータレイヤーにプッシュするようにコードを更新する
次の例のように、アプリに openScreen
イベントと screenName
値をデータレイヤーにプッシュするコードを追加します。
// Push an 'openScreen' event to the data layer. import com.google.tagmanager.DataLayer; import com.google.tagmanager.TagManager; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { private static final String SCREEN_NAME = "Home Screen"; private DataLayer mDataLayer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(); } @Override public void onStart() { super.onStart(); mDataLayer = TagManager.getInstance(this).getDataLayer(); // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. mDataLayer.push(DataLayer.mapOf("event", "openScreen", // Event, Name of Open Screen Event. "screenName", SCREEN_NAME)); // Name of screen name field, Screen name value. } }
イベントの送信
ユーザーが UI コントロールやアプリ内のコンテンツを操作したときに、Google アナリティクスにイベントを送信するには:
次の手順は、ユーザーが動画の再生を開始したときに発生するイベントに対してどのように動作するかを示しています。
1. (省略可)イベントマクロを作成する
イベントのカテゴリ、アクション、ラベル、値のフィールドにデータレイヤー変数を使用する場合は、まず管理画面でこれらのマクロを設定する必要があります。この例では、動画再生イベントタグは、再生された動画の名前を示すデータレイヤー変数を使用します。
この動画名を実装するには、次の設定値を使用して新しいマクロを作成します。
マクロ名 : video name
マクロの種類: Data Layer Variable
データレイヤー変数名 : videoName
2. イベントルールを作成する
データレイヤーへのプッシュ時にイベントタグが配信されるルールを作成します。動画再生の例では、この新しいルールの構成値は次のとおりです。
ルール名 : VideoPlayEvent
条件 : {{ event }}
が videoPlay
と等しい
UA イベントタグを作成する
前の手順で作成したルールが true
と評価されたときに配信される UA イベントタグを作成します。動画再生の例の場合、このタグは次のようになります。
タグ名: Video Play Event
トラッキング ID : プロパティ ID
タグタイプ: Universal Analytics (beta)
トラッキング タイプ: Event
イベント トラッキング パラメータ - カテゴリ: Video
イベント トラッキング パラメータ - アクション: Play
イベント トラッキング パラメータ - ラベル: {{ video name }}
基本設定 - アプリ名: {{ app name }}
基本設定 - アプリ バージョン : {10/1}
{{ app version }}
{{ screen name }}
イベントをデータレイヤーに push するようにコードを更新する
最後に、ユーザーが操作を完了したときに、イベント値とタグが必要とするデータレイヤー変数の両方をデータレイヤーにプッシュするようにコードを更新します。動画再生の例の場合、コードは次のようになります。
// Push a 'videoPlay' event to the data layer. import com.google.tagmanager.DataLayer; import com.google.tagmanager.TagManager; public class VideoPlayer { // Called when a user initiates a video playback. public void onPlay(Video v) { DataLayer dataLayer = TagManager.getInstance(this).getDataLayer(); // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. dataLayer.push(DataLayer.mapOf("event", "videoPlay", // Event, Name of Open Screen Event. "videoName", v.getName()); // Additional data layer variables used by the event tag. play(v); } // Rest of implementation; }
e コマース トランザクションの送信
ユーザーがアプリ内購入を完了したときに、トランザクションと関連アイテムを Google アナリティクスに送信するには:
1. トランザクション ルールの作成
次に、以下の構成値を使用して新しいルールを作成します。
ルール名 : TransactionCompleted
条件 : {{ event }}
が transaction
と等しい
2. UA トランザクション タグを作成する
次の値を使用して UA トランザクション タグを作成します。
タグ名 : Transaction Completed
トラッキング ID : プロパティ ID
タグタイプ : Universal Analytics (beta)
トラッキング タイプ : Transaction
基本設定 - アプリ名 : {{ app name }}
基本設定 - アプリのバージョン : {{ app version }}
基本設定 - スクリーン名 : {{ screen name }}
3. コードを更新してイベントデータとトランザクション / アイテムデータを DataLayer に push する
最後に、トランザクション イベントと、関連するトランザクションおよびアイテムデータをデータレイヤーにプッシュするようにコードを更新します。トランザクションと商品アイテムデータには、サポートされているデータレイヤー変数名を使用する必要があります。
// Called when a user completes a transaction. public void onPurchaseCompleted(Purchase p) { DataLayer dataLayer = TagManager.getInstance(this).getDataLayer(); // Put maps of item data into an array that will be pushed to the data layer. ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>(); for (Item i : p.items) { HashMap<String, String> currentItem = new HashMap<String, String>(); currentItem.put("name", i.getProductName()); currentItem.put("sku", i.getProductSku()); currentItem.put("category", i.getProductCategory()); currentItem.put("price", i.getProductPrice()); currentItem.put("currency", "USD"); currentItem.put("quantity", i.getProductQty()); purchasedItems.add(currentItem); } // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. dataLayer.push(DataLayer.mapOf("event", "transaction", // Event, Name of Transaction Event. "transactionId", p.getTransId(), // Additional fields required by the tag. "transactionTotal", p.getTotal(), "transactionAffiliation", "In-app Store", "transactionTax", p.getTax(), "transactionShipping", p.getShippingCost(), "transactionCurrency", "USD", "transactionProducts", purchasedItems)); // Since the data layer is persistent, you should reset fields to null after // you are done pushing the transaction. dataLayer.push(DataLayer.mapOf("transactionId", null, "transactionTotal", null, "transactionAffiliation", null, "transactionTax", null, "transactionShipping", null, "transactionCurrency", null, "transactionProducts", null)); }
サポートされる e コマース データレイヤー変数
UA トランザクション タグは、次のデータレイヤー変数をサポートしています。
トランザクション変数
変数名 | 説明 | 種類 | 必須 |
---|---|---|---|
transactionId |
トランザクションに固有の識別子 | string | ○ |
transactionAffiliation |
パートナーや販売店 | string | × |
transactionTotal |
トランザクションの合計 | string | × |
transactionTax |
トランザクションの税額 | string | × |
transactionShipping |
トランザクションの送料 | string | × |
transactionCurrency |
トランザクションの通貨 | string | × |
transactionProducts |
トランザクションで購入されたアイテムのリスト | アイテム変数を含むマップの配列。 | × |
アイテム変数
変数名 | 説明 | 種類 | 必須 |
---|---|---|---|
name |
商品名 | string | ○ |
sku |
商品の SKU | string | × |
category |
商品カテゴリ | string | × |
price |
商品の価格 | string | × |
currency |
price の通貨タイプ |
string | × |
quantity |
アイテムの数量 | string | × |
リファラー アトリビューションをインストールする
インストール参照 URL のデータが使用可能な場合は、AndroidManifest.xml
ファイルで次のサービスとレシーバーが登録されると、Google アナリティクスのヒットや Google 広告リマーケティング ピクセルのリクエストに、インストール参照 URL が自動的に組み込まれます。
<!-- Used for install referrer tracking --> <service android:name="com.google.tagmanager.InstallReferrerService" /> <receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>