JSONファイル
JSONファイルを使用してリモートコマンドを設定します。
要件
- Tealium for Android-Kotlin (1.0.0+)
- Tealium for Android-Java (5.9.0+)
- Tealium for iOS-Swift (2.0.0+)
静的マッピングと複合コマンドキーには、ライブラリのより高いバージョンが必要です。
- Tealium Remote Commands for Android-Kotlin (1.3.0+)
- Tealium for iOS-Swift (2.9.0+)
JSONファイル
JSONファイルを使用してベンダーの統合を設定します。
このファイルをアプリ内でローカルに読み込むか、リモートホストされたURLから読み込むことができます。 ファイルをローカルに読み込む場合は、アプリケーションにバンドルされ、その名前をコード内のリモートコマンドに渡す必要があります。
各ベンダー統合のためにJSONテンプレートファイルが用意されています。各JSONテンプレートファイルには、config
、mappings
、commands
の3つのメインセクションとオプションのstatics
セクションがあります。
設定マッピング
config
セクションでは、ベンダーSDKの初期化オプション(クライアントID、APIキー、ログレベルなど)を設定します。次の例では、アプリケーションIDを設定しています。
{
"config": {
"applicationid": "appid123"
}
}
データマッピング
mappings
セクションでは、データマッピングを定義します。次のマッピングでは、データレイヤー変数product_id
をベンダーパラメーターparam_item_id
に割り当てています。
{
"mappings": {
"product_id": "param_item_id"
}
}
ベンダーパラメーターは、ドット表記法を使用してペイロード内の特定のオブジェクトにマッピングをスコープするためにプレフィックスを使用することができます。プレフィックスはオブジェクトを定義し、.
の右側の値はオブジェクトのプロパティになります。次のマッピングでは、product_id
をevent
オブジェクトのparam_item_id
変数に割り当てています。リモートコマンドパーサーは、param_item_id
を持つevent
オブジェクトを作成します。
{
"mappings": {
"product_id": "event.param_item_id"
}
}
オブジェクトのプレフィックスは通常、event.
、product.
、purchase.
ですが、ベンダー統合に使用されるオブジェクトのプレフィックスは任意のカスタムオブジェクト名にすることもできます。ベンダー統合に使用されるオブジェクトのプレフィックスについては、JSONテンプレートファイルを参照してください。
コマンド
commands
セクションでは、Tealiumのイベント名をベンダーのイベントにマッピングします。基本的な実装では、キーはTealiumのイベント名であり、右側の値はベンダーのメソッドのTealiumラッパーです。次の例では、Tealiumのイベントcart_add
をベンダーメソッドlogevent
にマッピングしています。
{
"commands": {
"cart_add": "logevent"
}
}
すべてのイベント - すべてのビュー
すべてのイベントと/またはすべてのビューを特定のコマンドにマッピングする場合は、all_events
またはall_views
をコマンドキーとして指定します。
{
"commands": {
"all_events": "logevent",
"all_views": "logevent"
}
}
複合キー
Swiftライブラリのバージョン2.9.0以降とKotlinリモートコマンドモジュールのバージョン1.3.0以降では、他のDataLayer変数が特定の値に一致する場合にコマンドをトリガーすることもできます。
これを行うには、データレイヤーキーとデータレイヤーの値を:
で区切って含む複合キーを作成する必要があります。
例:
{
"commands": {
"screen_view:cart_view": "logevent"
}
}
この場合、リモートコマンドはデータレイヤーでscreen_view
を検索し、見つかった場合はその値を文字列cart_view
と比較します。
一致する場合、リモートコマンドはlogevent
コマンドをトリガーします。
互換性のため、および使用の簡便さのために、データレイヤーキーが指定されていない場合、tealium_event
が暗黙的に指定されます。したがって、次の2つのコマンドは完全に同じです。
{
"commands": {
"cart_add": "logevent",
"tealium_event:cart_add": "logevent"
}
}
一つのコマンドをトリガーするために複数の条件を持ちたい場合は、カンマで区切ってdataLayerKey:dataLayerValue
のリストを作成します。
例:
{
"commands": {
"screen_view:cart_view,cart_is_empty:false": "logevent"
}
}
この場合、logevent
コマンドはscreen_view==cart_view
かつcart_is_empty==false
の両方の条件が一致した場合にのみトリガーされます。
デリミタの上書き
Swift SDKのバージョン2.9.1以降では、デフォルトのデリミタを上書きして、データレイヤーの値にカンマやコロンが含まれている場合に独自のデリミタを使用することができます。
JSONの設定部分にkeys_equality_delimiter
とkeys_separation_delimiter
のキーを追加して、好みの文字列でデリミタを上書きします。デリミタを上書きする場合は、複合キーでもそれらを使用する必要があります。
{
"config": {
"keys_equality_delimiter": "==",
"keys_separation_delimiter": "&&"
...
},
"commands": {
"screen_view==cart_view&&cart_is_empty==false": "logevent"
}
}
静的マッピング
複合キーを使用するもう一つの機能は、静的マッピングです。これにはSwift 2.9.0+およびKotlin 1.3.0+が必要です。
静的マッピングを使用すると、リモートコマンドが使用するためにデータレイヤーに静的な値を追加することができます。
他のマッピングやコマンドは、これらの値を使用して他のコマンドをトリガーしたり、パラメーターを追加したりすることができます。
例:
{
"statics": {
"screen_view:cart_view,cart_is_empty:false": {
"possible_buyer": true,
"apply_discount_percentage": 20.0
}
}
}
これにより、2つのキーpossible_buyer
とapply_discount_percentage
がコマンドのペイロードにそれぞれの値(trueと20.0)とともに追加されます。複合キーの両方の条件が一致すると想定されます。
例
次はJSON設定の例です。
{
"config": {
"analytics_enabled": "true",
"session_timeout_seconds": "30",
"log_level": "max",
"minimum_seconds": "100",
...
},
"mappings": {
"event_title": "event_name",
"product_brand": "event.param_item_brand",
"product_category": "event.param_item_category",
"product_id": "event.param_item_id",
"product_list": "event.param_item_list",
"product_location_id": "event.param_item_location_id",
"product_name": "event.param_item_name",
"product_variant": "event.param_item_variant",
"purchase_type": "event.purchase_type",
...
},
"commands": {
"launch": "config",
"cart_add": "logevent",
"screen_view:homepage": "logview"
...
},
"statics": {
"screen_view:homepage,tealium_event:cart_add": {
"purchase_type": "fast"
},
"screen_view:product_detail,tealium_event:cart_add": {
"purchase_type": "slow"
}
...
}
}
読み込みオプション
JSON設定ファイルを読み込む方法には2つのオプションがあります:ローカルファイルとホストされたURL。
ローカルファイルコマンド
アプリケーション内にリモートコマンドの設定JSONをバンドルし、その名前をRemoteCommandの初期化メソッドに渡します。
TealiumSwift 2.13.0以降とTealiumKotlin RemoteCommandDispatcher 1.4.0以降では、ローカルRemoteCommandsに対して、拡張子の有無の両方の名前を受け入れるようになりました。
それ以前のバージョンのライブラリを使用している場合は、iOSでは拡張子なしの名前を、Kotlinでは拡張子を含む名前を渡す必要があります。
これは、特定のネイティブTealiumライブラリに依存するため、すべてのクロスプラットフォームライブラリに当てはまります。
iOS(Swift)アプリ内に保存されたローカル設定ファイルを使用するには:
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT")
config.dispatchers = [Dispatchers.TagManagement, Dispatchers.RemoteCommands]
config.remoteAPIEnabled = true
tealium = Tealium(config: config) { _ in
guard let remoteCommands = self.tealium?.remoteCommands else {
return
}
let facebook = FacebookRemoteCommand(type: .local(file: "facebook")) // またはTealiumSwift 2.13.0+では同等の "facebook.json"
remoteCommands.add(facebook)
}
Android(Kotlin)アプリ内に保存されたローカル設定ファイルを使用するには:
val config = TealiumConfig(application,
"ACCOUNT", "PROFILE",
Environment.DEV,
dispatchers = mutableSetOf(Dispatchers.RemoteCommands));
var tealium = Tealium.create(TEALIUM_MAIN, config) {
val facebook = FacebookRemoteCommand(this);
remoteCommands?.add(facebook, filename = "facebook.json") // またはTealiumKotlin RemoteCommandDispatcher 1.4.0+では同等の "facebook"
}
リモートURLコマンド
ホストされたデータレイヤーを使用して、URLからアクセス可能な設定ファイルをホストします。
TealiumSwift 2.13.0以降とTealiumKotlin RemoteCommandDispatcher 1.4.0以降では、URL RemoteCommandsに対して、JSON設定がダウンロードできない場合(またはダウンロード中である間)に使用されるバックアップのローカルリモートコマンドを提供することもできます。
そのために、ローカルコマンドのためにJSONファイルをバンドルします。バックアップとして、AndroidとiOSプラットフォームは、追加するリモートコマンドのcommandId
で指定された名前の設定ファイルを探します。オプションで、Androidの場合はファイル名が利用可能な場合には、ファイル名をバンドルと一緒に渡すことで、commandId
の代わりにファイル名が使用されます。
ホストされた設定ファイルをiOS(Swift)アプリで使用するには:
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT")
config.dispatchers = [Dispatchers.TagManagement, Dispatchers.RemoteCommands]
config.remoteAPIEnabled = true
tealium = Tealium(config: config) { _ in
guard let remoteCommands = self.tealium?.remoteCommands else {
return
}
let facebook = FacebookRemoteCommand(type: .remote(url: "https://tags.tiqcdn.com/dle/ACCOUNT/PROFILE/facebook.json"))
remoteCommands.add(facebook)
}
ホストされた設定ファイルをAndroid(Kotlin)アプリで使用するには:
val config = TealiumConfig(application,
"ACCOUNT", "PROFILE",
Environment.DEV,
dispatchers = mutableSetOf(Dispatchers.RemoteCommands));
var tealium = Tealium.create(TEALIUM_MAIN, config) {
val facebook = FacebookRemoteCommand(this);
remoteCommands?.add(facebook, remoteUrl = "https://tags.tiqcdn.com/dle/ACCOUNT/PROFILE/facebook.json")
}
最終更新日 :: 2024年November月6日