概要
Google タグ マネージャー(GTM)のモバイル実装であるクラス。
使用例:
TAGContainer *container =
[[TAGManager instance] openContainerById:myContainerId];
NSString *value = [container stringForKey:@"myKey"];TAGDataLayer *dataLayer = [[TAGManager instance] dataLayer]; [dataLayer push:@{@"event": @"openScreen", @"screenName": @"Main Page"}];
コンテナとは、マクロ、ルール、タグをまとめたものです。GTM アプリケーション(http://www.google.com/tagmanager)内で作成され、コンテナ ID が割り当てられます。このコンテナ ID は、この API 内で使用される ID です。
TAGContainer クラスには、指定されたマクロ名が指定されたマクロ値を取得するためのメソッドが用意されています。ルーティン booleanForKey: (TAGContainer)、doubleForKey: (TAGContainer)、int64ForKey: (TAGContainer)、stringForKey: (TAGContainer) の各ルーティンは、コンテナ内の該当するマクロに関連付けられたルールに応じて、値コレクションのマクロ名の現在の値を返します。
たとえば、コンテナに値の収集マクロがあり、キーが「speed」であるとします。値は 32、有効化ルールは言語が「en」、キーと「speed」が指定された別の値収集マクロ値が 45 で、有効化ルールの言語が「en」でない場合、次の呼び出しを行います。
[container longForKey:@"speed"]
は、デバイスの現在の言語が英語の場合は 32、そうでない場合は 45 を返します。
データレイヤは、アプリケーションに関する一般的な情報を保持するマップです。TAGDataLayer クラスは、データレイヤーのデータのプッシュと取得を行うメソッドを提供します。event キーをデータレイヤーにプッシュすると、このイベントに一致するタグが配信されます。
コンテナの初期バージョンは、アプリケーションにバンドルされています。これは、containerId という名前のバンドルのリソースとして配置する必要があります。ここで、containerId は、この API で使用するコンテナ ID と同じです。openContainerById:callback: (TAGManager) を呼び出すと、バンドルされたルール/タグ/マクロとともにコンテナが返されます。UI でコンテナを作成し、[Download] ボタンを使用してダウンロードします。
UI でコンテナを変更し、新しいバージョンを公開できます。次回にモバイルアプリがネットワークからコンテナを更新するとき(現在は 12 時間ごと)に、新しいバージョンが取得されます。get... ルーチンのいずれかを呼び出すと、最新のルールを使用して値が計算されます。
ダウンロードしたコンテナはローカルに保存されます。openContainerById:callback: (TAGManager) を呼び出すと、まずデフォルトのコンテナが読み込まれ、次に保存されたコンテナは非同期で読み込まれます。見つからない場合、または 12 時間以上経過している場合は、ネットワークから新しいバージョンの取得が試みられます。非同期読み込みのステータスを確認するには、TAGContainerCallback を openContainerById:callback: (TAGManager) に渡します。
場合によっては、デフォルト以外のコンテナが使用可能になるまで、または最新の新しいコンテナが使用可能になるまで、ブロックすることをおすすめします。そのためには、openContainerById:callback: (TAGManager) のコールバックを使用するか、TAGContainerOpener を使用します。
コンテナが完成したら、close(TAGContainer)を呼び出します。
パブリック メンバーの関数 | |
| (TAGContainer *) | - openContainerById:callback: |
| コンテナを返します。 | |
| (TAGContainer *) | - getContainerById: |
指定された containerId に関連付けられているコンテナを返します。コンテナがまだ開いていない場合は、nil を返します。 | |
| (BOOL) | - previewWithUrl: |
| 入力 URL を使用してアプリをプレビューします。 | |
| (void) | - dispatch |
| タグ(任意のピクセル、分析ビーコンなど)によって生成された保留中のネットワーク トラフィックをディスパッチします。 | |
| (void) | - dispatchWithCompletionHandler: |
| キュー内の次に保留中のネットワーク トラフィックをディスパッチします。リクエストが送信されたとき(kTAGDispatchGood を返す)か、エラーが発生したとき(kTAGDispatchError を返す)に、completeHandler を呼び出します。 | |
静的パブリック メンバー関数 | |
| (TAGManager *) | + インスタンス |
| TAGManager クラスのシングルトン インスタンスを取得し、必要に応じて作成します。 | |
プロパティ | |
| idTAGLogger > | ロガー |
| Google タグ マネージャー SDK に使用するロガー。 | |
| TAGRefreshMode | refreshMode |
| Google タグ マネージャー SDK で使用される更新モード。 | |
| TAGDataLayer * | dataLayer |
| push: (TAGDataLayer) メソッドを呼び出して、イベントやその他のデータをプッシュします。 | |
| NSTimeInterval | dispatchInterval |
| この値が正の場合、トラッキング情報は dispatchInterval 秒ごとに自動的にディスパッチされます。 | |
メンバー関数のドキュメント
| - (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| 次のコールバックを使用します。 | (id< TAGContainerCallback >) | コールバック | |
コンテナを返します。
通常、返されるコンテナは空になりますが、読み込みは非同期で行われるため、返されるコンテナは、返される前または返却後に更新される場合があります。たとえば、コンテナの存続期間中にネットワーク接続がない場合、コンテナは更新されない可能性があります。
コールバックはコンテナでのさまざまな処理に応じて呼び出されます。少なくとも、openContainerById:callback: は、保存されたコンテナのバージョンの読み込みを試行します。保存されたバージョンがない場合、または保存されたバージョンが古くなっている場合は、ネットワークから読み込みが試行されます。
指定された containerId に対して openContainerById:callback: が 2 回呼び出されると、前に開いたコンテナがすでに閉じられていない限り、nil が返されます。
- パラメータ:
-
containerId 開くコンテナの ID。 callback 読み込みプロセス中にさまざまなメソッドが呼び出されるオブジェクト。これらのメソッドは、異なるスレッドから呼び出される場合があります。また、openContainerById:callback: を返す前に呼び出すこともできます。
- 戻り値:
- 開いているコンテナ。
| - (TAGContainer *) getContainerById: | (NSString *) | containerId |
指定された containerId に関連付けられているコンテナを返します。コンテナがまだ開いていない場合は、nil を返します。
| -(BOOL)previewWithUrl: | (NSURL *) | url |
入力 URL を使用してアプリをプレビューします。
有効な URL の先頭は以下でなければなりません。
tagmanager.c.<app_name>://preview/p?id=
ここで <app_name>アプリケーション名です。
- パラメータ:
-
URL プレビュー URL。
- 戻り値:
- URL が有効なタグ マネージャーのプレビュー URL の場合は「はい」。
| + (TAGManager *) インスタンス |
TAGManager クラスのシングルトン インスタンスを取得し、必要に応じて作成します。
- 戻り値:
- TAGManager のシングルトン インスタンス。
| - (void) ディスパッチ |
タグ(任意のピクセル、分析ビーコンなど)によって生成された保留中のネットワーク トラフィックをディスパッチします。
| - (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
キュー内の次に保留中のネットワーク トラフィックをディスパッチします。リクエストが送信されたとき(kTAGDispatchGood を返す)か、エラーが発生したとき(kTAGDispatchError を返す)に、completeHandler を呼び出します。
ネットワーク接続がない場合、または送信するデータがない場合は、kTAGDispatchNoData が返されます。
nil completeHandler を使用してこのメソッドを呼び出すことは、ディスパッチを呼び出す場合と同じです。
このメソッドは、iOS 7.0 以降でのバックグラウンド データの取得に使用できます。
お申し込みが終了した時点でこのイベントを呼び出し、未送信のトラッキング情報の送信を開始するのが賢明です。
プロパティのドキュメント
Google タグ マネージャー SDK に使用するロガー。
デフォルトでは、エラー メッセージと警告メッセージはログに記録され、info メッセージ、debug メッセージ、詳細メッセージは無視されます。このプロパティを設定すると、独自のカスタマイズされたロガーを使用できます。
- (TAGRefreshMode) refreshMode [read, write, assign] |
Google タグ マネージャー SDK で使用される更新モード。
これを kTAGRefreshModeDefaultContainer に設定すると、更新メソッドは開発目的でデフォルトのコンテナのみを使用できます。デフォルトは kTAGRefreshModeStandard です。
- (TAGDataLayer*) dataLayer [read, assign] |
push: (TAGDataLayer) メソッドを呼び出して、イベントやその他のデータをプッシュします。
- (NSTimeInterval) dispatchInterval [read, write, assign] |
この値が正の場合、トラッキング情報は dispatchInterval 秒ごとに自動的にディスパッチされます。
正でない場合、手動でディスパッチを呼び出してトラッキング情報を送信してください。
デフォルトでは `120` に設定されています。これは、トラッキング情報が 120 秒ごとに自動的にディスパッチされることを示します。