GA4の売上と経理の売上が合わない。原因は故障でも設定ミスでもなく、2つが別のものを集計しているからです。GA4は購入手続きが完了した時点で送られた金額、経理は返品やキャンセルまで済ませた確定額。ずれるほうが仕様どおりです。
この記事のまとめ#
- GA4と経理がずれるのは故障ではなく、売上として集計している対象が違うから
- GA4の収益指標は購入イベントで送られた金額から計算され、返品はrefundイベントを送った場合にだけ差し引かれる
- refundは自動では発生しない推奨イベントで、送るには実装とカート側の連携が要る
- 消費税では、返品による調整を販売した期ではなく返品が起きた期で行う
- 一致させにいくより、社外に出す確定額は経理・来月の配分は計測データ、と役割を決めるほうが早い
1. 同じ「売上」が違うものを指している#
同じ「売上」という言葉で、GA4の画面と経理の帳簿は別の金額を集計しています。
「先月の売上は?」と聞いたとき、返ってくる金額は聞く相手で変わります。GA4が集計しているのは購入手続きが完了した時点で送られた申告額、経理が集計しているのは返品やキャンセルまで済ませた確定額です。差が出るのは仕様どおりで、先に決めるべきなのは、いまどちらの定義で話しているかのほうです。

上は架空店舗の6か月です。2本の線は同じ受注を見ていますが、上の線は注文が入った月に全額を計上し、下の線はそのあと戻ってきた分を引いています。線が交わることはありません。そして差の大きさは、月ごとに広がったり縮んだりします。
GA4側の仕組みを見ると、この形になる理由がはっきりします。GA4の収益指標は、purchaseイベントで送られたvalueパラメータの値から計算されます[4]。購入手続きが終わった瞬間に送られる金額であって、そのあと商品が返ってきたかどうかは、このイベントに入る余地がありません。
返品を反映する手段そのものは用意されています。GA4にはrefundというイベントがあり、返金した取引のIDと商品を指定して送ると、払い戻し額として記録されます[2]。指標も2種類に分かれていて、「購入による総収益」は購入・アプリ内購入・サブスクリプションの合計、「購入による収益」はそこから払い戻しを引いた金額です[3]。返品を差し引いた売上をGA4で表示すること自体は、できます。
ただし、この経路には条件が付きます。refundは自動的に発生するイベントではなく、自分で送る推奨イベントに分類されています[1]。管理画面のスイッチを入れれば済むものではなく、サイト側にコードを追加する作業になります。返品の処理そのものはカートや受注管理の側で起きるので、そこから返金の情報を受け取ってイベントを送る仕組みも必要です。そして実装しても、金額が1円まで揃うわけではありません。イベント単位の収益はvalueパラメータ、商品単位の収益は価格×数量で計算され、後者には税金と配送料が含まれません[3][4]。どちらを売上と呼ぶかで、また別の差が出ます。
カート側の金額とGA4の金額が食い違う場面の切り分けは、ShopifyとGA4で売上がずれるときでも同じ形をしています。
2. 差額はどこで生まれるか#
差額の中身は、返品だけではありません。

上は同じ架空店舗の直近1か月です。差額79万円のうち、返品が48万円で最大ですが、残りの31万円は別の原因から来ています。
返品は、購入手続きが完了しているので購入の記録が送られます。商品が戻ってくるのはそのあとで、返金が済むまで金額は確定しません。注文キャンセルは発送前の取り消しで、こちらも購入の記録は既に送られたあとです。この2つで差額の8割を占めます。
計上タイミング差は、月末に入った注文が翌月に返品として戻るときに生まれます。消費税では、返品による調整を当初の販売を行った課税期間ではなく、返品を行った課税期間で行います[5]。売上が立つ月と、それが戻る月が別になるということです。1か月だけを切り出して2つの数字を比べれば、この分は必ず残ります。
不正・テスト注文は、決済が通ったあとに取り消されるものと、社内の動作確認で通した購入です。金額としては小さいものの、購入イベントは送られているので計測側には残ります。
ここまで来ると、経理の数字だけ見ればいいという判断になりそうですが、そちらにも使えない場面があります。経理の確定額が出るのは月次の締めのあとで、来月の予算を決める会議には間に合いません。しかも確定額は総額で出てくるので、どのチャネルから来た売上か、どのキャンペーンの売上かに分かれていません。チャネル別の内訳がないため、配分の判断には使えません。
3. 一致させようとしない。使い分けを決める#
2つを一致させる作業より、どちらをどの判断に使うかを決めるほうが先です。

