私は三つの会社でUTM追跡を設定してきましたが、毎回同じものが同じ順番で壊れました。一貫性のないタグ付け、大規模な手入力のリンク、キャンペーンに届かない売上、ドライランの欠如です。この記事は、Elidoが現在できることでそれらを解消するパイプラインであり、できないところはそう明記しています。
五つのタグの役割がわからない場合は、UTMパラメータの解説が入門になります。ツールの比較については、リンク短縮サービスのUTMビルダーと無料のUTMビルダーをご覧ください。この記事は一つのツールではなく、チェーン全体を扱います。
このためにカスタマーデータプラットフォーム (CDP) は必要ありません。必要になるのは、三つのデバイスにまたがる四回の匿名タッチを一人の顧客に結び付ける問題が出てきたときです。「すべてのリンクを一貫してタグ付けし、クリックを記録し、注文をキャンペーンに紐付ける」だけなら、キャンペーン機能のある短縮サービスと決済のWebhookで足ります。
UTM追跡で何がうまくいかないのか
私が関わる人たちはUTMが苦手なわけではありません。ツールのおかげでUTMを一度入力するのは簡単です。難しいのは、それをチーム全体に徹底させることです。次の四つの失敗が繰り返されます。
表記のばらつき。 ある人はutm_source=newsletter、別の人はNewsletter、三人目はemailと入力します。GA4はこれらを別の値として扱うため、一つのチャネルが複数の行に分かれます。後から整理するのは正規表現の作業になります。規則を強制するものは何もありません。文書にして、全員がコピーする唯一の場所にしてください。
大規模な手動タグ付け。 四つの店舗に80リンクのチラシキャンペーンなら、320のURLになります。半分はutm_contentが間違っていて、2週間誰も気づきません。
キャンペーンに届かない売上。 ピクセルはサンクスページで発火しますが、Safari、広告ブロッカー、同意バナーのいずれかが止めるまでの話です。AppleのITP 2.3に関する記事 (2026-10-24 閲覧) がその仕組みを説明しています。分類されたドメインからクエリ文字列付きのURLへ遷移すると、スクリプトから書き込めるストレージが制限され、リンクの装飾を含むリファラーはベースドメインまで切り詰められます。注文は自社のサーバー上では確かに発生していますが、ブラウザがそれを報告できなかったのです。
ドライランの欠如。 最初の実際の購入者がテストになり、広告プラットフォームがすでに予算を動かした後の3日後にようやく気づきます。
ステップ1: 規則を文書にする
どのツールよりも先に、許可する値を決めます。シート一つ、列は三つです。utm_source (newsletter、linkedinなどのプラットフォームやリスト)、utm_medium (チャネルの種類: email、paid-social、qr)、utm_campaign (ローンチ名)。小文字、ハイフン、スペースなしです。GA4の値は大文字小文字を区別するため、ばらつきが行の増加というコストになります。
人がリンクを作る場所に置いてください。誰も開かない規則は規則ではありません。
ステップ2: キャンペーンのUTMデフォルト値
Elidoでは、キャンペーンが五つのUTMフィールド (utm_source、utm_medium、utm_campaign、utm_term、utm_content) を保持し、リンクはcampaign_idでそれに割り当てられます。ローンチの値を一度入力しておけば、リンクを作る全員が一か所から読み取ることになります。
正直な限界を挙げます。{{ placeholders }}を使って、すべてのリンクを自動で書き換えるワークスペースレベルのテンプレートはありません。キャンペーンのフィールドは保存されたデフォルト値です。タグ付きの遷移先は、リンクを作成するときに組み立てられます。キャンペーンは、何を入力すべきかの信頼できる情報源として扱ってください。自動的な強制ではありません。
ステップ3: リンクを組み立てて作成する
単一のリンクには、新規リンクダイアログに五つのフィールドを持つUTMビルダーがあり、リンクが作成される前に、空でないものを遷移先に付加します。多数のリンクには、一括の経路として、url, slug, titleの行をダッシュボードに貼り付けるかCSVで渡す方法、または1回あたり最大100リンクのPOST /links/bulkがあります。行は個別に処理されるため、不正な一行がバッチ全体を台無しにすることはありません。
一括インポートにはUTM列がなく、遷移先は指定どおりにそのまま保存されるので、規則の列を連結する数式を使って、完全なタグ付きURLをシートで作ってください。テンプレートの魔法よりも、その方がレビューしやすいのです。インポート前に、すべての最終URLを確認できます。Googleスプレッドシートからの一括インポートでは、プレビューモードがまだないことを含め、実際の制限を取り上げています。
ステップ4: クリックを記録し、サーバーサイドで売上を紐付ける
タグ付きリンクが真価を発揮するのはここです。クリックは、ブラウザの機能がランディングページに触れる前に、リダイレクトの時点で記録されるからです。UTMパラメータを削除するブラウザでこの順序が重要な理由を、クリック数とGA4セッション数で二つの合計がそれでも異なる理由を説明しています。
そのクリックでElidoが行うことは、コードで確認済みです。
- 分析ツールへのクリックイベント。 「連携」で、各クリックをGA4、Mixpanel、Klaviyo、Brevo、Datadogに転送できます。GA4には測定IDとAPIキーが必要です。Mixpanelはクリックをイベントとして受け取りますが、コンバージョンの送信先ではありません。
- 広告ピクセル。 「ピクセル」タブには、スプラッシュページ上のブラウザピクセル用のMeta、Google、LinkedIn、TikTokのIDを登録できます。サーバーサイドのMetaとTikTokのイベントはまだ利用できません。パイプラインにはそのための休眠中のコードパスがあります(Metaには購入ではなく
PageViewが送られます)が、設定にアクセストークンを保存できないため、発火することはありません。 - 売上。 StripeとShopifyのWebhookがコンバージョンを作成します。注文をリンクに紐付けるには、注文にElidoのリンクIDを入れます。Stripeのチェックアウトセッションでは
elido_link_idというmetadataキーまたはclient_reference_id、Shopifyの注文ではelido_link_idというnote attributeを使います。すると、コンバージョンページにリンク、キャンペーン、日、プラットフォーム別の売上が表示されます。
まだできないこと: 任意の購入イベントをID付きでPOSTし、ElidoがそれをコンバージョンとしてMeta CAPIとGA4に転送するエンドポイントはありません。現時点で購入レベルのCAPIが必要なら、自社のバックエンドから独自のイベントIDで送信し、流入側にはElidoのクリックとリンクのアトリビューションを使ってください。リダイレクト層によるサーバーサイドGA4ではクリック転送の側面を詳しく、CookieレスアトリビューションではCookieなしで通用するものを取り上げています。
事前に備えておきたい三つのエッジケース
リンクIDのない注文。 チェックアウトがリンクIDを運べないと、その注文はアトリビューションなしで記録されます。公開前に、チェックアウトの経路でIDが残ることをテストしてください。自社ドメインでパラメータが落ちるのがよくある原因です。
返金。 Shopifyのrefunds/createの配信は、新規の販売ではなく、その注文に対する返金として処理されるため、報告される売上に返金済みの注文は残りません。頼りにする前に、テスト返金でStripe側を確認してください。
遅れて発生するコンバージョン。 クリックの数週間後に成約するB2B案件では、登録時に自社の顧客レコードにリンクIDを保存しておく必要があります。後からブラウザセッションで再構築することはできないからです。Cookieだけでなく、ファーストパーティのフィールドに保管してください。
アトリビューションされなかった分も、有用な数字です。隠さずに、独立した行として報告してください。
公開前のQA
最初の実際の購入者をテストにしてはいけません。30分なら安いものです。三つの確認を行います。
- 最終URLを読む。 シートまたはキャンペーンを開き、最初のリンク、最後のリンク、手で編集したリンクの三つをクリックします。アドレスバーに、規則どおりのタグがそのまま表示されることを確認します。遷移先自身のリダイレクトを経ても残ることも確認してください。
- クリーンなブラウザからクリックする。 モバイル回線でプライベートウィンドウを使います。リンクのクリックログにクリックが表示され、GA4 DebugViewにイベントが届き (連携で
debug_modeを設定するか、DebugViewが有効なブラウザを使用)、セッションのソースにキャンペーンが表示されることを確認します。 - テスト注文を一件実行する。 StripeのテストモードまたはShopifyのテスト注文で、実際のチェックアウトを通じてリンクIDを渡し、コンバージョンページの正しいリンクにコンバージョンが表示されることを確認します。
それから送信します。
本当にCDPが必要になるとき
デバイスをまたぐアイデンティティの結合が明確なケースです。訪問者がモバイルでクリックし、デスクトップでコンバージョンしたとき、一つのジャーニーとして扱いたくなります。クリック単位のアトリビューションはタッチごとに機能し、タッチを結び付けるアイデンティティ層こそ、Segment、mParticle、RudderStackが存在する理由です。Elidoはアイデンティティグラフを運用していません。
過去の接触に基づくリアルタイムのパーソナライゼーションも該当しますし、より重いマルチタッチモデルも同様です。それらについては、アトリビューションモデルの比較が、クレジットの割り当ての違いを説明しています。
それ以外のことなら、4つの習慣を押さえるだけで、ほとんどのチームより一歩先に出られます。規則を文書にして、キャンペーンの既定値を設定し、クリックをサーバー側で記録し、ローンチのたびに予行演習をすることです。一度作ってしまえば、次に進めます。
ブログの関連記事
よくある質問
UTMキャンペーンの追跡にCDPは必要ですか?
すべてのアウトバウンドリンクを一貫してタグ付けし、クリックを記録し、注文をキャンペーンに紐付けるという一般的なケースでは不要です。アイデンティティグラフが必要になるのは、同じ人物をデバイスやセッションをまたいで結合しなければならない場合だけです。
UTMパラメータは、シートと短縮サービスのどちらで付けるべきですか?
規則を管理する場所が一つなら、どちらでも構いません。ElidoのUTMビルダーはリンク作成時にタグ付きの遷移先を組み立て、一括インポートは遷移先を指定どおりそのまま保存するので、一括作業ではシートでタグ付きURLを作成してください。
ElidoはコンバージョンをMetaやGA4に転送しますか?
現時点では、汎用のコンバージョンAPIとしては転送しません。Elidoは各クリックをGA4、Mixpanel、Klaviyo、Brevo、Datadogに転送します。サーバーサイドのMetaとTikTokのイベントはまだ利用できません。コードパスは存在しますが、アクセストークンを保存できないため、発火することはありません。売上はStripeとShopifyのWebhookで取り込まれ、リンクに紐付けられます。
StripeまたはShopifyの注文を短縮リンクに紐付けるにはどうしますか?
注文にElidoのリンクIDを入れます。Stripeのチェックアウトセッションではelido_link_idというmetadataキーまたはclient_reference_id、Shopifyの注文ではelido_link_idというnote attributeを使います。するとWebhookがそのリンクに対してコンバージョンを記録します。
チーム全体で一つのUTM命名規則を強制できますか?
現時点のElidoでは自動では強制できません。キャンペーンは五つのUTM値を保存し、UTMビルダーがタグ付きURLを組み立てますが、手入力による別表記を妨げるものはありません。許可する値の共有シートを一つ保ち、そこからリンクを作成してください。
UTMタグを付けたクリックが欠落することがあるのはなぜですか?
多くの場合、遷移先ホストがクエリ文字列を落としている、分析タグがブロックされているか同意が拒否されている、あるいはリンクにタグが付いていなかった、のいずれかです。リダイレクトでクリックを記録すれば、流入のカウントについては最初の二つをカバーできます。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
登録不要。無料登録すると月 50 件のリンクを作成できます。