高度な用途では、値を特定の方法で取り出したいことがあります。たとえば zaraz.track で商品リストを Zaraz に送っている一方で、送信先のサードパーティツールが商品の合計金額を求めている場合があります。値を小文字に変換するなど、加工したい場合もあります。
Cloudflare Zaraz は JSONata を使い、データに対する複雑な操作を可能にします。JSONata では Zaraz Context に対して式を評価でき、幅広い値へアクセスして加工できます。利用できる値と参照方法は、リファレンス全体 を確認してください。JSONata の機能については、JSONata のドキュメント ↗ も参照できます。
Zaraz で JSONata を使う手順は次のとおりです。
-
Cloudflare ダッシュボードで、Tag setup ページを開きます。
Settings を開く ↗ -
Tools configuration > Tools へ進みます。
-
すでに設定済みのツールの横にある Edit を選びます。
-
アクションを選ぶか、新しいアクションを追加します。
-
JSONata を使いたいフィールドを選び、JSONata 式を二重中括弧で囲みます。例:
{{ expression }}。
JSONata はトリガー、ツール設定、文字列変数の中でも使えます。
文字列を小文字に変換すると、正規表現などほかの値と比較しやすくなります。元の文字列が myCookie という Cookie から来る場合、{{ $lowercase(system.cookies.myCookie) }} で小文字にできます。
zaraz.ecommerce() で、次のようにカート内容を送っているとします。
zaraz.track('Product List Viewed',
{ products:
[
{
sku: '2671033',
name: 'V-neck T-shirt',
price: 14.99,
quantity: 3
},{
sku: '2671034',
name: 'T-shirt',
price: 10.99,
quantity: 2
},
],
}
);合計を表示したいフィールドには、{{ $sum(client.products.(price * quantity)) }} を入力します。各商品の価格に数量を掛け、その合計を求めます。