3つは、売上に入る時点も、返品の扱いも、税と送料の扱いも違います。違う定義の金額を同じ枠に入れて引き算すると、出てきた差額が何を表しているかを説明できなくなります。
使い分けの基準は明確です。決算や納税に使う金額、社外に出す確定額は経理の側が正です。来月どのチャネルに広告費を寄せるか、どのキャンペーンを止めるかを決めるときは、計測側の売上が正になります。経理は正確ですが確定まで時間がかかり、計測側は速い代わりに確定前の金額です。優劣の問題ではありません。締め日を待てる判断か待てない判断かで、使う場面が変わります。
月次でやることは、2つの差を埋める作業ではありません。差が売上に占める割合を控えておくことです。先月まで6%前後だった乖離が今月だけ14%になったなら、返品が増えたのか、計測が壊れたのか、どちらかが起きています。金額そのものより、この割合のほうが先に変わります。
配分を決めるとき、経理の確定売上を広告費で割ってしまうことがあります。ただ、確定売上は返品まで終わった月単位の金額で、広告費は出稿した時点の日々の金額です。片方は締めのあとの数字、もう片方は締めの前の数字で、単位が揃わないまま割り算をしていることになります。判断に使う数字は、割り算が成立する単位に固定しておく必要があります。
RevenueScopeの解決策
判断に使う売上を1つの定義に固定すると、その割り算は成立します。RevenueScope の売上は、購入が発生した時点でサイトのタグが受け取った計測売上です。この1つの定義を全チャネル・全キャンペーンに通して表示するので、行をまたいで足しても引いても単位が揃います。
例えば、「先月のチャネル別の売上とRPSは?」とMCP経由でChatGPTなどのAIアシスタントに尋ねると、次の形で返ってきます。RPS(セッションあたり売上)は、1回の訪問がいくらの売上になったかを示す指標です。
| チャネル | セッション | 売上 | RPS |
|---|---|---|---|
| Google検索 | 6,000 | 210万円 | 350円 |
| Google広告 | 4,000 | 120万円 | 300円 |
| Direct | 3,000 | 90万円 | 300円 |
| Meta | 2,500 | 50万円 | 200円 |
※ デモ画面が読んでいるのは見本ECのサンプルデータ(日々更新)です。上の表はそれとは別に、説明用に作った架空店舗ミナトの一例(イメージ)で、金額は丸めています。
先頭はGoogle検索です。セッション・売上・RPSのいずれも首位で、3つの見方で順番が入れ替わりません。ここに並んでいるのは注文時点の計測売上なので、返品が確定すれば実際の金額はこれより下がります。このECサイトで返品が出たとき、経理の確定額と最初に突き合わせる行もGoogle検索になります。差額の中身を確かめるときは、金額の大きい行から順に当たると、説明のつく範囲が先に広がります。
Google広告の内訳は、キャンペーン単位でも表示します。
| キャンペーン | 売上 | RPS | AOV | CVR |
|---|---|---|---|---|
| summer_sale | 70万円 | 350円 | 7,000円 | 5.0% |
| SummerSale | 10万円 | 250円 | 10,000円 | 2.5% |
| (none) | 40万円 | 250円 | 10,000円 | 2.5% |
※ 同じ架空店舗ミナトの一例(イメージ)です。AOVは注文1件あたりの平均金額、CVRは購入に至ったセッションの割合を指します。
summer_saleとSummerSaleは、同じセールのつもりで付けた文字列が別々に記録されたものです。RevenueScope は記録されたとおりに、別のキャンペーンとして表示します。RPSは350円と250円で、間に100円の開きがあります。2つを1つのキャンペーンとして扱っていると、この開きは平均に埋もれます。campaignが設定されていない流入は(none)として、それも1つのキャンペーンと同じ形で表示されます。
表に並ぶ数値は、どれも注文時点の計測売上という同じ定義から計算されています。定義が1つに固定されているので、この開きはキャンペーンそのものの差として読めます。
FAQ#
よくある質問#
Q. GA4にrefundイベントを入れれば、経理と一致しますか?
A. 返品はGA4側にも反映できます。ただしrefundは自動では発生しない推奨イベントで、送るための実装と、返品処理を行うカートや受注管理から情報を受け取る仕組みが要ります[1][2]。入れたあとも、イベント単位の収益と商品単位の収益では税金と配送料の扱いが違い[3][4]、返品の調整時期も税務上は返品が起きた期になります[5]。一致を目標に置くより、確定額は経理、配分の判断は計測データ、と役割を分けたほうが早く終わります。
Q. 差はどのくらいまでなら正常ですか?
A. 業種と商材で返品率が違うので、共通の基準値は置けません。自社の過去数か月の乖離率を書き出して、その幅を基準にしてください。幅の中に収まっている月は中身を調べずに済みます。外れた月だけ、返品・キャンセル・計測の3方向から見ます。
Q. 経理の数字だけで広告予算を決めてはいけませんか?
A. 使えないわけではありませんが、締め日が合いません。確定額が出るのは月次の締めのあとで、来月の配分を決める会議はたいてい同じ週かその前に入ります。加えて確定額はチャネル別・キャンペーン別に分かれていないので、どこを増やしてどこを減らすかの材料にはなりません。
Q. 社内の報告書には、どちらの数字を出せばいいですか?
A. 目的で選んで、選んだ側を1行明記してください。売上の実績報告なら経理の確定額、施策の評価なら計測側の売上です。「注文時点の計測売上」「返品確定後の確定額」のどちらかが書いてあれば、あとから見た人が別の数字と突き合わせて混乱せずに済みます。
まとめ#
GA4と経理がずれるのは、集計している対象が違うからです。GA4は購入手続きが完了した時点で送られた金額、経理は返品やキャンセルまで済ませた確定額。GA4側にrefundイベントを入れれば返品も反映できますが[1][2]、実装とカート側の連携が要り、税金と配送料の扱いでまた別の差が残ります[3][4]。
経理の側にも仕組みの都合があります。消費税では、返品による調整を当初の販売を行った課税期間ではなく返品を行った課税期間で行い、その税額は税込金額に110分の7.8(軽減税率の適用対象は108分の6.24)を乗じて計算します[5]。返品が起きた月に戻す形になっているので、1か月を切り出して比べれば必ずずれます。
判断の分かれ目は、その数字を何に使うかです。社外に出す確定額を作るなら経理の側、来月の配分を決めるなら計測側。迷ったら、締め日を待てるかどうかで選んでください。締め日を待てない判断に、確定額は間に合いません。
どの広告が売上を生んでいるか、一目でわかる
月5,000セッションまで、AIアナリストもずっと無料。クレジットカード不要。最短5分で導入。



