TagManager

public クラス TagManager

これは、Google タグ マネージャー(GTM)のモバイル実装です。使用例:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
コンテナは、マクロ、タグ、ルールのコレクションです。これは GTM アプリケーション内で作成され、コンテナ ID が割り当てられます。 このコンテナ ID は、この API 内で使用されます。

Container クラスは、キーで指定された値を取得するためのメソッドを提供します。ルーティン getBoolean(String)getDouble(String)getLong(String)getString(String) は、コンテナに関連付けられたルールに応じて、値コレクションマクロのキーの現在の値を返します。

たとえば、コンテナに、値が 32 のキー speed を含む値収集マクロがあり、有効化ルールが Language であり、値が 45 のキー speed を含む別の値収集マクロがあり、有効化ルールが Language でない場合、次の呼び出しを行うと、デバイスの現在の言語が英語の場合は 32 が、英語以外の言語の場合は 45 が返されます。

 container.getLong("speed")

データレイヤは、アプリに関する汎用情報を保持するマップです。DataLayer クラスは、データレイヤに対してデータを push および取得するためのメソッドを提供します。event キーをデータレイヤーにプッシュすると、このイベントに一致するタグが配信されます。

コンテナの初期バージョンはアプリケーションにバンドルされています。これは、tagmanager/containerId という名前のアセットとして配置する必要があります。containerId は、この API 内で使用するコンテナ ID です。openContainer(String, Container.Callback) を呼び出すと、バンドルされたルール/マクロとともにコンテナが返されます。管理画面でコンテナを作成し、[ダウンロード] ボタンを使用してダウンロードします。

管理画面でコンテナを変更して、新しいバージョンを公開できます。この場合、次回モバイルアプリがネットワークからコンテナを更新したとき(現時点では 12 時間ごと)、その新しいバージョンが取得されます。get... ルーティンのいずれかを呼び出すと、最新のルールを使用して値が計算されます。

ダウンロードしたコンテナはローカルに保存されます。openContainer(String, Container.Callback) を呼び出すと、最初にデフォルトのコンテナが読み込まれ、その後、保存したコンテナが非同期で読み込まれます。見つからない場合、または 12 時間以上経過している場合は、ネットワークから新しいバージョンを取得しようとします。 このような非同期読み込みのステータスは、Container.CallbackopenContainer(String, Container.Callback) に渡すと確認できます。

デフォルト以外のコンテナが利用可能になるまで、または最新の新しいコンテナが利用可能になるまで、ブロックすることをおすすめします。ContainerOpener は便利なユーティリティ クラスです。

必要なコンテナが見つかったら、close() を呼び出します。

ネストクラスの概要

インターフェース TagManager.Logger error/warning/info/debug/verbose ロギング用のシンプルなインターフェースです。
enum TagManager.RefreshMode コンテナを更新するモード。

パブリック メソッドの概要

コンテナ
getContainerString containerId
コンテキスト
DataLayer
静的 TagManager
getInstanceコンテキスト コンテキスト
ロガー
TagManager.RefreshMode
コンテナ
openContainerString containerIdContainer.Callback callback
void
setLoggerLogger logger
void

パブリック メソッド

public Container getContainer 文字列 containerId

containerId に関連付けられている開いているコンテナを返します。コンテナがまだ開いていない場合は null を返します。

public コンテキスト getContext ()

このオブジェクトに関連付けられている保存済みコンテキストを返します。

public DataLayer getDataLayer ()

タグ マネージャーで使用されるデータレイヤー オブジェクトを返します。

public static TagManager getInstance コンテキスト コンテキスト

TagManager クラスのシングルトン インスタンスを取得し、必要に応じて作成します。

public ロガー getLogger ()

タグ マネージャーが使用しているロガーを返します。

public TagManager.RefreshMode getRefreshMode ()

すべてのコンテナに使用される更新モードを返します。

public Container openContainer String containerIdContainer.Callback コールバック

コンテナを返します。コンテナでさまざまなことが発生すると、コールバックが呼び出されます。少なくとも、openContainer は保存されたコンテナのバージョンの読み込みを試みます。保存されているバージョンがない場合や、保存されているバージョンが古い場合は、ネットワークからの読み込みが試行されます。

通常、返されるコンテナは空になりますが、読み込みは別のスレッドで行われるため、返されたコンテナは、返される前、返された後に、またはまったく更新されないことがあります(たとえば、コンテナの存続期間中にネットワーク接続がない場合など)。

指定された containerId に対して 2 回目の openContainer を呼び出すと、例外がスローされます。

パラメータ
containerId 開くコンテナの ID
callback 読み込みプロセス中にさまざまなメソッドが呼び出されるオブジェクト。メソッドは異なるスレッドから呼び出される場合があることに注意してください。また、openContainer が返される前に呼び出すこともできます。

public void setLogger Logger logger

タグ マネージャーで使用されている既存のロガーに代わるものです。

public void setRefreshMode TagManager.RefreshMode mode

すべてのコンテナに使用される更新モードを設定します。