TAGDataLayer クラス リファレンス

TAGDataLayer クラス リファレンス

概要

データレイヤーは、アプリケーションに関する一般的な情報を保持する辞書です。

標準の鍵セットを使用するため、仕様を理解しているすべての当事者が読み取ることができます。データレイヤーの状態は API を通じて更新されます。たとえば、アプリは次の dataLayer で開始される場合があります。

   {
     title: "Original screen title"
   }

アプリの状態やデータは変更される可能性があるため、アプリは次のような呼び出しで dataLayer を更新できます。

   [dataLayer push:@{@"title": @"New screen title"}];

データレイヤには次のものが含まれます。

   {
     title: "New screen title"
   }

別の push が行われた後:

   [dataLayer push:@{@"xyz": @3}];

dataLayer には以下が含まれます。

   {
     "title": "New screen title",
     "xyz": 3
   }

次の例は、配列とマップの統合の仕組みを示しています。元のデータレイヤに以下が含まれている場合:

   {
     "items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}]
   }

このプッシュが行われると、次のようになります。

   [dataLayer push:@{@"items":
       @[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}

dataLayer には次のものが含まれます。

   {
     "items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]}
   }

プッシュは同期的に行われ、プッシュ後に変更がモデルに反映されます。

event キーがデータレイヤーにプッシュされると、タグのルールが評価され、このイベントに一致するタグが配信されます。たとえば、トリガールールが「event」が「openScreen」に等しいタグを持つコンテナの場合、この push 後に次のように処理されます。

   [dataLayer push:@{@"event", @"openScreen"}];

タグが配信されます。

パブリック メンバー関数

(void) - pushValue:forKey:
 Key-Value ペアをデータレイヤにプッシュします。
(void) - push:
 指定された update オブジェクトを既存のデータモデルにマージし、(マージ後に)更新をリスナーに呼び出します。
(NSObject *) - get:
 指定されたキーに関連付けられているモデル内のオブジェクトを返します。

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

- (void) pushValue: (NSObject *)  value
forKey: (NSObject *) キー

Key-Value ペアをデータレイヤにプッシュします。

これは、push:@{key: value} を呼び出す便利なメソッドです。

- (void) push: (NSDictionary *)  update

指定された update オブジェクトを既存のデータモデルにマージし、(マージ後に)更新をリスナーに呼び出します。

辞書(または埋め込まれた配列)内の値が NSNull 型であることは有効です。欠落値(リスト内の空のインデックスなど)を表すには、kTAGDataLayerObjectNotPresent オブジェクトを使用します。

これは通常、同期呼び出しです。ただし、スレッドが push を実行している間に、同じスレッドから別の push が発生した場合、その 2 番目の push は非同期になります(2 番目の push は、データレイヤに変更が加えられる前に返されます)。同じスレッドから 2 回目のプッシュが行われるのは、タグの配信に応じてデータレイヤーのプッシュが行われた場合などです。ただし、すべての更新は、最も外側の push が返される前に処理されます。

update にキー event が含まれている場合、ルールが評価され、一致するタグが配信されます。

パラメータ:
update処理する更新オブジェクト
- (NSObject*) get: (NSString *)  キー

指定されたキーに関連付けられているモデル内のオブジェクトを返します。

キーが存在しない場合、nil が返されます。key は存在するが NSNull の場合は、NSNull を返します。

キーにピリオドを埋め込むことができます。たとえば、キー "a.b.c" は、モデルでキー「a」を持つ辞書でキー「b」を持つ辞書内のキー「c」の値を返します。