Facebook Conversion APIやGoogleの拡張コンバージョン等のコンバージョン補完コネクタで必要なtransaction_idの設定方法を紹介します。

※作成時期の関係で画面のスクリーンショットが実際ご自身で操作する画面と異なっている可能性がございます。

※なお、本ドキュメントでの設定方法は媒体タグならびにKARTE計測タグが同一のGTMコンテナ内で設定できる場合に限ります。
GoogleTagManager360をお使いのお客様でゾーン設定ができている場合についてはその限りではありません。

事前準備

組み込み変数にContainer IDが表示されているかご確認ください。表示されていない場合は設定をクリックいただきContainer IDのチェックボックスをチェックいただければ表示されます。
また、dataLayer変数としてGTMにユーザーIDを送っている、またはGTMの変数にユーザーIDが設定されているかご確認ください。(ユーザーIDを送っていない場合でもこと後の手順は可能です)

null

transaction_idの必要性

コンバージョン補完はブラウザの送信できず欠損したコンバージョンをサーバーから送ることができます。
その際単純にブラウザとサーバーから同じイベントを送ると媒体側では2重計測になってしまうため、一意なIDと一緒にイベントを送る必要があります。
媒体は同一のIDがブラウザ、サーバーから送られることで両者が同じイベントだということを識別し重複除外が可能になります。
上記の一意のIDがtransaction_idとなります。

transaction_idの設定方法

ECの場合購入ごとにユニークなオーダーIDをtransaction_idとして利用することが可能です。
今回は資料請求や会員登録といった必ずしもユニークなIDが発行されないケースを前提に設定方法を解説します。

設定の全体像は以下です。4つのステップに分けて設定方法を紹介します
null

※本ドキュメントはあくまで設定方法の一例です。実際の設定方法はGTMドキュメントを参考に自社に最適な方法をご自身でご判断ください

①transaction_id生成用のタグを作成する

transaction_idをdataLayer変数でGTMに送信します。

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
null

HTMLに以下をコピー&ペーストして保存
※ここではトリガーは設定しません。エラーが出ますが、そのまま保存して②へ進んでください。

<script>
  function generateUuid() {
    var chars = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("");
    for (var i = 0, len = chars.length; i < len; i++) {
      switch (chars[i]) {
        case "x":
          chars[i] = Math.floor(Math.random() * 16).toString(16);
          break;
        case "y":
          chars[i] = (Math.floor(Math.random() * 4) + 8).toString(16);
          break;
      }
    }
    return chars.join("");
  }
  var timestamp = new Date().getTime();
  var transactionId = generateUuid();
  google_tag_manager[{{Container ID}}].dataLayer.set('signals_transaction_id', transactionId);
</script>

※詳細設定内のタグ呼び出しオプションで「1回のイベントにつき1度」が設定されていることを確認してください。

②データレイヤーの変数を作成する

送信したtransaction_idをもとにデータレイヤーの変数を作成します

変数 > 新規 > 変数の設定をクリック > データレイヤーの変数を選択
データレイヤーの変数名にsignals_transaction_idと入力し、名前をsignals_transaction_idとして保存
null

③KARTEにイベントを送信するためにタグを修正する

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
HTMLに以下をコピーペーストしてください
※KARTEのタグのバージョンを確認してください。タブがウェブタグv1の場合は var tagv = "v2" を var tagv = "v1" に変更してください
※既にKARTEにコンバージョンイベントをGTMで送信している場合は該当のタグを編集し、signals_transaction_idを一緒に送信するようにしてください

<script>
 var tagv = "v2"
 var eventName = "testConversion"
 var transactionId = {{signals_transaction_id}}

<!--  Webタグv1 -->
if(tagv ==='v1'){
try{
  tracker.track(eventName, {
     transaction_id: transactionId
  });
} catch(e) {
  if('tracker' in window){
     tracker.track('_error',{
         message: e.message
    });
  }
}
}else{
 <!--  Webタグv2 -->
try{
  krt('send', eventName, {
     transaction_id: transactionId
  });
} catch(e) {
  if('krt' in window){
     krt('send', '_error',{
         message: e.message
    });
  }
}
}
</script>

詳細設定 > タグの順序付けから「KARTE_conversion発火 が発効する前にタグを配信」をチェックし設定タグから「transactionId発火」を選択してください。また「KARTE_conversion発火 は、transactionId発火 が配信できなかった場合や一時停止となっている場合には配信しないでください」にチェックを入れてください
null

コンバージョン時に発火するトリガーを設定し保存

④媒体にイベントを送信するための媒体タグを作成or修正する

Facebook Conversion APIの場合

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
HTMLに以下をコピーペーストしてください。
既存のタグを流用してご利用になる場合は以下の内容に沿って修正を行なってください。

※3行目から6行目までのコードは必要に応じて変更してください。
※また[pixelId], [event_name]はFacebook側のピクセルIDとイベント名を記載してください。
{{user_id}}については事前に設定した実際の変数に書き換えてください。
※事前設定で確認したuser_idをGTMで送信してない場合はvar externalId = {{user_id}}の行を削除し、fbq('init', pixel, {'external_id': externalId});fbq('init', pixel);に変更してください。
詳細マッチングをすでに設定している場合は、そのまま併用していただいて問題ありません。
※48時間以内に送信しないと、重複除外されません。

FB_conversion発火
<!-- Facebook Pixel Code -->
<script>
  var transactionId = {{signals_transaction_id}}
  var externalId = {{user_id}}
  var eventName = 'karte_conversion_event'
  var pixel = '000000000000000'

  !function(f,b,e,v,n,t,s)
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];
  s.parentNode.insertBefore(t,s)}(window, document,'script',
  'https://connect.facebook.net/en_US/fbevents.js');
  fbq('init', pixel, {'external_id': externalId});
  fbq('track', 'PageView');
  fbq('track', eventName, {}, {eventID: transactionId});
