これは、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.Callback
を openContainer(String, Container.Callback)
に渡すと確認できます。
デフォルト以外のコンテナが利用可能になるまで、または最新の新しいコンテナが利用可能になるまで、ブロックすることをおすすめします。ContainerOpener
は便利なユーティリティ クラスです。
必要なコンテナが見つかったら、close()
を呼び出します。
ネストクラスの概要
インターフェース | TagManager.Logger | error/warning/info/debug/verbose ロギング用のシンプルなインターフェースです。 | |
enum | TagManager.RefreshMode | コンテナを更新するモード。 |
パブリック メソッドの概要
コンテナ |
getContainer(String containerId)
|
コンテキスト | |
DataLayer | |
静的 TagManager |
getInstance(コンテキスト コンテキスト)
|
ロガー | |
TagManager.RefreshMode | |
コンテナ | |
void | |
void |
パブリック メソッド
public Container getContainer (文字列 containerId)
containerId
に関連付けられている開いているコンテナを返します。コンテナがまだ開いていない場合は null
を返します。
public コンテキスト getContext ()
このオブジェクトに関連付けられている保存済みコンテキストを返します。
public Container openContainer (String containerId、Container.Callback コールバック)
コンテナを返します。コンテナでさまざまなことが発生すると、コールバックが呼び出されます。少なくとも、openContainer は保存されたコンテナのバージョンの読み込みを試みます。保存されているバージョンがない場合や、保存されているバージョンが古い場合は、ネットワークからの読み込みが試行されます。
通常、返されるコンテナは空になりますが、読み込みは別のスレッドで行われるため、返されたコンテナは、返される前、返された後に、またはまったく更新されないことがあります(たとえば、コンテナの存続期間中にネットワーク接続がない場合など)。
指定された containerId
に対して 2 回目の openContainer
を呼び出すと、例外がスローされます。
パラメータ
containerId | 開くコンテナの ID |
callback | 読み込みプロセス中にさまざまなメソッドが呼び出されるオブジェクト。メソッドは異なるスレッドから呼び出される場合があることに注意してください。また、openContainer が返される前に呼び出すこともできます。 |