Android v3(従来版) - ユニバーサル アナリティクス タグ

このガイドでは、Android 向け Google タグ マネージャー SDK を使って一般的なユニバーサル アナリティクス タグを実装する方法について説明します。

  1. ユニバーサル アナリティクス(UA)タグの一般的な設定
    1. アプリビュー(スクリーン ビュー)を送信する
    2. イベントの送信
    3. e コマース トランザクションの送信
      1. e コマース データレイヤー変数
    4. リファラー アトリビューションをインストールする

ユニバーサル アナリティクス(UA)タグの一般的な設定

Google タグ マネージャーを使ってアプリにユニバーサル アナリティクスを実装すると、Google アナリティクスの実装をすぐに変更できます。アプリバイナリを再構築してマーケットプレイスに再送信する必要はありません。

このガイドでは、ユニバーサル アナリティクス タグと Android 向け Google タグ マネージャー SDK を使用して、次の作業を行う方法について説明します。

アプリビュー(スクリーン ビュー)を送信する

アプリで新しい画面が開かれるたびにアプリビュー(スクリーン ビュー)を Google アナリティクスに送信するには:

  1. スクリーン名のマクロを作成する
  2. OpenScreenEvent ルールを作成する
  3. UA アプリビュー(スクリーン ビュー)タグを作成する
  4. イベントとスクリーン名をデータレイヤーにプッシュするようにコードを更新する

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. (省略可)イベントマクロを作成する
  2. イベントルールを作成する
  3. UA イベントタグを作成する
  4. イベントと任意のイベントマクロ値をデータレイヤーにプッシュするようにコードを更新する

次の手順は、ユーザーが動画の再生を開始したときに発生するイベントに対してどのように動作するかを示しています。

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. トランザクション ルールを作成する
  2. UA トランザクション タグを作成する
  3. コードを更新してイベントデータとトランザクション / アイテムデータを DataLayer に push する

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>