</script>
<!-- End Facebook Pixel Code -->

KARTEのコンバージョン発火タグの設定と同様にタグの順序付けの設定を行います
詳細設定 > タグの順序付けから「FB_conversion発火 が発効する前にタグを配信」をチェックし設定タグから「transactionId発火」を選択してください。また「FB_conversion発火 は、transactionId発火 が配信できなかった場合や一時停止となっている場合には配信しないでください」にチェックを入れてください

null

コンバージョン時に発火するトリガーを設定し保存
※KARTEタグとトリガーを一致させてください

Google拡張コンバージョンの場合

タグ > 新規 > タグの設定をクリック > Google 広告のコンバージョン トラッキング をクリック
事前設定で取得した「コンバージョンID」と「コンバージョンラベル」をペーストしてください
「トランザクションID」は {{signals_transaction_id}}  (※②で作成した変数)と入力してください
既存のタグを流用してご利用になる場合は内容に沿ってタグを修正してください

KARTEのコンバージョン発火タグの設定と同様にタグの順序付けの設定を行います
詳細設定 > タグの順序付けから「Google拡張コンバージョン発火 が発効する前にタグを配信」をチェックし設定タグから「transactionId発火」を選択してください。また「Google拡張コンバージョン発火 は、transactionId発火 が配信できなかった場合や一時停止となっている場合には配信しないでください」にチェックを入れてください
null

※コンバージョンID及びコンバージョンラベルは作成した、もしくは送信したコンバージョンアクションページからタグを設定する > Googleタグマネージャーを使用するをクリックすると表示されます
null

コンバージョン時に発火するトリガーを設定し保存
※KARTEタグとトリガーを一致させてください

Yahoo!ディスプレイ広告コンバージョンAPIの場合

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
HTMLに以下をコピーペーストしてください。
既存のタグを流用してご利用になる場合は以下の内容に沿って修正を行なってください。

※"yahoo_ydn_conv_io"、"yahoo_ydn_conv_label"については、詳細マッチング用のパラメータの取得で取得した値を使用してください。
※既にタグが存在する場合には、"yahoo_ydn_conv_transaction_id"の値に、{{signals_transaction_id}} (※②で作成した変数)の変数が使用されるように修正してください。

<script async>
ytag({
  "type":"yjad_conversion",
  "config":{
    "yahoo_ydn_conv_io": "XXXXxxxXXXXxxxXxXxx",
    "yahoo_ydn_conv_label": "XXXXXXXXXXXXXXXXXXXXXXXXX",
    "yahoo_ydn_conv_transaction_id": {{signals_transaction_id}},
    "yahoo_ydn_conv_value": "0"
  }
});
</script>

KARTEのコンバージョン発火タグの設定と同様にタグの順序付けの設定を行います
詳細設定 > タグの順序付けから「Yahoo_conversion発火 が発効する前にタグを配信」をチェックし設定タグから「transactionId発火」を選択してください。また「Yahoo_conversion発火 は、transactionId発火 が配信できなかった場合や一時停止となっている場合には配信しないでください」にチェックを入れてください

コンバージョン時に発火するトリガーを設定し保存
※KARTEタグとトリガーを一致させてください

LINEコンバージョンAPIの場合

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
HTMLに以下をコピーペーストしてください。
既存のタグを流用してご利用になる場合は以下の内容に沿って修正を行なってください。

※LINEタグでは、現状コンバージョンコードで「deduplicationKey」を送ることができません。「 init 」タグ内に記載してください。
※tagIdには適切な値を設定してください。
※既にタグが存在する場合には、"deduplicationKey"の値に、{{signals_transaction_id}} (※②で作成した変数)の変数が使用されるように修正してください。

<script async>
_lt('init', {
  customerType: 'lap',
  tagId: '{{ TAG_ID }}',
  deduplicationKey: '{{signals_transaction_id}}'
})
</script>

KARTEのコンバージョン発火タグの設定と同様にタグの順序付けの設定を行います
詳細設定 > タグの順序付けから「Line_conversion発火 が発効する前にタグを配信」をチェックし設定タグから「transactionId発火」を選択してください。また「Line_conversion発火 は、transactionId発火 が配信できなかった場合や一時停止となっている場合には配信しないでください」にチェックを入れてください

コンバージョン時に発火するトリガーを設定し保存
※KARTEタグとトリガーを一致させてください

XコンバージョンAPIの場合

タグ > 新規 > タグの設定をクリック > カスタムHTMLを選択
HTMLに以下をコピーペーストしてください。
既存のタグを流用してご利用になる場合は以下の内容に沿って修正を行なってください。
pixel IDはX側のピクセルIDを記載してください。
※既にタグが存在する場合には{{signals_transaction_id}} (※②で作成した変数)の変数が使用されるように修正してください。

<!-- Twitter conversion tracking event code -->
<script type="text/javascript">
  // Insert Twitter Event ID
  twq('event', 'pixel ID', {conversion_id: {{signals_transaction_id}}})
</script>
<!-- End Twitter conversion tracking event code -->

⑤発火を確認する

KARTEイベント

KARTE管理画面グロナビ > インサイト > イベント > 検索窓で送信したカスタムイベント(デフォルトはtestConversion)を検索。イベントが存在すれば正しく発火している

Facebook Conversion API

この段階でイベントマネージャーで表示されるイベント一覧に「facebook広告にイベントを送信するためのタグを作成する」で設定したイベント名が存在し、接続方法がブラウザ・サーバーと表示されていれば正しく発火している
null