TAGManager クラス リファレンス


概要

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) ルーティンは、コンテナ内のそのマクロに関連付けられているルールに応じて、値コレクションのマクロ名の現在の値を返します。

たとえば、コンテナに、値が 32 のキー「speed」を持つ値収集マクロが「en」で、言語が「en」である値収集マクロと、値が 45 のキー「speed」を持つ値収集マクロと、言語が「en」以外の値収集マクロの場合、次の呼び出しを行います。

     [container longForKey:@"speed"]
 

デバイスの現在の言語が英語の場合は 32、英語以外の言語の場合は 45 を返します。

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

コンテナの初期バージョンはアプリケーションにバンドルされています。これは containerId という名前のバンドル内のリソースとして配置する必要があります。ここで、containerId は、この API 内で使用するコンテナ ID です。openContainerById:callback:(TAGManager)を呼び出すと、ルール、タグ、マクロのバンドルとともにコンテナが返されます。管理画面でコンテナを作成し、[ダウンロード] ボタンを使用してダウンロードします。

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

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

デフォルト以外のコンテナが利用可能になるまで、または最新の新しいコンテナが利用可能になるまでブロックした方がよい場合もあります。これを行うには、openContainerById:callback:(TAGManager)のコールバックを使用するか、TAGContainerOpener を使用します。

必要なコンテナがあれば、close(TAGContainer)を呼び出します。

パブリック メンバー関数

TAGContainer *)- openContainerById:callback:
 コンテナを返します。
TAGContainer *)- getContainerById:
 指定された containerId に関連付けられているコンテナを返します。コンテナがまだ開いていない場合は nil を返します。
(BOOL) - previewWithUrl:
 入力 URL でアプリをプレビューします。
(void) - dispatch
 タグ(任意のピクセル、分析ビーコンなど)によって生成された、保留中のネットワーク トラフィックをディスパッチします。
(void) - dispatchWithCompletionHandler:
 キュー内で次に保留しているネットワーク トラフィックをディスパッチし、リクエストが送信された(kTAGDispatchGood を返す)か、エラーが発生した(kTAGDispatchError を返す)ときに completionHandler を呼び出します。

静的パブリック メンバー関数

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

プロパティ

id< TAGLogger > >logger
 Google タグ マネージャー SDK で使用するロガー。
TAGRefreshModerefreshMode
 Google タグ マネージャー SDK で使用される更新モード。
TAGDataLayerdataLayer
 push:(TAGDataLayer)メソッドを呼び出して、イベントやその他のデータをプッシュします。
NSTimeInterval dispatchInterval
 この値が正の場合、トラッキング情報は dispatchInterval 秒ごとに自動的にディスパッチされます。

メンバー関数のドキュメント

- (TAGContainer *) openContainerById: (NSString *)  containerId
call (id< TAGContainerCallback >) callback

コンテナを返します。

通常、返されるコンテナは空になりますが、読み込みは非同期に行われるため、返されたコンテナは、返される前または返された後に更新される可能性があります。また、コンテナの存続期間中にネットワーク接続がない場合などは、まったく更新されない可能性もあります。

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

特定の containerId に対して openContainerById:callback: を再度呼び出した場合、その前に開かれたコンテナがすでに閉じられている場合を除き、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 のシングルトン インスタンス。
- (void)ディスパッチ

タグ(任意のピクセル、分析ビーコンなど)によって生成された、保留中のネットワーク トラフィックをディスパッチします。

-(void)dispatchWithCompleteHandler: (TAGDispatchResult) completionHandler

キュー内で次に保留しているネットワーク トラフィックをディスパッチし、リクエストが送信された(kTAGDispatchGood を返す)か、エラーが発生した(kTAGDispatchError を返す)ときに completionHandler を呼び出します。

ネットワーク接続がない場合、または送信するデータがない場合は、kTAGDispatchNoData を返します。

nil completeHandler を使用してこのメソッドを呼び出すことは、ディスパッチを呼び出す場合と同じです。

このメソッドは、iOS 7.0 以降でバックグラウンド データを取得するために使用できます。

アプリケーションの終了時に、送信されていない追跡情報の送信を開始するために呼び出すのが賢明です。


プロパティのドキュメント

- (id<TAGLogger>) logger [read, write, assign]

Google タグ マネージャー SDK で使用するロガー。

デフォルトでは、Google タグ マネージャーはエラー メッセージ、警告メッセージを記録し、情報メッセージ、デバッグ メッセージ、詳細メッセージを無視します。このプロパティを設定すると、カスタマイズした独自のロガーを使用できます。

- (TAGRefreshModerefreshMode [read, write, assign]

Google タグ マネージャー SDK で使用される更新モード。

この値を kTAGRefreshModeDefaultContainer に設定すると、更新メソッドで開発目的でデフォルトのコンテナのみを使用できます。デフォルトは kTAGRefreshModeStandard です。

- (TAGDataLayer*)dataLayer [read, assign]

push:(TAGDataLayer)メソッドを呼び出して、イベントやその他のデータをプッシュします。

-(NSTimeInterval)dispatchInterval [read, write, assign]

この値が正の場合、トラッキング情報は dispatchInterval 秒ごとに自動的にディスパッチされます。

正でない場合、手動でディスパッチを呼び出してトラッキング情報を送信してください。

デフォルトでは「120」に設定されており、トラッキング情報が 120 秒ごとに自動的にディスパッチされます。