matoix

トラッキングテンプレート生成ツール|Google・Yahoo・Meta広告のURLパラメータ

入稿URLを1本ずつ書き換えるのをやめて、アカウント単位に一度貼るだけの値を作るツールです。媒体を選ぶと、その媒体で実際に置換されるパラメータだけが候補に出ます。

差し込めるパラメータ(クリックで入力欄に挿入)

このツールは入力した値から文字列を組み立てるだけで、外部への通信は行いません。 入力したキャンペーン名やURLが当サイトや第三者に送信されることはありません。

媒体ごとに違うのは3点だけ

同じ「トラッキングテンプレート」という言葉でも、媒体によって仕様が違います。違うのは次の3点です。

Google 広告LINEヤフー広告Meta 広告
波かっこ{param}{param}{{param}}
設定項目トラッキングテンプレート / 最終ページURLのサフィックストラッキングURLURLパラメータ
設定できる階層アカウント〜広告アカウント〜広告・キーワード広告単位のみ

Meta だけはアカウント単位で一括設定する項目がありません。広告ごとに「URLパラメータ」欄へ入れることになるので、テンプレートを決めて複製で回すことになります。

Google と LINEヤフー広告はどちらも、上位と下位の両方に設定した場合は下位の設定が優先されます。アカウント単位に入れておけば全体に効くので、まずはアカウント単位で入れるのが管理として楽です。

{lpurl}? が必要かどうかは項目によって逆になる

一番事故が多いのがここです。Google 広告には設定項目が2つあり、書き方が逆です。

項目書き方
トラッキングテンプレート{lpurl}?utm_source=google&utm_medium=cpc
最終ページURLのサフィックスutm_source=google&utm_medium=cpc

サフィックスは最終ページURLの後ろに連結される項目なので、{lpurl} も先頭の ? も書きません。ここにテンプレートと同じ値を貼ると ? が二重になって壊れます。

どちらを使うかは、計測ツールのリダイレクトを挟むかどうかで決めます。

  • パラメータを足すだけなら 最終ページURLのサフィックス。並行トラッキングに対応していて、リダイレクト計測を挟んでも消えません。
  • 計測ツールのリダイレクトURLを経由させるなら トラッキングテンプレート{lpurl} を計測ツールのURLの中に埋め込む形で使います。

LINEヤフー広告に「サフィックス」相当の項目はなく、トラッキングURLだけです。こちらは常に {lpurl} から書き始めます。

{matchtype} の値は Google と Yahoo で違う

同じ名前のパラメータでも返る値が違います。Google 側は近年値が増えました。

Google 広告LINEヤフー広告 検索広告
e完全一致完全一致
pフレーズ一致フレーズ一致
bインテント マッチ部分一致
aAI 最大化設定(キーワードなし)なし

a は Google だけにある値です。キーワードを持たないトラフィックがここに入るため、{matchtype}=a の行が増えていたらキーワードベース以外の配信が伸びているということになります。マッチタイプ別でレポートを組んでいる場合、a を想定していないと未分類として落ちます。

{network} は P-MAX と Google TV の値が増えている

Google の {network} は次の値を返します。

意味
gGoogle 検索
s検索パートナー
dディスプレイ ネットワーク
ytvYouTube
vpGoogle 動画パートナー
gtvGoogle TV
xすべての P-MAX トラフィック
eアプリ エンゲージメント キャンペーンのすべてのトラフィック(Google 検索を除く)

P-MAX は面が混在しますが {network} では区切られず、まとめて x になります。P-MAX の中で検索面とディスプレイ面を分けたい場合、この値では判別できません。

なお LINEヤフー広告に {network} はありません。

P-MAX に {adgroupid}{keyword} はない

P-MAX には広告グループもキーワードも存在しないため、これらは置換されません。代わりにアセットグループ単位の {assetgroupid} を使います。

