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つのセクションがあります。
構成マッピング
config
セクションでは、クライアントID、APIキー、ログレベルなど、ベンダーSDKの初期化オプションを構成します。例えば、以下はアプリケーション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"
}
}
複合キー
Swiftライブラリのバージョン2.9.0とkotlinリモートコマンドモジュールのバージョン1.3.0から、他のDataLayer変数が特定の値と一致したときにもコマンドをトリガーすることができます。
これを行うには、データレイヤーキーとデータレイヤー値を含む複合キーを作成し、:
で区切ります。
例えば:
{
"commands": {
"screen_view:cart_view": "logevent"
}
}
この場合、リモートコマンドはデータレイヤーでscreen_view
を探し、見つかった場合、その値は文字列cart_view
と比較されます。
それらが同一であれば、リモートコマンドはlogevent
コマンドをトリガーします。
後方互換性と使いやすさのため、データレイヤーキーが指定されていない場合、tealium_event
が暗黙的に指定されます。したがって、これらの二つのコマンドは完全に同一です:
{
"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
}
}
}
これは、コマンドのペイロードに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からです。
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"))
remoteCommands.add(facebook)
}
構成ファイルをホストし、URLとしてアクセス可能にします。これはホストされたデータレイヤーを使用します。
ホストされた構成ファイルを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, filename = "facebook.json");
}
構成ファイルをホストし、URLとしてアクセス可能にします。これはホストされたデータレイヤーを使用します。
ホストされた構成ファイルを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年March月29日