ShopifyでGA4の購入が計測漏れする原因と埋め方

GA4の購入が実際の注文より少なくなる原因、注文番号で突き合わせる手順、埋める3つの方法の比較、Google広告への影響、当社が作ったアプリ「GapFill」でできることと料金まで。
当社が広告運用を手伝っているストアで、Shopifyの注文とGA4の購入を1件ずつ突き合わせたところ、GA4に入っていない注文が約2割ありました。タグの設定を見直しても、この差は縮みませんでした。
GA4の購入が実際より少ないと、広告やチャネルの成果が低く見えます。少ないこと自体より困るのは、どのチャネルがどれだけ少なく見えているのかが分からないことです。
この記事では、ShopifyでGA4の購入が計測漏れする原因、自分のストアで漏れを確かめる手順、漏れを埋める方法を順に説明します。後半は、当社がこの問題のために作ったShopifyアプリ「GapFill: GA4 Server Tracking」の紹介です。自社のアプリなので、その前提で読んでください。仕様と料金は2026年10月時点のものです。
ShopifyでGA4の購入が計測漏れするのはなぜ?
ShopifyでGA4の購入が計測漏れするのは、GA4の購入(purchase)が、購入者のブラウザでタグが動いたときにしか送られないためです。ブラウザでタグが動かない購入は、GA4に入りません。
| 原因 | 何が起きるか | タグを直せば拾えるか |
|---|---|---|
| 外部の決済サービスから戻らない | 支払いのあと、ストアの完了ページに戻らずに閉じる | 拾えない |
| 完了ページを開く前に閉じる | 読み込みの途中で閉じる、通信が切れる | 拾えない |
| 広告ブロッカー、ブラウザの追跡防止 | タグの読み込みや送信が止められる | 拾えない |
| AIアシスタントやSNSアプリの中で完結する購入 | ストアのページが開かれない | 拾えない |
| 定期購入の2回目以降 | 注文が自動で作られ、購入者はストアに来ない | 送るかはストアが決める |
| Cookieの同意を拒否 | 計測を断った人の購入 | 拾うべきではない |
| タグの設定ミス、二重設置 | 送られない、または二重に送られる | 直せば拾える |
上の4つは、タグの書き方の問題ではありません。購入者のブラウザでタグが動く機会が、そもそも無い購入です。
定期購入の2回目以降は、少し事情が違います。購入者がストアを訪れていないので、GA4に入れると、訪問の無い購入が増えます。購入率や広告の成果が上がって見えるので、入れるかどうかはストアの方針で決めます。
『ネット広告運用“打ち手”大全 第2版』は、計測を「基礎計測」「シグナル補完」「サーバーサイド」の3段階に分け、下から順に固めることを勧めています。表のいちばん下のタグの設定ミスは、1段めの問題です。まずそこを直し、それでも残る差が、上の原因によるものだと考えるのが順番です。
2026年8月26日以降に購入が急に減ったら
2026年8月26日以降にGA4の購入が急に減ったなら、まず完了ページのタグを疑ってください。Shopifyは、完了ページ(サンキューページ)と注文状況ページを新しい仕組みに切り替えていて、Plus以外のストアの切り替え期限が2026年8月26日でした。チェックアウト設定の「追加スクリプト」は、2025年8月28日から閲覧のみになっています。アプリが入れたスクリプトタグも、注文状況ページではPlusのストアで2025年8月28日、それ以外のストアで2026年8月26日に動かなくなりました。
以前、追加スクリプトにGA4の購入タグを書いていたストアは、そこから購入が送られていない可能性があります。いまは、Google & YouTubeアプリか、管理画面の「カスタマーイベント」(Shopifyが用意している、ページやチェックアウトの行動を計測タグに渡す仕組み)で計測するのが前提です。Google & YouTubeアプリだけで計測しているストアは、この変更の影響を受けていません。
計測漏れ以外で、ShopifyとGA4の売上が合わない理由
ShopifyとGA4の売上が合わない理由は、計測漏れだけではありません。同じ購入でも、数え方が違うと金額や件数がずれます。
| 理由 | ずれ方 | 確かめ方・直し方 |
|---|---|---|
| 税・送料を含めるか | 購入金額に税や送料を含めるかは、タグによって違う | 数件の注文で、Shopifyの金額とGA4の購入による収益を見比べる |
| 返金を引くか | Shopifyの売上は返金を引くが、GA4は返金のイベントを送らないと引かない | 比べるときは、返金前の金額どうしにそろえる |
| タイムゾーン | 日付の境目がずれ、期間の端の注文が前後の日に入る | ShopifyとGA4のタイムゾーンをそろえる |
| 決済サービスが参照元になる | 外部の決済ページから戻った人の購入が、決済サービスからの流入として記録される | GA4のデータストリームの設定で、決済サービスのドメインを除外する参照に登録する |
| 成果をどのチャネルに付けるか | 同じ購入でも、GA4と広告の管理画面で別のチャネルの成果になる | 数字を合わせるのではなく、用途で使い分ける |
| リダイレクトでUTMが消える | 広告からの流入が「direct」などに入る | 広告のリンク先と、リダイレクトの有無を確かめる |
成果をどのチャネルに付けるかのルールの違いは、アトリビューションの記事に詳しくまとめています。UTMの付け方は、UTMパラメータの記事で説明しています。
自分のストアで計測漏れを確かめる手順
計測漏れは、件数の合計ではなく、注文番号で1件ずつ突き合わせて確かめます。合計が近くても、片方にしかない注文と、二重に入った購入が打ち消し合っていることがあるためです。
始める前に、GA4のトランザクションIDに何が入っているかを確かめます。Shopifyの注文番号(#1001 など)が入るか、長い数字の注文IDが入るかは、使っているタグによって違います。GA4の数件と、Shopifyの注文を見比べてください。あわせて、ShopifyとGA4のタイムゾーンが同じかも確かめます。
- Shopifyの管理画面の「注文管理」で期間を決め、注文をCSVでエクスポートします。GA4に届くまで時間がかかるので、期間は2〜3日前までにします。
- CSVを整えます。商品が2つ以上ある注文は、商品ごとに行が分かれるので、「Name」列(注文番号)で1行にまとめます。キャンセルした注文(「Canceled at」に日付がある行)と、POSや下書きから作った注文(「Source」列で分かります)は除きます。
- GA4の「探索」で自由形式のレポートを作り、ディメンションに「トランザクション ID」、指標に「トランザクション」と「購入による収益」を入れます。期間は1と同じにします。表は初めは10行しか表示されないので、「表示する行数」を最大にしてから、右上の「データをエクスポート」で書き出します。探索の使い方は探索レポートの記事にまとめています。
- 2つの一覧を注文番号で突き合わせ、GA4に無い注文を出します。スプレッドシートの XLOOKUP で足ります。注文番号の「#」の有無がそろっていないと一致しないので、
=SUBSTITUTE(A2,"#","")のような式でそろえてから突き合わせます。 - GA4に無い注文を、「Payment Method」(決済方法)と「Source」(販売チャネル)の列で分けて見ます。特定の決済方法や販売チャネルに偏っていれば、原因の見当がつきます。
- 逆に、GA4でトランザクションが2以上になっているIDがあれば、二重に入っています。タグの二重設置を疑ってください。
差が急に広がった時期があれば、その前後に決済方法の追加、テーマの変更、アプリの入れ替えが無かったかも記録しておきます。『クッキー規制を乗り越える! 新しいデジタルマーケティングの本』は、事業の実績、管理画面の数字、計測の条件、計測できていない範囲を分けて記録し、条件が変わった期間をそのまま比べないことを勧めています。計測漏れを調べるときも同じです。
計測漏れを埋める3つの方法(タグの見直し・サーバーサイドGTM・Measurement Protocol)
タグを直しても残る計測漏れは、タグの見直し、サーバーサイドGTM、Measurement Protocolでの送信の3つの方法で埋められ、ブラウザを通らない購入まで補えるのはMeasurement Protocolだけです。
| 方法 | 補えるもの | 補えないもの | 手間 |
|---|---|---|---|
| タグの見直し(Google & YouTubeアプリ、カスタマーイベント) | 設定ミス、二重設置 | ブラウザでタグが動かない購入 | 小さい |
| サーバーサイドGTM | 広告ブロッカーによる漏れの一部、Cookieの保持期間 | 一般的な構成では、ブラウザでイベントが起きなかった購入 | 大きい。計測をサーバー経由に切り替え、運用も要る |
| 注文からMeasurement Protocolで送る | ブラウザを通らない購入を含めた、GA4に無い注文 | 同意を拒否した人の購入(送るべきではない) | 中くらい。すべての購入を送るなら、今の購入タグを止める必要がある |
サーバーサイドGTMは、ブラウザで取ったイベントを自社のサーバーでいったん受けて、GA4などに送り直す仕組みです。『ネット広告運用“打ち手”大全 第2版』も、最初のシグナルはブラウザで取る前提で説明しています。一般的な構成では、ブラウザでイベントが起きなかった購入は、もとのデータが無いので補えません。Shopifyの注文の通知(Webhook)をサーバーサイドGTMで受ける構成も組めますが、その場合は重複の防止や同意の判定を自前で作ることになります。
Meta広告では、同じようにサーバーから成果を送る仕組みをコンバージョンAPIと呼びます。考え方はコンバージョンAPIの記事にまとめています。
Measurement Protocolとは
Measurement Protocolは、サーバーからGA4に直接イベントを送るための、Googleの仕組みです。注文データを起点にできるので、ブラウザを通らない購入も送れます。Googleは、Measurement Protocolを「完成した状態で、廃止の予定はない」としたうえで、新しくサーバー間の連携を作る場合は Data Manager API を勧めています。
自前で作るときは、次の点で詰まりやすくなります。
- 購入者のGA4のクライアントID(GA4がブラウザごとに振る識別番号)とセッションIDを、チェックアウトの時点で控えておく必要があります。Googleのドキュメントは、クライアントIDをサイトのGA4タグが作ったIDとそろえるよう求めています。IDが無いと、元の訪問とつながりません
- 過去の日時を付けて送れるのは72時間前までです。ただし、成果の紐づけを正しく行うには、元の時刻から48時間以内に届けることが勧められています
- 送ったリクエストの中身が壊れていても、エラーは返りません。届いたかどうかは、検証用の送り先やGA4のDebugViewで確かめる必要があります
- ブラウザのタグが遅れて届いた購入と重ならないように、送る前にGA4に無いことを確かめる必要があります
- Cookieの同意を拒否した人の購入を送らないようにする必要があります
後から送った購入と、Google広告への影響
Measurement Protocolで送ったキーイベントは、GA4とGoogle広告をリンクしていれば、Google広告にも書き出されます。Googleのドキュメントでは、直近のオンラインの行動から63日以内に送ること、そのキーイベントのコンバージョン計測期間内に届くこと、などが条件です。
ここで気をつけたいのが二重計上です。Google広告で、Google & YouTubeアプリのコンバージョンタグと、GA4から取り込んだ購入の両方を「主要」のコンバージョンにしていると、後から補った分が二重に数えられ、自動入札がその数字で学習します。どちらを主要にするかを、補う前に決めておいてください。定期購入の2回目以降を送る場合も、広告の成果として数えるかを先に決めます。
Google広告側で計測を補う方法には、拡張コンバージョンもあります。違いは拡張コンバージョンの記事にまとめています。
計測漏れが分かっても、多くのストアが今のままを選んできた理由
当社はこれまで、広告運用や計測の支援の中で「計測漏れをなくしたい」という相談を何度もいただいてきました。ただ、実際に対策まで進んだケースは多くありません。説明を聞いたうえで「今のままにする」と判断されることが、ほとんどでした。どの方法にも、手放さなければならないものがあったためです。
- サーバーサイドGTMに切り替える場合:計測をまるごとサーバー経由に切り替える必要があり、手間がかかります。切り替えでGA4のユーザーの識別が変わることがあり、そうなると過去のデータと続けて比べられません。実質、計測をやり直すことになります
- Measurement Protocolで購入を送る場合:今の購入タグを残したまま、すべての購入をサーバーからも送ると、同じ購入が二重に入ります。そのため、今の購入タグを止めてから送る必要があります
- GA4をGoogle & YouTubeアプリで入れている場合:Shopifyのストアの多くは、GA4をGoogle & YouTubeアプリで入れています。このアプリでは、購入のイベントだけを止めるような細かい設定はできません。GA4を入れるか、入れないかのどちらかになります
計測漏れがあると分かっていても、それを埋めるために今の計測を作り直すのは割に合わない。そう判断されるのは無理もないことでした。一方で、広告の成果が実際より低く見えたまま予算を決めている状況を、支援する側としてもどかしく感じていました。
今の計測はそのままに、漏れてしまった分だけを送れる3つめの選択肢があればいいのに。そう考えて当社が開発したのが、Shopifyアプリの「GapFill(ギャップフィル)」です。今のタグは入れたまま、GA4に入らなかった購入だけを、あとから追加で送ります。購入タグを止める必要も、計測をやり直す必要もありません。
GapFillでできること
当社が作った「GapFill: GA4 Server Tracking」は、Measurement Protocolで送る方法を、今のタグと並べて使えるようにしたShopifyアプリです。2026年10月にShopify App Storeで公開しました。仕組みと画面はGapFillのサービスページにまとめています。
- 計測漏れレポート(無料):Shopifyの注文とGA4の購入をトランザクションIDで照合し、GA4に無い注文の件数と金額を、購入経路、参照元/メディア、決済方法ごとに出します。上で説明した突き合わせを、アプリが続けて行います
- GA4への送信(Standardプラン):注文から26時間たってもGA4に無い注文を、Measurement Protocolで送ります。チェックアウトのときにピクセル(Shopifyのカスタマーイベントに入る計測用の小さなプログラム)で控えたクライアントIDとセッションIDを使うので、元の訪問と同じ人・同じセッションの購入として扱われます。IDを控えられなかった注文は、注文に残っている流入元の情報から参照元を付けます
- AIやSNSアプリの中で完結した購入:設定で選べば、販売チャネルをもとに参照元とメディアを付けて送ります
- 定期購入の2回目以降、返金、キャンセル:必要なものだけ選んで送れます
- 今のタグはそのまま:Google & YouTubeアプリやGA4のタグを外す必要はありません
26時間待つのは、ブラウザのタグから遅れて届く購入とぶつからないようにするためです。GapFillは、GA4側にその時間帯のデータが入っていることを確かめてから照合します。確かめられないときも、注文から50時間たてば照合して送ります。送るのは注文から70時間以内の注文だけで、それより前の注文は送りません。インストールする前の注文や、送信を承認する前に70時間を過ぎた注文も、GA4には入りません。48時間を過ぎてから送った購入は、Googleのドキュメントのとおり、成果の紐づけが想定どおりにならないことがあります。
料金
| プラン | 月額 | 含まれるもの |
|---|---|---|
| Free | 無料 | 計測漏れレポート |
| Standard | 19ドル | 計測漏れレポート、GA4への送信(月200件まで) |
Standardで月200件を超えた分は、1件あたり201〜1,000件が0.05ドル、1,001〜5,000件が0.03ドル、5,001件からは0.02ドルです。たとえば月に500件送ると、19ドル+300件×0.05ドルで34ドルになります。購入、返金、キャンセルのどれも、1回送るごとに1件と数えます。14日間の無料体験があり、体験中と、送信を承認する前は料金がかかりません。詳しくは料金のヘルプにまとめています。
GA4に後から購入を送るときの注意点(二重計上・承認・同意・前後比較)
GA4に後から購入を送るときに守るべきことは、二重に数えないこと、承認前に送らないこと、同意を守ること、導入の前後をそのまま比べないことの4つです。GapFillでは、次のように扱っています。
二重に数えないこと。 GA4のヘルプは、ウェブのデータで同じユーザーから同じトランザクションIDの購入が届いたときに重複として扱う、と説明しています。ただ、サーバーから送った購入にも同じ処理が効くかは書かれていません。そのためGapFillは、送る前にGA4に同じ注文が無いことを確かめます。送ってから3〜10日後には、その注文の売上がGA4で2倍になっていないかを確かめ、直近30日で確かめた10件以上のうち5%を超えて二重になっていたら、送信を止めます。キーイベントの仕組みはキーイベントの記事で説明しています。
承認前に送らないこと。 プランを始めても、すぐには送りません。最初は「何を送る予定か」の一覧だけを作り、ストアの方がそれを見て承認してから送り始めます。
同意を守ること。 チェックアウトで計測を拒否した人の注文は送りません。EUなど同意が必要な地域からの注文で、同意を確認できなかったものも送りません。広告への利用に関する同意の状態も、あわせてGA4に送ります。
導入の前後をそのまま比べないこと。 同意を拒否した人の購入は、送らない以上GA4には入らないので、欠測はゼロになりません。また、GapFillを入れた日を境に、GA4の購入の数え方の条件が変わります。入れる前と後の数字をそのまま比べて「購入が増えた」と読まないよう、入れた日を記録しておいてください。
GapFillの使い始め方
- GapFillのサービスページから、Shopify App Storeの掲載ページに進んでインストールします
- アプリのホームの「Googleで連携する」からGoogleアカウントでログインし、計測しているGA4のプロパティを選びます
- 計測漏れレポートで、どこでどれくらい漏れているかを確かめます
- 送信を使う場合は、Standardプランを選び、送信予定の一覧を見て承認します
手順はGapFillのヘルプに、画面つきでまとめています。
参考にした情報
- Send Measurement Protocol events to Google Analytics(Google for Developers)
- Measurement Protocol reference(Google for Developers)
- Measurement protocol use cases(Google for Developers)
- [GA4] Minimize duplicate key events with transaction IDs(Google アナリティクス ヘルプ)
- Non-Plus - Upgrading and replacing your Thank you and Order status pages(Shopify ヘルプセンター)
- Order status script tags(Shopify.dev)
- Exporting orders(Shopify ヘルプセンター)
- ネット広告運用“打ち手”大全 第2版 AI時代に成果を上げる 最強の戦略103(寳洋平・釜周平・ザンノーニ ダリオ)
- クッキー規制を乗り越える! 新しいデジタルマーケティングの本(広瀬安彦)
よくある質問
ShopifyとGA4の売上や購入数が合わないのはなぜですか?
理由は大きく2つです。1つは計測漏れで、外部の決済サービスから戻らない購入や広告ブロッカーなど、ブラウザでGA4のタグが動かなかった購入はGA4に入りません。もう1つは数え方の違いで、税や送料を売上に含めるか、返金を引くか、タイムゾーン、どのチャネルの成果とするか、がShopifyとGA4で違います。当社が運用を手伝っているストアでは、GA4に入っていない注文が約2割ありました。
GA4の購入がShopifyの半分くらいしかありません。設定ミスですか?
半分ほど欠けているなら、まず設定を疑ってください。GA4のタグが購入の場面で動いていない、2026年8月26日以降に古いやり方のタグが止まった、同意バナーの設定で計測が止まっている、などが考えられます。設定を直したあとも残る差が、ブラウザのタグでは拾えない計測漏れです。どちらかを見分けるには、注文番号で1件ずつ突き合わせて、欠けている注文に共通点があるかを見ます。
Measurement Protocolとは何ですか?
サーバーからGA4に直接イベントを送るための、Googleの仕組みです。購入者のブラウザを通さずに送れるので、ブラウザのタグが動かなかった購入もGA4に入れられます。過去の日時を付けて送れるのは72時間前までで、成果の紐づけを正しく行うには、元の時刻から48時間以内に届けることが勧められています。
GA4に後から購入を送ると、二重に数えられませんか?
その恐れはあります。GA4のヘルプは、ウェブのデータで同じユーザーから同じトランザクションIDの購入が届いたときに重複として扱う、と説明していますが、サーバーから送った購入に同じ処理が効くかは書いていません。そのため、送る前にGA4に同じ注文が無いことを確かめる必要があります。GapFillは送る前に確かめ、送ったあとも二重になっていないかを見て、一定の割合を超えたら送信を止めます。
後から送った購入にも、広告や参照元は付きますか?
購入者のGA4のクライアントIDとセッションIDを、チェックアウトのときに控えておけば付きます。GapFillはこの2つを控えて送るので、元の訪問と同じ人・同じセッションの購入として扱われます。IDを控えられなかった注文は、注文に残っている流入元の情報から参照元を付けて送ります。
Cookieの同意を拒否した人の購入も送りますか?
GapFillは送りません。チェックアウトで計測を拒否した人の注文は対象外です。EUなど同意が必要な地域からの注文で、同意を確認できなかったものも送りません。
- GA4の購入は、ブラウザでタグが動いたときにしか送られない。外部決済から戻らない購入、広告ブロッカー、AI・SNSアプリ内の購入は、タグを直しても拾えない
- Plus以外のストアは2026年8月26日に完了ページの切り替え期限を迎えた。古いやり方で置いたタグは、そこで止まっている可能性がある
- 漏れは件数の合計ではなく、注文番号とGA4のトランザクションIDを1件ずつ突き合わせて確かめる
- 埋める方法は、タグの見直し、サーバーサイドGTM、注文からMeasurement Protocolで送る、の3つ。ブラウザを通らない購入まで補えるのは3つめだけ
- 後から送った購入はGoogle広告にも書き出される。広告のタグとGA4の取り込みを両方「主要」にしていると二重に数える
- GapFillは3つめの方法をShopifyアプリにしたもの。レポートは無料、送信はStandard(月19ドル、200件込み)
この記事を書いた人永田 龍史
株式会社ULTRO 代表取締役Shopify Partner。Shopifyストアの構築・保守・広告運用・CRMを一気通貫で担当。個人として運用した広告費は累計40億円超。計測設計から逆算して、利益が伸びる仕組みを作っています。Google 広告の認定資格(検索・ディスプレイ・動画・ショッピング・アプリ・P-MAX・測定)と Google アナリティクス認定資格を保有。
経歴と執筆記事81本を見る → Xでフォローする @Ryushi_ULTRO →自分のストアでは、どうなっているか。
無料診断では、あなたのShopifyの実データを見てサイトの健康状態を確認し、何から直すべきかを改善案とあわせてご提案します。