通貨が間違い = ROASが間違い
Shopifyストアが複数の通貨で販売しているにもかかわらず、Google Adsが異なる通貨で値を受け取っている場合、ROASの計算は大幅に不正確になります。Smart Biddingは間違った目標に向けて最適化し、広告予算を無駄にします。
クイックアンサー
マルチ通貨トラッキングは、トラッキングタグがある通貨でコンバージョン値を送信しているのに、Google Adsが別の通貨を期待している場合に壊れます。最も一般的な原因:Shopifyは顧客のローカル通貨(表示通貨)で価格を表示しますが、収益はストアの基本通貨(決済通貨)で記録します。トラッキングでは、値とともに決済通貨コードを送信する必要があります。ScaleUpはこれを自動的に処理します。
Shopifyでのマルチ通貨の仕組み
Shopifyは、Shopify MarketsとShopify Paymentsを通じてマルチ通貨販売をサポートしています。複数の通貨を有効にすると、顧客は自分のローカル通貨で価格を表示し、支払いを行います — ドイツの買い物客にはユーロ、日本の買い物客には円、英国の買い物客にはポンド。これが表示通貨です:閲覧およびチェックアウト体験中に顧客に提示される通貨です。
裏側では、Shopifyはすべての海外注文をストアの基本通貨に換算して決済します。ストアが米国拠点の場合、€85.00を支払った顧客の注文は、Shopifyが現在の為替レート(例えば$92.15)でUSDとして内部的に記録します。これが決済通貨です:実際に資金を受け取る通貨です。
ここが重要なポイントです:1つの注文に2つの異なる金額が紐づいています。表示金額(€85.00)と決済金額($92.15)です。どちらがGoogle Adsに送信されるかは、コンバージョントラッキングの設定方法に完全に依存します — これを間違えることは、国際展開しているShopifyストアにおけるROASレポートの不正確さの最も一般的な原因の1つです。
Shopifyはまた、Shopify Marketsを通じて丸めルール、マーケット別の価格調整、および手動為替レートのオーバーライドもサポートしています。つまり、顧客に表示される表示価格は、基本価格の単純な通貨換算ではない場合があります — 地域別の価格調整が含まれている可能性があります。これにより、システム間でコンバージョン値を照合しようとする際にさらに複雑さが増します。
マルチ通貨がコンバージョントラッキングを壊す理由
コンバージョントラッキングが壊れる理由は、明示的に通知しない限り、Google Adsにはコンバージョン値がどの通貨を表しているかを知る方法がないためです。コンバージョンタグが85という値を送信すると、Google Adsはその値がアカウント通貨であると見なします。Google Adsアカウントの通貨がUSDに設定されている場合、Googleは$85.00と記録します — 実際の注文が€85.00(約$92 USD相当)であったとしても。
この問題は、異なる為替レートを持つ複数の通貨にわたってさらに拡大します。¥12,000を支払った日本の顧客は、コンバージョン値として12000を送信します。Google Adsはこれを$12,000 USDとして記録します — 実際の注文金額(約$80 USD)の大幅な過大評価です。日本からのトラフィックのROASは天文学的に高く見え、Smart Biddingはそれらのコンバージョンが非常に収益性が高いと判断して、日本への入札を積極的に引き上げ始めます。
一方、£55.00を支払った英国の顧客は、コンバージョン値として55を送信します。Google Adsは$55.00と記録しますが、これは実際のUSD相当額(約$70)を過小評価しています。Smart Biddingは、英国のトラフィックを実際よりも価値が低いと見なして優先度を下げます。
最終的な結果:入札アルゴリズムが体系的に誤った判断を行います。弱い通貨の国からのトラフィックに過剰投資し、強い通貨の国への投資が不足します。報告される合計ROASは、過大カウントと過小カウントされた値が混在したもので、現実を反映していません。Google Adsレポートの通貨別セグメントのパフォーマンスデータを信頼することはできません。
表示通貨と決済通貨の違い
表示通貨と決済通貨の違いを理解することは、マルチ通貨トラッキングを修正する上で不可欠です。これらはShopify固有の用語で、トラッキングコードがどの金額を取得するかを決定します。
表示通貨は、顧客が目にするものです。ドイツの顧客がストアを閲覧するとき、ユーロで価格を表示し、ユーロでカートに商品を追加し、ユーロでチェックアウトを完了します。顧客のセッションコンテキストのcheckout.total_priceはこの表示金額を反映しています。ほとんどのクライアントサイドトラッキングスクリプト — 多くのGTM Data Layer実装を含む — は、チェックアウト時にブラウザで利用可能な値であるため、表示値を取得します。
決済通貨は、あなたが受け取るものです。顧客が€85.00を支払った後、Shopifyはこれを現在の為替レートを使用して基本通貨(例:USD)に変換し、少額の変換手数料を差し引きます。Shopify管理画面の注文ページには、両方の金額が表示されます:顧客が支払った表示合計と、あなたが受け取る決済合計です。サーバーサイドのデータ — Shopify APIおよびWeb Pixel APIを通じて利用可能 — には、両方の通貨と金額が含まれています。
ルールは次の通りです:Google Adsに送信するコンバージョン値の通貨は、タグに含める通貨コードと一致する必要があり、理想的にはGoogle Adsアカウントの通貨と整合するべきです。Google AdsアカウントがUSDで、Shopifyの決済通貨もUSDの場合、USD通貨コードとともに決済金額を送信するのが最もクリーンな方法です。Googleは自身の通貨で値を受け取り、正確に記録します。
代わりに表示金額を送信する場合は、表示通貨コード(例:EUR)も送信する必要があります。Google Adsは、Googleの独自の為替レートを使用して値をアカウント通貨に変換します。これは機能しますが、2回目の通貨変換(Shopifyのレートとはv.s. Googleのレート)が導入され、報告されるコンバージョン値と実際に受け取った収益の間に小さな差異が生じる可能性があります。
Warning
表示金額を決済通貨コードで送信すること(またはその逆)は絶対に行わないでください。顧客が€85.00を支払ったのに、85をUSD通貨コードで送信すると、Googleは$85.00と記録します — これは正しいユーロ金額でも正しいドル相当額でもありません。これがマルチ通貨トラッキングで最も一般的なエラーです。
よくあるマルチ通貨の問題シナリオ
問題が通常どこで発生するかを理解することで、自分のセットアップをより迅速に診断できます。以下は、国際的なGoogle Ads キャンペーンを実施しているShopifyマーチャントで最も頻繁に遭遇するシナリオです。
USDストアとヨーロッパの顧客(EUR、GBP)
ストアの基本通貨はUSDです。ヨーロッパの顧客はEURまたはGBPで支払います。トラッキングタグは表示金額(例:€85)を取得しますが、通貨コードなしでGoogle Adsに送信します。Googleは$85と記録します — 為替レートの差分だけ間違っています。EURは通常USDより価値が高いため、実際の収益は報告値よりも高く、ROASが実際よりも悪く見えます。
USDストアと日本の顧客(JPY)
日本円はUSDとは非常に異なるスケールです。¥12,000の注文(約$80)は12000としてGoogle Adsに送信されます。JPY通貨コードがないと、Googleは$12,000と記録します — 値を150倍過大評価しています。これは通貨の不一致の最も劇的な例であり、ROASの極端な歪みを引き起こします。
EURストアとUSD顧客
ストアはヨーロッパ拠点(EURで決済)ですが、Google AdsアカウントはUSDに設定されています。EUR決済金額をEUR通貨コードで正しく送信しても、Shopifyの換算レートとGoogleの換算レートの間に小さな差異が生じます。正確な照合のために、一部のマーチャントはGoogle Adsアカウントの通貨を一致させるためにEURに設定しています。
Shopify PaymentsマルチカレンシーとGTM
Shopify Marketsを有効にし、GTMのData Layerがチェックアウト合計をプッシュしています。問題は:ほとんどの標準的なShopify向けGTMセットアップはShopify.checkout.total_priceを取得しますが、これは表示通貨です。Data Layer変数には通貨コードが含まれていません。コンバージョンタグは通貨コンテキストなしの生の数値を送信します。
Google & YouTubeチャネルとMarkets
Shopifyの組み込みGoogle & YouTubeチャネルは一部の通貨ロジックを自動的に処理しますが、制限があります。Marketsの設定で手動為替レートや価格丸めルールを使用している場合、チャネルが報告する値がShopify管理画面で確認できる値と一致しない場合があります。これにより、追跡が困難な微妙な差異が生じます。
通貨の不一致を永久に解消
ScaleUpは顧客の支払い通貨を自動的に検出し、正しい値をGoogle Adsに送信します — 手動設定や通貨変換は不要です。
Shopifyに無料でインストールRated 5.0 on Shopify App Store
通貨の不一致を診断する方法
何かを修正する前に、通貨が実際に問題であることを確認してください。以下は、マルチ通貨トラッキングの問題を診断するための体系的なプロセスです。
Note
通貨の不一致を確認する最も簡単な方法:異なる国からの注文のGoogle Adsコンバージョン値を比較してください。類似商品で日本の注文がヨーロッパの注文の100倍の値を示している場合、通貨コードなしで表示値を送信しています。
診断方法:
- Google Adsアカウントの通貨を確認します:設定(歯車アイコン)>アカウント設定に移動します。表示されている通貨をメモしてください — これがGoogle Adsがコンバージョン値で期待する通貨です。
- Shopifyの基本/決済通貨を確認します:Shopify管理画面 > 設定 > 決済 > Shopify Paymentsに移動します。支払い通貨が決済通貨です。
- デフォルト以外の通貨でテスト注文を行います。例えば、ストアがUSDベースの場合、ヨーロッパの誰かにEURで購入を完了してもらいます。その注文についてShopify管理画面に表示される正確な表示金額と正確な決済金額をメモしてください。
- Google Adsで24〜48時間待ってから、そのテストコンバージョンを見つけます。ツール > コンバージョン > 購入アクションをクリック > 最近のコンバージョンを表示に移動します。記録された値をShopifyの表示金額と決済金額の両方と比較してください。
- Google Adsの値が表示金額と一致する場合(適切な通貨変換なし)、タグが間違った通貨を送信しています。値がどちらの金額とも一致しない場合は、税金/送料の包含の違いなど、追加の問題がある可能性があります。
- テスト購入中のサンキューページでGoogle Tag Assistantを使用してください。コンバージョンタグのパラメータを検査します — 'value'フィールドと'currency_code'フィールドの両方を確認してください。currency_codeが欠落しているか間違っている場合、問題の原因が見つかりました。
手動GTM設定の修正方法
Google Tag Managerを通じてコンバージョントラッキングを管理している場合、マルチ通貨トラッキングの修正には2つの変更が必要です:正しい値が取得されていることを確認し、正しい通貨コードが一緒に送信されていることを確認することです。
まず、Data Layerがどの値を提供しているかを確認します。ほとんどのShopify向けGTMセットアップは、ブラウザコンテキストからチェックアウト合計をプッシュしますが、これは表示通貨です。一致する通貨コードを送信するために、これを知る必要があります。GTMプレビューモードを開き、テスト購入を完了し、サンキューページのData Layerを検査してください。トランザクション値を探し、通貨フィールドが既に存在するかどうかを確認してください。
Data Layerに通貨フィールドが含まれている場合(多くの最新のShopifyピクセルアプリには含まれています)、半分は完了です。この通貨フィールドを読み取るGTM変数を作成し、Google Adsコンバージョントラッキングタグの'Currency Code'パラメータに追加してください。
Warning
表示値を送信しながら通貨コードを基本通貨にハードコードしないでください。'USD'とハードコードしているのに顧客がEURで支払った場合、ユーロの金額がドルであるとGoogleに伝えていることになります。送信される値の実際の通貨と通貨コードを常に一致させてください。
修正方法:
- GTMで、Google Adsコンバージョントラッキングタグを開きます。'Currency Code'フィールドを探してください。空の場合、これが問題です — タグは通貨情報なしで値を送信しています。
- GTMで新しいData Layer変数を作成し、Data Layerから通貨コードを読み取ります。一般的なパス:ecommerce.currencyCode、ecommerce.currency、またはcheckout.currency。正確なパスはData Layerの実装に依存します。
- コンバージョンタグの'Currency Code'フィールドにこの新しい変数を設定します。値は3文字のISO 4217コード(USD、EUR、GBP、JPYなど)である必要があります。
- Data Layerに通貨フィールドが含まれていない場合、2つのオプションがあります:(a) ピクセル/トラッキングスクリプトを変更してData Layerに通貨を追加する、または (b) 通貨を決済通貨にハードコードし、決済値(表示値ではなく)を送信していることを確認する。
- オプション(b)の場合、値変数も変更する必要があります。Shopify.checkout.total_price(表示値)を読み取る代わりに、決済通貨相当額が必要です。ShopifyのWeb Pixel APIはcheckout.totalPrice.amountとcheckout.totalPrice.currencyCodeを提供しています — 正しい通貨コードでの正確な表示トラッキングにこれらを使用してください。
- 修正をテストします:デフォルト以外の通貨でテスト注文を行います。GTMプレビューで、コンバージョンタグのvalueとcurrency_codeパラメータの両方が正しいことを確認してください。通貨コードは送信される値の通貨と一致する必要があります。
Google & YouTubeチャネルの修正方法
Shopifyの組み込みGoogle & YouTubeチャネル(旧Google Shoppingチャネル)は、独自の統合を通じてコンバージョントラッキングを処理します。通貨の処理は、チャネルの設定方法と使用しているバージョンに依存します。
Google & YouTubeチャネルは、Shopifyのイベントシステムを使用してコンバージョンデータを送信します。ほとんどの設定では、正しい通貨コードとともに顧客の表示通貨で注文値を送信します。Google Adsはその後、Googleの為替レートを使用して値をアカウント通貨に変換します。これは一般的に正しい動作ですが、為替レートの差異により、実際のShopify収益と比較して小さな差異が生じる場合があります。
Google & YouTubeチャネルで大きな値の不一致(5〜10%以上)が見られる場合、問題は通常チャネル自体ではなく、別のトラッキング実装との競合です。多くのマーチャントがGoogle & YouTubeチャネルと別のGTMまたはスクリプトベースのコンバージョントラッキングセットアップを同時に実行しています。一方が正しい通貨を送信し、もう一方が送信しません。結果は、値が一貫しない重複コンバージョンです。
競合を確認してください:Google Adsで、ツール > コンバージョンに移動し、コンバージョンアクションを確認します。複数の購入コンバージョンアクション(例:Google & YouTubeチャネルからのものとGTMタグからのもの)がある場合、一方が正確に報告し、もう一方が不正確に報告している可能性があります。単一のコンバージョンソースに統合するか、両方が同じ通貨で同じ値を送信するようにしてください。
修正方法:
- Shopify管理画面で、設定 > アプリと販売チャネル > Google & YouTubeに移動します。チャネルが接続されてアクティブであることを確認してください。
- Google Adsで、ツール > コンバージョンを確認し、重複する購入コンバージョンアクションがないか調べます。プライマリの購入コンバージョンは1つだけにするべきです。複数ある場合は、どれが正確に報告しているかを判断し、他のものを「セカンダリ」に設定して入札に影響しないようにします。
- Google & YouTubeチャネルのみをトラッキングに使用したい場合は、同じコンバージョンアクションに対してサンキューページで発火する他のコンバージョントラッキングコード(GTMタグ、カスタムスクリプト)を削除してください。
- 適切な通貨処理を備えたGTMベースのトラッキングを使用したい場合は、Google & YouTubeチャネルのコンバージョントラッキングを無効にし(チャネル内の設定 > コンバージョントラッキング)、前のセクションで説明したようにGTMセットアップを修正してください。
- 統合後、7日間コンバージョン値を監視してください。Google Adsの合計コンバージョン値を、同じ期間のShopifyの収益レポートと比較し、選択した税金/送料の包含ルールで調整してください。
信頼できる解決策:自動通貨処理
上記のすべての手動修正では、通貨コードを正しく設定し、適切な値と一致させ、Shopifyやテーマが変更されたときにセットアップを維持する必要があります。複数の通貨で販売しているストアにとって、これは継続的なメンテナンスの負担です — そして1つの設定ミスがコンバージョンデータを静かに破損させます。
ScaleUpは通貨トラッキングの問題を完全に排除します。アプリはWeb Pixel APIおよびサーバーサイドイベントを通じて、Shopifyのバックエンドから直接注文データを読み取ります。すべてのコンバージョンについて、ScaleUpは表示金額と決済金額の両方をそれぞれの通貨コードとともに取得します。Google Adsに正しい通貨で正しい値を送信し、アカウントの通貨設定と自動的に一致させます。
GTMの設定、Data Layer変数、手動の通貨コードマッピングは不要です。Shopifyが為替レートを変更したり、新しいマーケットを追加したり、価格ルールを調整したりしても、ScaleUpはShopifyの注文データから直接読み取るため自動的に適応します — 通貨情報が含まれているかどうかわからないクライアントサイドのチェックアウト変数には依存しません。
すぐに使えるマルチ通貨トラッキング
ScaleUpは注文通貨を自動的に検出し、正しい値をGoogle Adsに送信します — 通貨コードの設定、為替レートの計算、GTM変数のマッピングは不要です。すべてのShopify Markets設定、すべての通貨、すべての支払い方法に対応しています。60秒でインストール。
Shopifyに無料でインストール通貨修正が機能したことを確認する方法
上記のいずれかの修正を適用した後、マルチ通貨の値が正確になったことを確認してください:
- 1少なくとも2つの異なる通貨 — 基本通貨と外国通貨 — でテスト注文を行ってください。特徴的な金額(例:€47.53)を使用して、両方のシステムで識別できるようにしてください。
- 2Google Tag Assistantを使用して、サンキューページのコンバージョンタグを検査してください。各テスト注文について'value'パラメータと'currency_code'パラメータの両方が存在し、正しいことを確認してください。
- 324〜48時間待ってから、Google Adsで各テストコンバージョンを見つけてください。外国通貨の注文の場合、値はGoogle Adsアカウント通貨への適切な変換を反映しているはずです。
- 4Google Adsの記録値を、同じ注文のShopify決済金額と比較してください。1〜3%以内であるべきです(小さな為替レートの差異は正常です)。
- 57日間の比較を実行します:Google Adsのコンバージョンデータを国別にセグメント化し、国別のShopify収益と比較してください。通貨処理が正しい場合、すべての国で比率が一貫しているはずです。
- 6毎月この比較を再実行するリマインダーを設定してください。為替レートは毎日変動し、トラッキングの変更(テーマの更新、新しいアプリ)が意図せず通貨処理を壊す可能性があります。
参考資料

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