なぜECサイトのUTMトラッキングはこうも壊れやすいのか?
ECサイトは他のほぼどんな業種よりも多くのチャネルで多くのキャンペーンを走らせている。だからこそUTMデータがめちゃくちゃになりやすい。2025年のLittledataの調査によると、Shopifyストアの67%がGoogle Analytics 4で少なくとも1つのアトリビューションソースの設定ミスを抱えていた。3軒中2軒だ。
昨年のBlack Fridayに、あるWooCommerceストアの支援をした。Meta、Google Shopping、TikTok、メール(Klaviyo)、2つのアフィリエイトネットワークで同時にキャンペーンを実施していた。GA4のアクイジションレポートを開くと、Facebook関連だけでutm_sourceが23種類もあった。facebook、Facebook、fb、meta、Meta、ig、instagram、facebook_ads、fb-ads…他にも14パターン。売上アトリビューション?意味をなしていなかった。あの週末の34万ドルの売上を実際にどのチャネルが生み出したのか、まったく把握できていなかった。
問題はUTMパラメータそのものではない。ECチームはスピード重視で動き、複数の人間がリンクを作り、誰も基準を統一しない。だから今ここで正しい方法を確認しよう。
ECサイトに最適なUTM構造とは?
ECサイトに適したUTM構造は、他のビジネスと同じClean Signal Methodの原則に従うが、大量のトラフィックとマルチチャネルの小売に特化したパターンを組み込む。
基本テンプレートは以下の通り:
| フィールド | 値のパターン | 例 |
|---|---|---|
utm_source | プラットフォーム名 | meta, google, klaviyo, tiktok |
utm_medium | チャネルタイプ(GA4互換) | paid_social, cpc, email, affiliate |
utm_campaign | キャンペーン識別子 | blackfriday_2026, spring_collection_launch |
utm_content | 広告またはリンクバリアント | carousel_shoes, hero_banner, product_card_3 |
utm_term | オーディエンスまたはキーワード | lookalike_purchasers, running+shoes |
utm_id | プラットフォームキャンペーンID | {{campaign.id}}, {campaignid} |
先ほどのカオスからECチームを救う3つのルール:
-
有料チャネルにはプラットフォームネイティブの動的パラメータを使う。 Metaなら
{{campaign.name}}、Googleなら{campaignid}。ハードコードしたキャンペーン名は、広告プラットフォーム上で誰かがキャンペーン名を変更した瞬間に古くなる。ECではセール中にキャンペーン名が頻繁に変わる。 -
プロモーション情報は
utm_campaignに入れる。あちこちに散らばらせない。 Black Fridayセールを実施するなら、その情報はcampaignフィールドに入れるべきだ:blackfriday_2026_meta_retargeting。utm_sourceでもutm_contentでもない。 -
utm_contentで商品カテゴリを区別する。 1つのキャンペーンがシューズ、バッグ、アクセサリーを同時にプロモーションすることは多い。各クリエイティブにタグを付ける:utm_content=carousel_shoes_v2、utm_content=static_bags_new。どの商品カテゴリが広告で実際に成果を上げているか知る唯一の方法だ。
ShopifyストアはUTMパラメータをどう扱うべきか?
ShopifyはインバウンドトラフィックにはUTMパラメータを付与しない。それは広告側の仕事だ。しかしShopifyには、注意しないとUTMを壊す仕組みがある。チェックアウトリダイレクトだ。
顧客が商品ページで「今すぐ購入」をクリックすると、Shopifyはcheckout.shopify.com(またはカスタムチェックアウトドメイン)を経由してリダイレクトする。このリダイレクトがURLからUTMパラメータを除去してしまうことがある。GA4は購入セッションを、実際に誘導した有料広告ではなく「ダイレクト」トラフィックとして記録してしまう。
対処法: GA4のトラッキングがチェックアウト時だけでなく、最初のランディングページで発火することを確認する。Shopify管理画面からインストールする純正のGoogle & YouTubeチャネルはこれを正しく処理する。Google Tag Manager経由のカスタムGA4設定の場合は、リダイレクトページを含むすべてのページでpage_viewタグを発火させる。
Shopifyストアは通常4〜6チャネルで同時にキャンペーンを実施する。すぐ使えるテンプレートを紹介する:
Shopify + Meta Ads:
utm_source=meta-{{site_source_name}}-{{placement}}
utm_medium=paid_social
utm_campaign={{campaign.name}}
utm_content={{ad.name}}
utm_id={{campaign.id}}
Shopify + Google Shopping:
utm_source=google
utm_medium=cpc
utm_campaign={campaignname}
utm_content={adid}
utm_term={product_id}
utm_id={campaignid}
Shopify + Klaviyoメール:
utm_source=klaviyo
utm_medium=email
utm_campaign=abandoned_cart_step_1
utm_content=return_to_cart_button
Shopifyの2025年アニュアルレポートによると、プラットフォームのGMVは2,756億ドルに達した。にもかかわらず、大多数のマーチャントが一貫したUTM戦略を持っていない。月5,000ドル以上の広告費を使っているなら、アトリビューションの欠陥は単なる不便ではなく、お金を燃やしているのと同じだ。
ヒント: UTM Generatorで広告ネットワークを選択すると、そのプラットフォームに対応する正しい動的パラメータが自動入力される。Metaが
{{double_braces}}を使うのか、Googleが{single_braces}を使うのか覚える必要はない。正しい構文が自動的に読み込まれる。
WooCommerceのUTM要件はどう違う?
WooCommerceはWordPress上で動作するため、UTMパラメータはランディングページからチェックアウトまでのユーザージャーニー全体を通じて保持される。Shopifyのホスト型チェックアウトのようなリダイレクトによる除去はない。これは朗報だ。
しかしWooCommerceには別の問題がある。多くのWooCommerceストアがURLに独自のクエリパラメータを追加するプラグインを使っている。クーポンプラグイン、A/Bテストツール、アフィリエイトトラッキングプラグインなどだ。これらがUTMパラメータと衝突すると、こんなURLになる:
https://store.com/product?utm_source=meta&utm_medium=paid_social&utm_campaign=summer_sale&ref=affiliate123&coupon=SAVE20&ab=variant_b
GA4はこれを問題なく処理する。utm_プレフィックスのパラメータだけを読み取るからだ。しかし一部のキャッシュプラグインは、キャッシュページを配信するためにすべてのクエリパラメータを除去する。WP Super CacheやW3 Total Cacheを積極的に設定していると、ページがキャッシュから読み込まれた瞬間にUTMデータが消える。
対処法: キャッシュプラグインの設定で、utm_source、utm_medium、utm_campaign、utm_content、utm_term、utm_idを「無視するクエリパラメータ」リストに追加する。キャッシュはキャッシュページを配信し続けるが、GA4のJavaScriptが読み取る前にパラメータを除去しなくなる。
WooCommerce Google Analytics Pro(SkyVerge製)を使用しているWooCommerceストアなら、プラグインがUTMデータをGA4のエンハンスドeコマースイベントと自動的に統合する。クリック → ランディングページ → カート追加 → 購入まで、すべてが元のUTMソースに紐付くアトリビューションが実現する。WooCommerceで最もクリーンなセットアップであり、年間79ドルの価値は十分にある。
マーケットプレイスのトラフィックはどうする? Amazon・Etsy・eBay
ここからが難しい。Amazon、Etsy、eBayなどのマーケットプレイスは、プラットフォーム上の商品リスティングURLにUTMパラメータを追加させてくれない。URL、チェックアウト、分析はすべてマーケットプレイスが管理している。
ただし、2つのシナリオではUTMを活用できる:
シナリオ1: 自社ストアからマーケットプレイスのリスティングにトラフィックを誘導する場合。
Amazon商品ページにリンクする広告やメールを配信する場合:
https://amazon.com/dp/B0XXXXXXXX?utm_source=meta&utm_medium=paid_social&utm_campaign=product_launch_2026
AmazonはUTMパラメータを自社の分析では無視するし、自社サイトのGA4もこのトラフィックを計測しない(Amazonに向かうから)。では何のために? Amazon Attributionだ。Amazonのアトリビューションプログラムは特定のURLパラメータを読み取るが、UTMではなく独自のタグ形式を使用する。UTMと併用、またはUTMの代わりにAmazonのアトリビューションタグを使うことになる。
シナリオ2: マーケットプレイスから自社ストアにトラフィックを誘導する場合。
ここでUTMが重要になる。Etsyショップからカスタムオーダーやブランドブログのためにメインサイトにリンクする場合:
utm_source=etsy
utm_medium=referral
utm_campaign=custom_orders_redirect
eBayパートナーリンク、Amazon Storefrontの「ブランドウェブサイト」リンク、Etsyのアバウトページリンク。これらすべてに自社のGA4プロパティを指すUTMパラメータを付けるべきだ。
シナリオ3: マルチチャネル小売 — 同じ商品を複数プラットフォームで販売。
Shopify、Amazon、Etsy、eBayで販売している場合。有料広告が4つすべてにトラフィックを送る。各広告チャネルでどのプラットフォームが最もコンバージョンするかを追跡する:
utm_campaign=summer_sandals_shopify
utm_campaign=summer_sandals_amazon
utm_campaign=summer_sandals_etsy
またはutm_contentで送り先を区別する:
utm_content=shopify_landing
utm_content=amazon_listing
utm_content=etsy_listing
季節セールやプロモーションのUTMトラッキング方法は?
Black Friday、Cyber Monday、ホリデーセール、フラッシュディール、クリアランスイベント。ECはプロモーションで成り立っており、プロモーションのUTMトラッキングこそ多くのストアが失敗するポイントだ。
繰り返し見かけるミス: 年間を通じてすべてのプロモーションに同じutm_campaign=saleを使うこと。12月になるとGA4で「sale」がトップキャンペーンとして47,000セッションで表示され、Black Fridayのパフォーマンスと夏のクリアランスを比較する術がまったくない。
プロモーション名は具体的に。必ず。
| プロモーション | 悪いutm_campaign | 良いutm_campaign |
|---|---|---|
| Black Friday 2026 | sale | blackfriday_2026 |
| サマークリアランス | clearance | summer_clearance_2026_jul |
| 商品ローンチ | launch | product_launch_sandals_2026-q2 |
| フラッシュセール(4時間) | flash | flash_4h_electronics_2026-05-15 |
| ロイヤリティ割引 | loyalty | loyalty_vip_20percent_2026-q2 |
そしてECマーケターの90%が見落としていること: 具体的なオファー自体のトラッキングだ。Black Fridayキャンペーンで「サイト全体30%オフ」「シューズ50%オフ」「アクセサリー送料無料」を提供するなら、これらは1つのキャンペーン傘下の3つの異なるオファーだ。
カスタムパラメータまたはutm_contentで区別する:
utm_campaign=blackfriday_2026&utm_content=shoes_50off
utm_campaign=blackfriday_2026&utm_content=sitewide_30off
utm_campaign=blackfriday_2026&utm_content=accessories_freeship
ヒント: UTM Generatorにはチーム全体でプロモーション名を統一するオファージェネレーターが内蔵されている。
30percent_off、30%_off、30-off、discount30のどれにするかで議論する代わりに、オファージェネレーターが一貫したフォーマットを生成する:blackfriday_30percent。6種類のオファータイプに対応 — 金額、パーセント、無料、ギフト、リードマグネット、トリップワイヤー。いつでもどこでも同じフォーマット。
アフィリエイトとインフルエンサーのトラフィックをどうタグ付けする?
アフィリエイトとインフルエンサーは特殊なケースだ。他人にシェアしてもらうリンクを渡すが、相手がそれを改変するかどうかはコントロールできない。
アフィリエイトUTMテンプレート:
utm_source=affiliate
utm_medium=affiliate
utm_campaign={affiliate_network_name}
utm_content={affiliate_id_or_name}
実例:
utm_source=affiliate
utm_medium=affiliate
utm_campaign=shareasale
utm_content=partner_287_shoeblog
インフルエンサーの場合、アプローチは似ているがソースが変わる:
utm_source=instagram
utm_medium=organic
utm_campaign=influencer_janedoe_spring2026
utm_content=story_swipeup
Influencer Marketing Hubの2025年レポートによると、インフルエンサーマーケティング業界は241億ドル規模に達した。しかし調査対象ブランドの38%が、インフルエンサーROIを正確に測定できないと回答している。解決策は拍子抜けするほど簡単だ。各インフルエンサーに固有のUTMリンクを渡すだけ。
ECサイトのインフルエンサートラッキングに関する2つの実践的なヒント:
-
URL短縮サービスを使う。 インフルエンサーは
https://store.com/collection/shoes?utm_source=instagram&utm_medium=organic&utm_campaign=influencer_janedoe_spring2026&utm_content=story_swipeupをInstagramのプロフィールに貼り付けない。短縮しよう。UTM Generatorには短縮機能が内蔵されている。リンク作成後ワンクリックで完了。 -
リンクだけでなくテンプレートを共有する。 20人のインフルエンサーと仕事をするなら、ジェネレーターでプレースホルダー値を入れた1つのテンプレートを作り、テンプレートURLを共有し、各インフルエンサー(またはチーム)が名前フィールドを調整する。フォーマット統一、タイプミスなし。
実際に売上を失うECサイトのUTMミスとは?
これは机上の話ではない。UTMトラッキングのミスは予算配分の判断に直接影響する。
ミス1: サイト内部リンクにUTMを付ける。 ホームページのバナーから/saleへのリンクにutm_source=homepage_banner&utm_medium=cpcを付ける。顧客が3ドルのGoogle Ads クリックで来訪し、バナーを見てクリックする。GA4はそのセッションをGoogle Adsではなく「homepage_banner / cpc」に帰属させる。3ドルの有料クリックが見えなくなったのだ。Black Friday中にこれを大規模に行うと、有料広告の売上を15〜25%過小評価することになる。Clean Signal Methodの原則#6は明確だ: 自分の家にタグを付けるな。
ミス2: 有料キャンペーンにutm_idを付けない。 Metaキャンペーンの名前を「Summer Shoes v1」から「Summer Shoes Final」に途中で変更する。新しいクリックはすべて異なるutm_campaign値を持つ。最初の2週間の過去データは?切断される。utm_id={{campaign.id}}はリネームに関係なく変わらない数値IDを使う。ECブランドはセール中にキャンペーン名を頻繁に変える。utm_idは必須だ。
ミス3: 商品フィードのトラフィックを無視する。 Google Shopping、Meta Catalog Ads、Pinterest Product Pins。これらは商品フィードからURLを取得する。フィードURLにUTMパラメータが含まれていなければ、ショッピングトラフィックはタグなしで到着する。多くのフィード管理ツール(DataFeedWatch、Feedonomics、GoDataFeed)はフィードレベルで商品URLにUTMパラメータを追加できる。一度設定すれば全商品に適用される。
ミス4: メールとSMSに同じUTMを使う。 Klaviyoのメールとklaviyoのsmsで同じセールについて同一のUTMを使う: utm_source=klaviyo&utm_medium=email。SMSのクリックがメールトラフィックに見える。SMSにはutm_medium=sms、メールにはutm_medium=emailを使う。異なるチャネルには異なるmedium値。それがutm_mediumの役割だ。
FAQ
Shopify Analyticsを使っていればUTMパラメータは不要?
Shopify Analyticsはトラフィックソースを内部的に追跡するが、Shopifyエコシステム内に限られる。GA4、Looker Studio、その他の外部分析ツールも使っているなら、正確なアトリビューションを得る唯一の信頼できる方法がUTMパラメータだ。Shopify AnalyticsとGA4はセッションの計測方法が異なるため、しばしば異なる数値を示す。UTMがあればGA4のデータがキャンペーン構造と一致する。
商品フィードURLにUTMパラメータを追加できる?
できる。ほとんどの商品フィード管理ツール — DataFeedWatch、Feedonomics、GoDataFeed、Channable — がフィード内のすべての商品URLにUTMパラメータを追加する機能をサポートしている。フィードレベルでutm_source=google&utm_medium=cpc&utm_campaign=shopping_feedを設定すれば、すべての商品リスティングに一貫したトラッキングが付く。
季節セールに最適なutm_campaignのフォーマットは?
{event}_{year}または{event}_{year}_{month}のパターンを使う: blackfriday_2026、summer_clearance_2026_jul、flash_electronics_2026-05-15。前年比パフォーマンスを比較できるよう、必ず年を含める。saleやpromoのような汎用的な値は使わない。個別キャンペーンを分析する力を失う。
UTMデータと合わせてクーポンコードのパフォーマンスを追跡するには?
クーポンまたはオファー名をutm_contentに追加するか、sale=blackfriday_30percentのようなカスタムパラメータを使う。GA4でUTMキャンペーンとクーポン利用イベントをクロスリファレンスすれば、どのトラフィックソースが最もクーポン利用を促進したかがわかる。utmgenerator.ioの内蔵オファージェネレーターがチーム全体でこれらの名前を統一する。
リターゲティングとプロスペクティングで異なるUTMを使うべき?
間違いなく使うべきだ。リターゲティングとプロスペクティングではコスト、コンバージョン率、ROASが異なる。utm_campaignで区別する: blackfriday_2026_prospecting_lookalikeとblackfriday_2026_retargeting_cart_abandoners。またはutm_termでオーディエンスタイプを指定: utm_term=prospecting_lookalike、utm_term=retargeting_180d。
ヘッドレスコマースプラットフォームでもUTMパラメータは機能する?
機能する。ヘッドレスプラットフォーム(Shopify Hydrogen、BigCommerce + Next.js、commercetools)はJavaScriptフレームワークでページをレンダリングするが、GA4のgtag.jsまたはGTMはレンダリング方法に関係なくページ読み込み時にURLからUTMパラメータを読み取る。分析スクリプトがクライアントサイドルーティングでクエリ文字列が除去される前に、最初のランディングページで発火することを確認するだけだ。
一般的なECサイトに必要なUTMテンプレートの数は?
3〜4プラットフォームで広告を出し、1つのESPでメール配信し、オーガニックソーシャルを運用する中規模ストアなら、通常8〜12テンプレートが必要だ。プラットフォームとチャネルの組み合わせごとに1つ。例: Metaプロスペクティング、Metaリターゲティング、Google Search、Google Shopping、Klaviyoキャンペーン、Klaviyoフロー、オーガニックInstagram、オーガニックTikTok。UTM Generatorで一度作成し、チームと共有して無期限に再利用できる。