カスタムイベントタグを利用して、カート内の商品情報をKARTEに送信します。
カートの情報が取得できることで、カート落ち施策などの強力な施策が実行できるようになります。

カートタグを実行するタイミング

  • KARTEでは、カートの状態が変更される全てタイミングでカートタグを実行することを推奨しています
      • 商品詳細ページでカートに商品が追加されたとき
      • カートページでカート内商品が削除されたとき
      • 購入完了ページでカートが空になったとき
  • 実装が難しい場合、カートページでカート内商品の情報を取得するためのタグを実行するだけでも、ユーザーがカートに入れた商品の傾向を元にセグメントを切ることができます
    • ただし、「カート落ち」の施策などをすることはできません
カートタグを含むカスタムイベントタグは、必ず計測タグの後に実行されるように設置する必要があります

cartイベントのリファレンス

カートタグでは、cartというイベント名で下記のフィールドを連携することを推奨しています。

フィールド名 概要
price カート内合計金額。税額、送料、手数料抜きを推奨しています。 10000 数値
quantity カート内合計商品点数 3 数値
status カート内に商品があるかどうか。購入やカート内商品削除によってカートが空になったタイミングで毎回falseで連携してください true 真偽値
items itemsというパラメータに個別商品データをセットしてください。 - Objectの配列
items.item_id アイテムのユニークIDです。SKUなどを入れてください。 0000 文字列
items.name 商品名 KARTE Tシャツ 文字列
items.price 商品価格 5000 数値
items.quantity 購入商品数 2 数値
items.category 商品カテゴリ catA 文字列
items.brand 商品ブランド brandA 文字列
items.item_url 商品詳細ページURL http://example.com/item/0000 文字列
items.item_image_url 商品画像URL http://example.com/images/item_0000.jpg 文字列
item_ids item.item_idの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 文字列の配列
item_names item.nameの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 文字列の配列
item_prices item.priceの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 数値の配列
item_quantities item.quantityの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 数値の配列
item_urls item.item_urlの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 文字列の配列
item_image_urls item.item_image_urlの値の配列(主にかご落ち施策でのユーザー情報変数で利用) - 文字列の配列

上記の例以外にも、フィールドは自由に追加することが可能です。

カート落ちの計測について

「カート落ち」を計測する場合、cartイベントでstatusというフィールドを正しく連携する必要があります。

  • status: trueでタグ実行するときは?
    • カート内商品を追加/削除したタイミングで、カート内商品が1点以上残っている場合
  • status: falseでタグ実行する場合
    • カート内商品を削除したタイミングで、カート内商品が1点も残っていない場合
    • 購入完了時(カートが空になるため)

statusフィールドを計測することで、下記のような状態をKARTE上で識別できます。

  • cartイベントのstatustrueであれば、「カートに商品が入っているが購入完了していないユーザー」
  • cartイベントのstatusfalseであれば、「カートに商品が入っていないユーザー」
- カート内の商品を追加/削除した場合も、差分ではなくカート内商品全てのデータを連携してください
- 商品一覧や商品詳細ページからカートに遷移することなく商品を投入できる場合も、カート内の最新のデータが送信されるようにしてください

カートタグの実装サンプル

カート内商品を追加/削除したタイミングで、カート内商品が1点以上残っている場合に実行するタグ

下記はサンプルコードになります。このままコピー&ペーストをしても動作しません。
発生したカート情報にあわせて、値を出力する必要があることに注意してください。
<script type="text/javascript">
try{
  // 実際のアイテム数に応じて、全てのアイテム情報を出力してください
  var items = [{
    item_id: '001',
    name: 'XXXXXXXXXXXXX',
    price: 3132,
    quantity: 1,
    item_url: 'XXXXXXXXXX',
    item_image_url: 'XXXXXXXXX'
  }, {
    item_id: '002',
    name: 'XXXXXXXXXXXXX',
    price: 6372,
    quantity: 1,
    item_url: 'XXXXXXXXXX',
    item_image_url: 'XXXXXXXXX'
  }];

  // itemsの各フィールド毎の値の配列を生成(カート落ち施策等で利用)
  var item_ids = items.map( function(item) { return item.item_id; });
  var item_names = items.map( function(item) { return item.name; });
  var item_prices = items.map( function(item) { return item.price; });
  var item_quantities = items.map( function(item) { return item.quantity; });
  var item_urls= items.map( function(item) { return item.item_url; });
  var item_image_urls = items.map( function(item) { return item.item_image_url; });

  tracker.track("cart", {
    price: 9504,
    quantity: 2,
    status: true,
    items: items,
    item_ids: item_ids,
    item_names: item_names,
    item_prices: item_prices,
    item_quantities: item_quantities,
    item_urls: item_urls,
    item_image_urls: item_image_urls
  });
}catch(e){
  if('tracker' in window){
    tracker.track('_error',{
      error_message: e.message
    });
  }
}
</script>

カートが空になったタイミングで実行するタグ

<script type="text/javascript">
try{
  tracker.track('cart', {
    status: false,
    price: 0,
    quantity: 0,
    items: [''],
    item_ids: [''],
    item_names: [''],
    item_prices: [''],
    item_quantities: [''],
    item_urls: [''],
    item_image_urls: ['']
  });
}catch(e){
  if('tracker' in window){
    tracker.track('_error',{
      error_message: e.message
    });
  }
}
</script>