測定タグ設定(sproket)

Sprocket

タグ設置例をご紹介しています。最新のタグはサービス提供元にお問い合わせください。

※コマースクリエイターと以前からの管理画面の「任意測定タグ」「任意アフィリエイト」では、利用できる置換文字が異なります。
移設の際にはプロモーション管理(測定タグ) 置換文字対照表をご参照ください。

以下の設定を設定>プロモーション>測定タグ設定【コマースクリエイター移行中(切替前)】構築>プロモーション管理>測定タグ設定(コマースクリエイター)にて行ってください。


コマースクリエイターで利用できるデータ項目

コマースクリエイターで連携できるデータ項目は、Sprocket社のページにてご覧ください。


測定タグ設定

利用設定

「利用する」「設定する」にチェックします。

設定名

「Sprocket(Web接客)」と入力します。

アカウント名

※コマースクリエイター切替前のみ

Sprocket管理画面>拡張設定>タグ情報のサービスIDを入力します。


置換文字設定

※コマースクリエイター運用中(新規・切替後)のみ

アカウント名

Sprocket管理画面>拡張設定>タグ情報のサービスIDを入力します。


共通出力

出力設定

<body>タグ内(<body>タグの後)に出力する」を選択してください。

出力内容

<script src="//assets.v2.sprocket.bz/js/sprocket-jssdk.js#config=//assets.sprocket.bz/config/{% analytics.account_id %}.json" charset="UTF-8"></script>
<script type="text/javascript">
(function() {
  if (Boolean({@ member.logged_in @})) {
    var propsIsLoggedIn = { isLoggedIn: Boolean({@ member.logged_in @}) };
    // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
    // console.log('Sprocket:Login  props:n' + JSON.stringify(propsIsLoggedIn, null, '  '));
    SPSDK.record('login', propsIsLoggedIn);
    var propsUser = {};
    if ('{@ member.id @}' !== '') {
      propsUser['userId'] = String('{@ member.id @}');
    }
    if ('{@ member.active_points @}' !== '') {
      propsUser['point'] = Number('{@ member.active_points @}');
    }
    if ('{@ member.stage_name @}' !== '') {
      propsUser['group'] = '{@ member.stage_name @}';
    }
    // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
    // console.log('Sprocket: User props:n' + JSON.stringify(propsUser, null, '  '));
    if (Object.keys(propsUser).length > 0) {
      SPSDK.user(propsUser);
    }
  } else {
    var propsIsLoggedIn = { isLoggedIn: Boolean({@ member.logged_in @}) };
    // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
    // console.log('Sprocket:Login  props:n' + JSON.stringify(propsIsLoggedIn, null, '  '));
    SPSDK.record('login', propsIsLoggedIn);
  }
})();
</script>

ショッピングカートページ

出力設定

<body>タグ内(</body>の前)に出力する」を選択してください。

出力内容

<script type="text/javascript">
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
      var items = [{% analytics.item_info %}];
      var props = {
        totalAmount: {% analytics.purchase_price_with_options_including_tax %},
        quantity: {% analytics.total_quantity %},
        items: items
      };
    // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
    // console.log('Sprocket: Cart props:n' + JSON.stringify(props, null, '  '));
    SPSDK.record('cart', props);
  }, 500);
})();
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    if (Boolean(true)) {
      // '20200101' -> '2020-01-01'
      var birthdayFormatter = function(rawBirthdayStr) {
        return rawBirthdayStr.slice(0,4) + '-' + rawBirthdayStr.slice(4,6) + '-' + rawBirthdayStr.slice(6,8);
      };

      // '20200101' -> '2020-01-01T00:00:00+09:00'
      var iso8601Formatter = function(rawDateStr) {
        return rawDateStr.slice(0,4) + '-' + rawDateStr.slice(4,6) + '-' + rawDateStr.slice(6,8) + 'T00:00:00+09:00';
      };    

      var propsPurchase = {};
      if ('{% analytics.member.times_purchased %}' !== '') {
        propsPurchase['totalCount'] = '{% analytics.member.times_purchased %}';
      }
      if ('{% analytics.first_buy_date %}' !== '') {
        propsPurchase['initialDate'] = iso8601Formatter('{% analytics.first_buy_date %}');
      }

      var propsUser = {};
      if ('{@ member.id @}' !== '') {
        propsUser['userId'] = String('{@ member.id @}');
      }
      if ('{% analytics.prefecture %}' !== '') {
        propsUser['prefecture'] = '{% analytics.prefecture %}';
      }
      if ('{% analytics.gender %}' !== '') {
        propsUser['gender'] = '{% analytics.gender %}';
      }
      if ('{% analytics.birthday %}' !== '') {
        propsUser['birthday'] = birthdayFormatter('{% analytics.birthday %}');
      }
      if (Object.keys(propsPurchase).length > 0) {
        propsUser['purchase'] = propsPurchase;
      }
      // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
      // console.log('Sprocket: User props:n' + JSON.stringify(propsUser, null, '  '));
      if (Object.keys(propsUser).length > 0) {
        SPSDK.user(propsUser);
      }
    }
  }, 500);
})();
</script>

商品情報置換文字の設定

