はじめに
Google タグ マネージャーを使用すると、デベロッパーがモバイルアプリの設定値を変更できる Google タグ マネージャーの管理画面を使用して作成する。アプリケーションのバイナリをビルドし直して再送信する必要はない アプリマーケットプレイス。
これは、アプリケーションの設定値やフラグを管理する際に便利です。 次のような項目が含まれます。
- さまざまな UI 設定と表示文字列
- アプリで配信される広告のサイズ、場所、タイプ
- さまざまなゲームの設定
構成値はルールを使用して実行時に評価することもできるため、 次のような構成です。
- 画面サイズに基づいて広告バナーのサイズを決定する
- 言語と地域を使用して UI 要素を構成する
また、Google タグ マネージャーを使用すると、 説明します。重要なイベントをデータレイヤーにプッシュし、 指定することもできます
始める前に
このスタートガイドを始める前に、次の手順を行います。
- Android SDK をインストールします。
- Google Play 開発者サービス SDK をダウンロードします。
- Google タグ マネージャー アカウントを作成する
- Google タグ マネージャー コンテナを設定する
これらのステップを完了したら、このガイドの残りの部分で、 Google タグ マネージャーを Android アプリ内で設定、使用する。
スタートガイド
このスタートガイドに従うと、次の方法を理解できます。
- Google タグ マネージャーをプロジェクトに追加する
- アプリでタグ マネージャーを初期化する
- タグ マネージャー コンテナから設定値を取得する
- 値とイベントを
dataLayer
に push する - コンテナをプレビュー、デバッグし、公開する
このガイドでは、Cute Animals
のコード スニペットを使用しています
サンプル アプリケーション
Google Play 開発者サービス SDK。
このプロジェクトの完全なソースは <android-sdk-directory>/extras/google/google_play_services/tagmanager/cuteanimals
で入手できます。
1. Google タグ マネージャーをプロジェクトに追加する
Google タグ マネージャーをプロジェクトに追加するには:
- <ph type="x-smartling-placeholder"></ph> Google Play 開発者サービス SDK をセットアップする
- 以外の IDE を使用している場合
Android Studio で以下の権限を
AndroidManifest.xml
ファイル:<!-- For TagManager SDK --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <ph type="x-smartling-placeholder"></ph>を有効にするには
InstallReferrerReceiver
: Google アナリティクス レシーバーを呼び出します キャンペーン データを設定するには、次のコードをAndroidManifest.xml
ファイル:<!-- Used for install referrer tracking--> <service android:name="com.google.android.gms.tagmanager.InstallReferrerService" /> <receiver android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>
2. プロジェクトへのデフォルトのコンテナ ファイルの追加
Google タグ マネージャーでは、アプリの初回実行時にデフォルトのコンテナが使用されます。デフォルト 新しいコンテナを取得できるようになるとすぐに、コンテナは使用されなくなります。 接続します
デフォルトのコンテナ バイナリをダウンロードしてアプリケーションに追加するには:
- Google タグ マネージャーの管理画面にログインします。
- ダウンロードするコンテナのバージョンを選択します。
- [ダウンロード] ボタンをクリックしてコンテナ バイナリを取得します。
- ダウンロードしたコンテナ バイナリ ファイルを未加工リソースとしてプロジェクトに追加します。
- フォルダ内の
raw
サブフォルダが<project-root>/res/
が存在しない場合は、作成してください。 - 必要に応じてコンテナ バイナリ ファイルの名前を変更します。これは、 英小文字、数字、アンダースコアのみ使用できます
- コンテナ バイナリ ファイルをフォルダにコピーする
<project-root>/res/raw
。
- フォルダ内の
バイナリ ファイルの使用をおすすめしますが、コンテナにルールやタグが含まれていない場合は、 シンプルな JSON ファイルを使用することもできます。
3. Google タグ マネージャーを初期化する
アプリケーションで Google タグ マネージャーを初期化するには:
TagManager
シングルトンを取得します。TagManager tagManager = TagManager.getInstance(this);
TagManager
シングルトンを使用して、コンテナの読み込みをリクエストします。その際、 Google タグ マネージャーのコンテナ ID とデフォルトのコンテナ 表示されます。コンテナ ID は大文字で指定し、Google タグのコンテナ ID と完全に一致する必要があります。 マネージャー ウェブ インターフェースloadContainerPreferNonDefault()
の呼び出しは非ブロックである このメソッドは、 <ph type="x-smartling-placeholder"></ph>PendingResult
:PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.defaultcontainer_binary);
- を使用
ResultCallback
を呼び出して、ContainerHolder
読み込みが完了するかタイムアウトすると、次の処理が行われます。// The onResult method will be called as soon as one of the following happens: // 1. a saved container is loaded // 2. if there is no saved container, a network container is loaded // 3. the 2-second timeout occurs pending.setResultCallback(new ResultCallback<ContainerHolder>() { @Override public void onResult(ContainerHolder containerHolder) { ContainerHolderSingleton.setContainerHolder(containerHolder); Container container = containerHolder.getContainer(); if (!containerHolder.getStatus().isSuccess()) { Log.e("CuteAnimals", "failure loading container"); displayErrorToUser(R.string.load_error); return; } ContainerLoadedCallback.registerCallbacksForContainer(container); containerHolder.setContainerAvailableListener(new ContainerLoadedCallback()); startMainActivity(); } }, TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS, TimeUnit.MILLISECONDS);
ContainerHolder シングルトンを作成する
ContainerHolder
のインスタンスは、 説明します。そのため、上記の例ではContainerHolderSingleton
ユーティリティ クラスを使用しています。ContainerHolder
インスタンスへのアクセスを管理します。これが、ContainerHolderSingleton
クラスは次のようになります。package com.google.android.tagmanager.examples.cuteanimals; import com.google.android.gms.tagmanager.ContainerHolder; /** * Singleton to hold the GTM Container (since it should be only created once * per run of the app). */ public class ContainerHolderSingleton { private static ContainerHolder containerHolder; /** * Utility class; don't instantiate. */ private ContainerHolderSingleton() { } public static ContainerHolder getContainerHolder() { return containerHolder; } public static void setContainerHolder(ContainerHolder c) { containerHolder = c; } }
4. コンテナから構成値を取得する
コンテナが読み込まれたら、
Container.get<type>()
メソッド。構成値は、Terraform を使用して
Google タグ マネージャーの値コレクション変数。たとえば、次のメソッドで
UI 要素に使用することが決定された最新の色を取得し、
整数:
/** * Returns an integer representing a color. */ private int getColor(String key) { return colorFromColorName(containerHolder.getContainer().getString(key)); }
このコードは、コンテナから色名を取得するために次の 2 つの処理を行います。
- 次のコマンドを使用して、
ContainerHolder
からContainer
を取得します。 <ph type="x-smartling-placeholder"></ph>ContainerHolder.getContainer()
。 - 次を使用して色の値を取得します。
<ph type="x-smartling-placeholder"></ph>
Container.getString(key)
。ここで Google タグ マネージャーの管理画面でキーと値を定義した。
5. イベントと値を dataLayer にプッシュする
Google タグ マネージャーには dataLayer
もあり、ここから情報をプッシュできます。
アプリケーションに関する情報。アプリケーションの他の部分で読み込んだり、タグの配信に使用されたりします。
Google タグマネージャーの管理画面で設定した
タグが表示されます
dataLayer に値をプッシュする
dataLayer
は、使用可能な永続性レイヤを提供します。
Key-Value ペアをアプリケーションの他の部分で使用する
Google タグ マネージャー タグへの入力として使用します。
dataLayer
に値を push するには、次のパターンに従います。
- <ph type="x-smartling-placeholder"></ph>
DataLayer
シングルトン:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- を使用してイベントをプッシュする
DataLayer.push()
:// Put the image_name into the data layer for future use. TagManager.getInstance(this).getDataLayer().push(IMAGE_NAME_KEY, imageName);
dataLayer
から値を取得するには、次のコマンドを使用します。
<ph type="x-smartling-placeholder"></ph>
DataLayer.get(key)
。
dataLayer にイベントをプッシュする
dataLayer
にイベントを push すると、アプリケーション コードを
これらのイベントに応答して配信する
タグを指定できます
たとえば、Google アナリティクスのスクリーン ビュー トラッキングの呼び出しをアプリケーションにハードコードする代わりに、
スクリーン イベントを dataLayer
にプッシュし、
Google タグ マネージャーの管理画面。これにより、タグの変更や追加を柔軟に行うことができます。
画面イベントに応答する追加のタグを追加できます。アプリのコードを更新する必要はありません。
イベントを dataLayer
に push するには、次のパターンを使用します。
- <ph type="x-smartling-placeholder"></ph>
DataLayer
シングルトン:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- を使用してイベントをプッシュする
DataLayer.pushEvent()
:dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
<ph type="x-smartling-placeholder"></ph>
DataLayer.mapOf()
は、地図のレイヤを簡単に生成できるユーティリティ メソッドです。 イベントのプッシュと同時にdataLayer
を更新する Key-Value ペアです。
6. プレビュー、デバッグ、公開
あるバージョンのコンテナを公開する前に、プレビューして動作を確認できます 意図したとおりに操作しますGoogle タグ マネージャーでは、コンテナの各バージョンをプレビューできる ウェブ インターフェースでリンクと QR コードを生成し、それらを使用してアプリを開く。 詳細ログモードを有効にして、予期しない動作をデバッグすることもできます。
プレビューしています
コンテナのバージョンをプレビューするには、次の操作を行います。
- このプレビュー
Activity
をAndroidManifest
ファイルに追加します。<!-- Add preview activity. --> <activity android:name="com.google.android.gms.tagmanager.PreviewActivity" android:label="@string/app_name" android:noHistory="true"> <!-- optional, removes the previewActivity from the activity stack. --> <intent-filter> <data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> </activity>
次の行を変更して、アプリのパッケージ名を含めます。
<data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" />
- Google タグ マネージャーの管理画面でプレビュー リンクを生成する
<ph type="x-smartling-placeholder">
- </ph>
- Google タグ マネージャーにログインします。
- プレビューするコンテナのバージョンを選択します。
- プレビュー ボタンをクリックします
- アプリのパッケージ名を入力し、[Generate started preview link] をクリックします。
- 生成されたリンクまたは QR コードを使用してアプリを起動します
- プレビュー モードを終了するには、[終了プレビュー リンクを生成] で生成されたリンクを使用します ウェブ インターフェースの [ブロック] オプションで確認できます。
デバッグ
コンテナの実装のトラブルシューティングが必要な場合は、次のコマンドで詳細ログを有効にします。
<ph type="x-smartling-placeholder"></ph>
TagManager.setVerboseLoggingEnabled(true)
:
// Modify the log level of the logger to print out not only // warning and error messages, but also verbose, debug, info messages. tagManager.setVerboseLoggingEnabled(true);
公開
コンテナをプレビューし、意図したとおりに機能していることを確認したら、次のことができます。 コンテナを公開します。お客様の ユーザーが次回開いたときに、コンテナの設定値、タグ、イベントを コンテナが更新されますコンテナの更新の詳細を確認する。
詳細設定
以降のセクションでは、インフラストラクチャをさらにカスタマイズするために使用する高度な構成オプションについて説明します。 Google タグ マネージャーの実装。
コンテナの更新
デフォルトでは、コンテナは 12 時間ごとに更新されます。手動で更新するには
を使用します。
ContainerHolder.refresh()
:
ContainerHolderSingleton.getContainerHolder().refresh();
これはすぐには返されない非同期呼び出しです。ネットワーク トラフィックを減らすために、refresh()
が次の場合があります
15 分に 1 回しか呼び出されない場合、何も行われません。