クイックアンサー
Google Adsのコンバージョン値の誤りは、通常5つの原因のいずれかから発生します:動的な注文合計の代わりに静的値が設定されている、ShopifyとGoogleの間の通貨の不一致、税金・送料の包含/除外の不整合、Data Layer変数のマッピングエラー、またはJavaScriptの型変換バグです。各原因は特定のパターンを生成します — $0の値、水増しされたROAS、または一定の割合で一貫してずれた値。まずパターンを特定し、以下の該当する修正を適用してください。
誤ったコンバージョン値の見分け方
誤ったコンバージョン値は、コンバージョンが欠落するよりも危険です — なぜなら、すべてが正常に機能しているように見えるからです。Google Adsはコンバージョンを報告し、キャンペーンは順調に見え、Smart Biddingはデータに基づいて最適化します。問題は、そのデータが間違っているということです。つまり、すべての最適化判断が誤った情報に基づいています。
誤ったコンバージョン値を示す最も一般的なパターンは以下の通りです:
すべてのコンバージョンが$0または$1を表示
これは実際の注文合計ではなく、静的なデフォルト値が送信されていることをほぼ確実に意味します。Google Adsはコンバージョンイベントを受信しましたが、意味のある値を取得できなかった — または値フィールドにハードコードされたプレースホルダーが含まれています。
ROASが非現実的に高いまたは低い
報告されたROASが20倍なのに、実際の利益率がそれと矛盾する場合、Googleに送信されているコンバージョン値はおそらく水増しされています。逆に、Shopifyの売上が好調なのにROASがひどく見える場合、値が過小評価されているか欠落しています。
値が一定の割合で一貫してずれている
Google Adsの値がShopifyの注文小計よりも常に約15-25%高い場合、税金や送料が一方のシステムには含まれているが、もう一方には含まれていません。一貫したオフセットは、体系的な包含/除外の不一致を示しています。
値が一定の倍率で異なる
Google AdsがShopifyの約1.3倍または0.75倍の値を表示している場合、通貨の不一致がある可能性が高いです — 表示通貨(顧客が支払う通貨)と決済通貨(あなたが受け取る通貨)が異なり、間違った方が送信されています。
一部のコンバージョンは正しい値だが、他は正しくない
断続的な値の問題は、Data Layerのタイミング問題を示していることが多いです — コンバージョンタグが注文値変数が設定される前に発火するため、一部の注文は正しい値を送信し、他はundefinedまたはゼロを送信します。
値の不一致を診断する方法
何かを修正する前に、正確に何が問題なのかを把握する必要があります。根本原因を特定するための体系的なプロセスを以下に示します。
Note
テスト注文は最も強力な診断ツールです。両方のシステムで簡単に見つけられるように、特徴的な価格の商品を使用してください($50.00のような端数のない金額ではなく)。送信された正確な値とShopifyの正確な注文合計を比較してください — いかなる不一致も問題を明らかにします。
診断方法:
- Google Adsで、ツール → コンバージョンに移動し、購入コンバージョンアクションをクリックします。「すべてのコンバージョン値」列を確認し、過去7日間の合計を記録します。
- Shopify管理画面で、分析 → レポートに移動し、同じ7日間の総売上を取得します。2つの合計を比較します。
- Google Adsが大幅に高いまたは低い場合、Google Adsから個別のコンバージョン値をエクスポートし(セグメント → コンバージョン → コンバージョンアクション)、特定のShopify注文と比較します。
- 既知の値でテスト注文を出します(例:$47.00の商品)。24-48時間待ってから、その特定のコンバージョンに対してGoogle Adsが記録した値を確認します。
- サンキューページでGoogle Tag AssistantまたはGTMプレビューモードを使用して、コンバージョンタグに渡される正確な値を確認します — 期待する数値ですか?
原因 #1:動的値の代わりに静的値が設定されている
これは最も一般的な原因であり、最も修正が簡単です。Google Adsのコンバージョンアクションを設定する際、Googleはコンバージョン値を尋ねます。固定の数値($1.00や平均注文額など)を入力すると、実際の注文金額に関係なく、すべてのコンバージョンに同じ数値が送信されます。
GTMやトラッキングアプリではなく、Google Adsから直接トラッキングを設定するマーチャントでこれを頻繁に見かけます。設定ウィザードが「このコンバージョンの価値はいくらですか?」と尋ね、マーチャントがAOVを入力します。その時点から、すべてのコンバージョンが同じ静的値を報告します。$15の注文も$500の注文も同じ数値として報告されます。
見分けるポイントは完全な均一性です:Google Adsの個別のコンバージョン値を見て、すべてが同一であれば、静的値の問題があります。
修正方法:
- Google Adsで、ツール → コンバージョン → 購入コンバージョンアクションをクリック → 設定を編集に移動します。「値」で、「各コンバージョンに同じ値を使用」の代わりに「各コンバージョンに異なる値を使用」を選択します。
- GTMを使用している場合、Google Ads コンバージョントラッキングタグの「コンバージョン値」フィールドがData Layer変数({{dlv - transaction.total}}など)で設定されていることを確認します — ハードコードされた数値ではなく。
- サンキューページのData Layerに注文合計が含まれていることを確認します。Shopifyでは、これは通常チェックアウトオブジェクトから取得されます:Shopify.checkout.total_priceまたはWeb Pixel APIのpurchaseイベント。
- 注文を出してTag Assistantで確認することでテストします — 表示されるコンバージョン値は実際の注文合計と一致するはずです。
原因 #2:通貨の不一致
国際販売を行うShopifyストアは複数の通貨を扱っており、これが微妙だが重大なトラッキング問題を生み出します。すべての国際注文には3つの異なる「値」があります:表示通貨(顧客が見て支払う通貨)、決済通貨(通貨換算後に実際に受け取る通貨)、そしてGoogle Adsに送信される値です。
ここが複雑になるところです。あなたのストアが米国拠点(USD決済)で、ドイツの顧客が商品に€85.00を支払った場合、Google Adsはどの値を受け取るべきでしょうか?コンバージョンタグが85(表示金額)を送信し、Google AdsアカウントのがUSDの場合、Googleは$85.00を記録します — 実際のUSD相当額ではありません。値が実際の収益を反映していないため、ROASの計算が間違っています。
逆もまた同様に問題です。タグが送信前にUSDに変換するが古い為替レートを使用している場合、またはGoogle Adsアカウントが別の通貨に設定されているのに決済金額を送信している場合、値は一貫して不正確になります。
Warning
Google Adsは通貨を自動変換しません。通貨コードなしで85の値を送信すると、Googleはアカウント通貨であると仮定します。アカウントがUSDの場合、Googleは$85.00を記録します — 実際の注文が€85.00(約$92 USD相当)であっても。常に通貨コードパラメータを含めてください。
修正方法:
- Google Adsアカウントの通貨を確認します(設定 → アカウント設定 → 通貨)。これがGoogleがコンバージョン値を期待する通貨です。
- コンバージョンタグがGoogle Adsアカウントの通貨で値を送信していることを確認します。Shopifyの決済通貨がGoogle Adsの通貨と一致する場合、決済金額を送信します — 表示金額ではなく。
- GTMを使用している場合、コンバージョンタグに「通貨コード」パラメータを追加します。送信する値に一致する3文字のISOコード(例:'USD')に設定します。これにより、Googleに値が表す通貨を正確に伝えます。
- 多通貨ストアの場合、Data Layerに注文値と通貨コードの両方が含まれていることを確認します。ShopifyのWeb Pixel APIはpurchaseイベントのペイロードで両方を提供します。
- 可能であれば国際注文でテストします。デフォルト以外の通貨でテスト購入を行い、Google Adsが記録する値が期待通りかを確認します。
正確なコンバージョン値を取得
ScaleUpはShopifyの正確な注文金額をGoogle Adsに同期します — 正しい通貨、税金処理、動的値がすぐに使えます。
Shopifyに無料でインストールRated 5.0 on Shopify App Store
原因 #3:税金と送料の包含/除外の不整合
これは「近いが完全には正しくない」コンバージョン値の最も一般的な原因です。Google Adsに送信するコンバージョン値には税金と送料が含まれているが、Shopifyで比較する収益には含まれていない — またはその逆。結果として、ROASを15-25%良くまたは悪く見せる一貫した割合のオフセットが生じます。
税金と送料を含めるべきかどうかに唯一の「正解」はありません。重要なのは一貫性です:Google Adsと比較対象の両方で同じ「値」の定義を使用してください。ほとんどの経験豊富な広告主は注文の小計(税金と送料を除いた商品収益のみ)を追跡します。これは実際の粗利益に最も近く、州や国によって異なる税率の影響を受けないためです。
問題は通常、Shopifyの異なるデータソースが異なる数値を報告するために発生します。Shopify.checkout.total_priceはすべてを含みます。Shopify.checkout.subtotal_priceは税金と送料を除外します。Web Pixel APIのpurchaseイベントはデフォルトでtotal_priceを報告します。トラッキング用に一方のソースから値を取得し、レポートで別のソースと比較している場合、常に不一致が見られます。
Note
ほとんどのShopifyストアでは、注文の小計(商品のみ)を追跡することをお勧めします。税率は場所によって、送料は配送方法によって異なります — これらを含めると値データにノイズが加わります。Smart Biddingはクリーンで一貫した商品収益シグナルでより良く機能します。
修正方法:
- 一貫した値の定義を決定します:小計(商品収益のみ)または合計(税金と送料を含む)。この決定を文書化します。
- コンバージョンタグが読み取るShopifyチェックアウトフィールドを確認します。一般的なフィールド:subtotal_price(商品のみ)、total_price(すべて)、total_tax(税金のみ)、および配送行。
- GTMを使用している場合、Data Layer変数のマッピングを確認します。コンバージョン値に使用される変数がtotal_priceを取得している一方で、Shopifyレポートでは小計と比較している可能性があります。
- Google Adsのコンバージョンアクションの説明を更新して、値に税金/送料が含まれるか除外されるかを記載します — これにより将来の自分(またはチーム)が一貫性を維持するのに役立ちます。
- 変更後、Google Adsが記録する値と対応するShopifyメトリック(同じ包含/除外ルールを使用)の7日間比較を実行します。
原因 #4:Data Layer変数のマッピングエラー
Google Tag Managerを使用している場合、コンバージョン値は次のチェーンを通じて流れます:Shopifyチェックアウト → Data Layer → GTM変数 → コンバージョンタグパラメータ。このチェーンのいずれかのポイントでの断裂や不一致は、間違った値 — またはまったく値なし — を生成します。
私たちが遭遇する最も頻繁なData Layerマッピングエラーは驚くほど基本的なものです。Data Layerが注文値を1つのキー名(ecommerce.purchase.actionField.revenueなど)でプッシュしますが、GTM変数は別のキー(transactionTotalなど)を読み取るように設定されています。変数はundefinedを返し、GTMは値を送信しないかデフォルトを送信し、コンバージョンは$0で記録されます。
もう1つの一般的なシナリオ:Data LayerがpurchaseイベントをトリガーしますがData Layer注文値は数ミリ秒後に別のData Layerプッシュで設定されます。GTMトリガーがpurchaseイベントをキャッチしてタグを発火しますが、その時点では値変数はまだ設定されていません。これにより断続的な問題が発生します — タイミングがうまくいく場合もあれば、そうでない場合もあります。
診断方法:
- GTMプレビューモードを開き、ストアでテスト購入を完了します。
- GTMデバッグパネルで、コンバージョンタグをトリガーするイベント(通常は'purchase'または'transaction'イベント)を見つけます。
- イベントをクリックし、「Variables」タブを確認します。コンバージョン値にマッピングされた変数を見つけます — どの値を表示していますか?
- 変数が'undefined'、'null'、または空の文字列を表示している場合、Data Layerのキー名が変数が読み取るように設定されているものと一致していません。
- Data Layer構造(「Data Layer」タブで確認可能)と変数の設定(Variables → 値変数 → Data Layer Variable Name)を比較します。
修正方法:
- GTMで、Variables → ユーザー定義変数 → コンバージョン値に使用される変数を見つけます。「Data Layer Variable Name」がData Layerの正確なキーパスと一致していることを確認します。
- 一般的なShopify Data Layerパス:ecommerce.purchase.actionField.revenue、ecommerce.transaction.value、またはGA4 eコマーススキーマの場合、ecommerce.value。
- サードパーティのData Layerアプリを使用している場合、そのドキュメントでプッシュする正確なキー名を確認します。推測せず — GTMプレビューで確認してください。
- タイミングの問題については、コンバージョンタグのトリガーをより信頼性の高いイベントで発火するように設定するか、「タグシーケンシング」ルールを使用してコンバージョンタグが実行される前にData Layerが完全に設定されていることを確認します。
- 変更後に再テスト:注文を出し、GTMプレビューを確認し、値変数が正しい注文合計を表示していることを確認します。
原因 #5:JavaScriptの丸めエラーと型エラー
これは最も技術的な原因であり、しばしば最も発見が困難です。JavaScriptは数値をコンバージョン値を静かに破損する可能性のある方法で処理します — タグレベルで送信される実際の値を検査しない限り気づきません。
典型的な例:Shopifyが注文合計を文字列('47.99')として返しますが、コンバージョンタグは数値を期待しています。一部の構成では、加算の代わりに文字列連結が発生する可能性があります。タグが小計に税金を追加しようとし、1つの値が文字列の場合、'29.99' + 5.00は34.99(数値加算)ではなく'29.995'(文字列連結)になります。コンバージョンは$34.99ではなく$29,995を記録します。
浮動小数点の精度もう1つの罠です。JavaScriptはすべての数値を64ビット浮動小数点として格納します。つまり、JavaScriptでは0.1 + 0.2 === 0.30000000000000004です。$19.99の注文の場合、19.990000000000002をGoogleに送信する可能性があります。Googleは通常、小さな浮動小数点の不一致を適切に処理しますが、より長い計算チェーンは意味のある誤った値を生成するエラーを蓄積する可能性があります。
Warning
よくあるGTMの間違い:コンバージョン値変数を{{Page URL}}からのクエリパラメータ抽出に設定すること。URLパラメータは常に文字列です。URLに?value=47.99が含まれている場合、変数は文字列'47.99'を返します — 数値47.99ではありません。常にカスタムJavaScript変数でparseFloat()を使用して解析してください。
修正方法:
- コンバージョンタグに渡す前に、常に文字列値を明示的に数値に変換します。GTMでは、parseFloat(value)またはNumber(value)を返すカスタムJavaScript変数を使用します。
- 送信前にコンバージョン値を小数点以下2桁に丸めます:Math.round(value * 100) / 100。これにより浮動小数点のアーティファクトが除去されます。
- タグ設定自体の中で値の算術演算を行わないでください。最終的なコンバージョン値を専用の変数で計算し、タグでその変数を参照します。
- Data Layerがセント単位で値を提供する場合(例:$47.99に対して4799)、100で割って丸めます:Math.round(centsValue) / 100。これにより文字列/数値の混乱が完全に回避されます。
- GTMプレビューを使用してタグで送信される実際の値を検査します。デバッグパネルでコンバージョンタグをクリックし、タグパラメータを展開し、値が数値(文字列ではなく)であり、小数点以下2桁で正しいことを確認します。
信頼できる修正:自動化された値トラッキング
上記の5つの原因にはそれぞれ特定の修正がありますが、すべてに共通する問題があります:静かに壊れる可能性のある手動設定が必要です。Shopifyのアップデートでdata layer構造が変更されます。テーマのアップデートでチェックアウトスクリプトが変更されます。GTMコンテナの変更で変数が誤って上書きされます。値が再び間違いになり、コンバージョンは記録され続けるため — 金額が間違っているだけで — 何週間も気づきません。
ここで、ScaleUpのような自動トラッキングソリューションが最大の価値を提供します。ScaleUpはWeb Pixel APIとサーバーサイドイベントを通じてShopifyのバックエンドから直接注文合計を読み取ります — Data Layer変数、GTM設定、またはクライアントサイドのJavaScript計算に依存しません。値は常に正しい注文小計、正しい通貨で、適切に数値としてフォーマットされています。
コンバージョン値の推測をやめましょう
ScaleUpはShopifyの正確な注文値をGoogle Adsに自動的に送信します — 正しい通貨、適切な税金処理、Data Layerのマッピング不要、JavaScriptの型問題なし。Shopifyがチェックアウトやdata layer構造を変更しても、ScaleUpは適応します。コンバージョン値は継続的なメンテナンスなしで正確なまま維持されます。
Shopifyに無料でインストール修正が機能したことを確認する方法
上記の修正のいずれかを適用した後、コンバージョン値が正確になったことを確認します:
- 1特徴的な価格(例:$47.53)でテスト注文を出し、両方のシステムで簡単に特定できるようにします。実際の支払い方法を使用し、後で返金します。
- 2Google Tag AssistantまたはGTMプレビューですぐに確認し、コンバージョンタグで送信された値が期待される注文合計と一致していることを確認します。
- 324-48時間待ってから、Google Adsでコンバージョンを見つけます(ツール → コンバージョン → アクションをクリック → 個別のコンバージョンを表示)。記録された値はテスト注文と一致するはずです。
- 4通貨の問題については、可能であればデフォルト以外の通貨でテスト注文を出し、値が正しく変換されることを確認します。
- 57日間の比較を実行します:Google Adsの総コンバージョン値 vs Shopifyの総収益(同じ税金/送料の包含ルールを使用)。数値は5-10%以内で一致するはずです。
- 6この比較を再実行するための月次カレンダーリマインダーを設定します。値のドリフトは微妙で、数ヶ月間気づかれないことがあります。
参考資料

Jamie Scott 著
創業者兼CEO、ScaleUp
Jamieはeコマースのコンバージョントラッキングを専門としており、Shopifyマーチャントがより良いデータ精度を通じてGoogle Adsのパフォーマンスを向上させるお手伝いをしています。
Google Ads & Shopify conversion tracking experts
この記事についてご質問がありますか? FAQをご確認ください または お問い合わせください.
関連リソース
トラッキングを修正する準備はできましたか?
Shopifyで正確なGoogle Adsコンバージョントラッキングを5分以内に設定できます。