パラメータ検索ショッピングP-MAXディスプレイ・動画
{campaignid}
{adgroupid}×
{assetgroupid}×××
{keyword}××○(キーワードターゲティング時)
{matchtype}×××
{placement}×××
{product_id}××

置換されないパラメータを書いてもエラーにはなりません{keyword} という文字列がそのまま送信され、計測ツール側に utm_term={keyword} という行が並びます。上のツールは、選んだ媒体で置換されないトークンが混ざっていると警告を出します。

LINEヤフー広告にはエンコード段階の指定がある

Google にはない仕様として、{lpurl}エンコードの段階を指定する変種があります。

パラメータ挙動
{lpurl}最終リンク先URL(1回エンコード)
{lpurl+2} / {lpurl+3}2重 / 3重エンコード
{unescapedlpurl}エンコードしない(URLの先頭でのみ設定可
{escapedlpurl}:/?=% を1回エンコード
{escapedlpurl+2} / {escapedlpurl+3}同じものを2回 / 3回

計測ツールのリダイレクトURLの中にLPのURLを渡すとき、リダイレクトが2段になっていると1回のエンコードでは足りずにパラメータが途中で切れます。その場合に {lpurl+2} を使います。単純にパラメータを足すだけなら {lpurl} で十分です。

Meta は波かっこが2つ、そして名前は公開時点で固定される

Meta のダイナミックパラメータは二重波かっこです。Google と同じ {campaign.name} と書くと置換されず、そのままの文字列が送られます。

パラメータ内容
{{campaign.name}} / {{campaign.id}}キャンペーン名 / ID
{{adset.name}} / {{adset.id}}広告セット名 / ID
{{ad.name}} / {{ad.id}}広告名 / ID
{{site_source_name}}配信先(Facebook / Instagram など)
{{placement}}配置(フィード / ストーリーズなど)

名前を取得するパラメータは、広告を最初に公開した時点の値で固定されます。 あとで広告セット名を変えても、パラメータに入る値は変わりません。命名規則を変えた履歴が計測データに残り続けるので、名前ベースではなく {{adset.id}} のようなID系を使うか、名前を変えないルールにするかを決めておく必要があります。

もう1点、名前系のパラメータは中身がそのままURLに入ります。キャンペーン名に日本語やスペースが入っていると、URLに日本語が混ざったり %20 が並んだりします。パラメータに使う階層の名前は半角英数字とアンダースコアに寄せておくのが安全です。

{keyword} はキーワードで、検索語句ではない

{keyword} が返すのは入札しているキーワードで、ユーザーが実際に打ち込んだ検索語句ではありません。検索語句を取得するパラメータはありません。

また日本語キーワードはURLエンコードされて入るため、計測ツール側では %E3%82%B7%E3%83%A3... のような形で見えます。GA4 のレポートで読みたい場合は、キーワードそのものではなく {targetid} でIDを取り、管理画面側と突き合わせる方が扱いやすいことがあります。

キャンペーンIDは utm_campaign ではなく utm_id に入れる

GA4 にはキャンペーンIDのための専用パラメータ utm_id があります。これは非Google媒体のコストデータインポートの結合キーで、Yahoo と Meta の広告費を GA4 に入れて ROAS を並べて見るなら必須です(GA4 は現在、非Google の広告費は手動インポートのみ対応)。

一方 utm_campaign は標準レポートの「キャンペーン」列に出る、人が読むラベルです。役割が分かれているので、こう使い分けます。

役割
utm_id機械が突き合わせるキー。キャンペーンID
utm_campaign人が読むラベル。キャンペーン名

ただし**utm_campaign を全媒体でキャンペーン名に揃えることはできません**。キャンペーン名を動的に取得できる媒体が限られているからです。

キャンペーンIDの動的取得キャンペーンの動的取得
Google 広告{campaignid}不可(ValueTrack に名前のパラメータがない)
LINEヤフー広告{campaignid}不可
Meta 広告{{campaign.id}}{{campaign.name}}

名前で揃えようとすると Google と Yahoo はキャンペーンごとに手打ちになり、アカウント単位に一度貼るだけという利点が消えます。そのため上のツールでは、utm_id は全媒体でID、utm_campaign は名前が取れる Meta だけ名前にしてあります。Google と Yahoo の utm_campaign はIDのままです。空にすると GA4 の「キャンペーン」列が (not set) になり、IDが入っているより悪くなります。

Meta で名前とIDを両方持つ意味はもう1つあります。前述のとおり {{campaign.name}} は初回公開時点の名前で固定されるため、名前が古くなっても utm_id で正しく突き合わせられるようにしておくためです。

utm_id だけに寄せないのは、utm_id を認識しない計測ツールが多いからです。GA4 以外に流すことを考えると utm_campaign も埋めておく方が安全です。

LINEヤフー広告の {campaignid} は管理画面の「キャンペーンID」ではない

IDを結合キーに使うなら、ここは必ず確認してください。

LINEヤフー広告の {campaignid} が返すのは**「キャンペーントラッキングID」で、管理画面に表示される「キャンペーンID」とは別の値**です。{creative}{adgroupid} も同様に、トラッキング専用のIDを返します。

パラメータが返す値管理画面の別項目
{campaignid} → キャンペーントラッキングIDキャンペーンID
{adgroupid} → 広告グループトラッキングID広告グループID
{creative} → 広告トラッキングID広告ID

GA4 のコストインポート用ファイルに管理画面の「キャンペーンID」を書くと結合しません。 どちらも管理画面やキャンペーンエディターで確認できますが、初期設定では表示されていないため、表示項目を追加する必要があります。インポート側をトラッキングIDに合わせてください。

Meta 広告の utm_sourcemeta を使うとチャネル分類が崩れる

GA4 のデフォルトチャネルグループ「有料ソーシャル」の判定条件は、次の2つの AND です。

  • 参照元がソーシャルサイトの一覧に一致する
  • メディアが ^(.*cp.*|ppc|retargeting|paid.*)$ に一致する

この一覧(Google が公開しているソースカテゴリ表)には facebook / fb / facebook.com / instagram は登録されていますが、meta はありません

そのため utm_source=meta&utm_medium=paid_social は2つ目の条件だけを満たし、「有料ソーシャル」ではなく「その他(有料)」に分類されます。メディアの正規表現には一致してしまうのでエラーにもならず、レポート上は静かに別チャネルへ積まれます。

かといって utm_source={{site_source_name}} にするのは逆効果です。返る値は fb / ig / msg / an という略称で、fb は一覧にありますが ig msg an は登録が確認できません。Instagram 配信が別チャネルに落ちる可能性があり、悪化しかねません。

utm_sourcefacebook で固定し、実際の配信先は別のパラメータで持つのが安全です。上のツールの推奨構成では platform={{site_source_name}} を追加パラメータに入れています。チャネル分類の正しさと配信先の情報を両方確保できます。

Google と LINEヤフー広告については google yahoo がどちらも一覧に登録済みなので、そのままで問題ありません。上のツールは、選んだ媒体で登録が確認できない utm_source を入れると警告を出します。

Google 広告 × GA4 なら utm は必須ではない

GA4 と Google 広告は自動タグ設定(gclid)で連携するため、GA4 で見るだけなら utm を手で付ける必要はありません。Google 広告アカウントとリンクしていれば、キャンペーン名まで GA4 側で取得できます。

utm を付ける主な目的は、GA4 以外の計測ツールや BI ツールで媒体を横断して突き合わせること、そして GA4 に非Google媒体のコストを入れることです。

入稿前に、生成した値を実際のLPで一度踏んでおくことをおすすめします。トラッキングテンプレートは保存時にURLの形式チェックが入るため、? の重複のような明らかな崩れは弾かれますが、{keyword} が置換されないケースのようにエラーにならない事故は管理画面では気づけません。