概要
データレイヤーは、アプリケーションに関する一般的な情報を保持する辞書です。
標準の鍵セットを使用しているため、この仕様を理解していれば誰でも読み取ることができます。データレイヤーの状態は 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
}
次の例は、配列とマップの結合の仕組みを示しています。元の dataLayer に以下が含まれているとします。
{
"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"}]}
}
push は同期的に行われます。push の後、変更がモデルに反映されました。
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 オブジェクトを使用します。
これは通常、同期呼び出しです。ただし、スレッドでプッシュの実行中に同じスレッドから別のプッシュが行われると、その 2 回目のプッシュは非同期になります(2 回目のプッシュは、データレイヤーに変更が加えられる前に返されます)。同じスレッドから 2 回目のプッシュが行われるのは、タグの配信に応じてデータレイヤーのプッシュが行われた場合などです。ただし、すべての更新は、最も外側の push リターンの前に処理されます。
update にキー event が含まれている場合は、ルールが評価され、一致するタグが配信されます。
- パラメータ:
-
update 処理する更新オブジェクト
| - (NSObject*) get: | (NSString *) | キー |
指定されたキーに関連付けられたモデル内のオブジェクトを返します。
キーが存在しない場合は、nil を返します。key が存在し、NSNull の場合は、NSNull を返します。
キーにピリオドを埋め込むことができます。たとえば、キー "a.b.c" は「c」の値を返します。キー「b」を持つ辞書のキーキー「a」を持つ辞書の必要があります。