{
        itemId: "{% analytics.product_id %}",
        name: "{% analytics.product_name %}".slice(0, 64),
        price: {% analytics.product.price_including_tax %},
        quantity: {% analytics.quantity %},
        category: "{% analytics.category.name %}"
}

区切り文字

「,」(半角カンマ)を入力します。


注文完了ページ

出力設定

<body>タグ内(</body>の前)に出力する」を選択してください。

出力内容

<script type="text/javascript">
(function() {
  var items = [{% analytics.item_info %}];
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    var props = {
      transactionId: "{% analytics.order_no %}",
      totalAmount : {% analytics.purchase_price_with_options_including_tax %},
      shippingFee : {% analytics.total_postage %},
      items: items
    };
    // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
    // console.log('Sprocket: Purchase props:n' + JSON.stringify(props, null, '  '));
    SPSDK.record('purchase', props);
  }, 500);
})();
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    if (Boolean(true)) {
      // '20200101' -> '2020-01-01'
      var birthdayFormatter = function(rawBirthdayStr) {
        return rawBirthdayStr.slice(0,4) + '-' + rawBirthdayStr.slice(4,6) + '-' + rawBirthdayStr.slice(6,8);
      };

      // '20200101' -> '2020-01-01T00:00:00+09:00'
      var iso8601Formatter = function(rawDateStr) {
        return rawDateStr.slice(0,4) + '-' + rawDateStr.slice(4,6) + '-' + rawDateStr.slice(6,8) + 'T00:00:00+09:00';
      };    

      var propsPurchase = {};
      if ('{% analytics.member.times_purchased %}' !== '') {
        propsPurchase['totalCount'] = {% analytics.member.times_purchased %};
      }
      if ('{% analytics.first_buy_date %}' !== '') {
        propsPurchase['initialDate'] = iso8601Formatter('{% analytics.first_buy_date %}');
      }

      var propsUser = {};
      if ('{@ member.id @}' !== '') {
        propsUser['userId'] = String('{@ member.id @}');
      }
      if ('{% analytics.prefecture %}' !== '') {
        propsUser['prefecture'] = '{% analytics.prefecture %}';
      }
      if ('{% analytics.gender %}' !== '') {
        propsUser['gender'] = '{% analytics.gender %}';
      }
      if ('{% analytics.birthday %}' !== '') {
        propsUser['birthday'] = birthdayFormatter('{% analytics.birthday %}');
      }
      if (Object.keys(propsPurchase).length > 0) {
        propsUser['purchase'] = propsPurchase;
      }
      // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
      // console.log('Sprocket: User props:n' + JSON.stringify(propsUser, null, '  '));
      if (Object.keys(propsUser).length > 0) {
        SPSDK.user(propsUser);
      }
    }
  }, 500);
})();
</script>

商品情報置換文字の設定

{
        itemId: "{% analytics.product_id %}",
        name: "{% analytics.product_name %}".slice(0, 64),
        price: Number({% analytics.product.price_including_tax %}),
        quantity: Number("{% analytics.quantity %}"),
        category: "{% analytics.category.name %}"
}

区切り文字

「,」(半角カンマ)を入力します。


メールマガジン申込完了

出力設定

<body>タグ内(</body>の前)に出力する」を選択してください。

出力内容

<script type="text/javascript">
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    if (Boolean(true)) {
      // '20200101' -> '2020-01-01'
      var birthdayFormatter = function(rawBirthdayStr) {
        return rawBirthdayStr.slice(0,4) + '-' + rawBirthdayStr.slice(4,6) + '-' + rawBirthdayStr.slice(6,8);
      };

      // '20200101' -> '2020-01-01T00:00:00+09:00'
      var iso8601Formatter = function(rawDateStr) {
        return rawDateStr.slice(0,4) + '-' + rawDateStr.slice(4,6) + '-' + rawDateStr.slice(6,8) + 'T00:00:00+09:00';
      };    

      var propsPurchase = {};
      if ('{% analytics.member.times_purchased %}' !== '') {
        propsPurchase['totalCount'] = {% analytics.member.times_purchased %};
      }
      if ('{% analytics.first_buy_date %}' !== '') {
        propsPurchase['initialDate'] = iso8601Formatter('{% analytics.first_buy_date %}');
      }

      var propsUser = {};
      if ('{@ member.id @}' !== '') {
        propsUser['userId'] = String('{@ member.id @}');
      }
      if ('{% analytics.prefecture %}' !== '') {
        propsUser['prefecture'] = '{% analytics.prefecture %}';
      }
      if ('{% analytics.gender %}' !== '') {
        propsUser['gender'] = '{% analytics.gender %}';
      }
      if ('{% analytics.birthday %}' !== '') {
        propsUser['birthday'] = birthdayFormatter('{% analytics.birthday %}');
      }
      if (Object.keys(propsPurchase).length > 0) {
        propsUser['purchase'] = propsPurchase;
      }
      // テスト時に変数の内容を確認したい場合、下記の行のコメントアウトを解除してください。本番公開時には消去してください。
      // console.log('Sprocket: User props:n' + JSON.stringify(propsUser, null, '  '));
      if (Object.keys(propsUser).length > 0) {
        SPSDK.user(propsUser);
      }
    }
  }, 500);
})();
</script>