はじめに

Googleアナリティクスのeコマース測定に関してよく聞く問題は、「トランザクションがうまく計測できていない」といったものです。

「トランザクション」はECサイトのパフォーマンスを直接的に示す数字です。このデータに欠落が生じていると、アナリティクスのコンバージョン率やROASなどの関連指標にも影響を及ぼし、ECサイトのコンテンツを評価することが難しくなります。

また、「Google広告におけるコンバージョンと、アナリティクスにおけるトランザクションに乖離がある」といった問題はよく耳にしますが、こうした問題の要因ともなります* 。

この記事では、こうしたトランザクションの問題への課題感から出発し、より広い視点からeコマースの測定不備への対処方法を整理したいと思います。

*コンバージョン数のズレのその他の要因・回避策については「[総まとめ] Google広告のコンバージョン数 vs アナリティクスのコンバージョン数」を参照してください。

対象読者

  • トランザクションなどeコマースの測定に不安のある方
  • Googleタグマネージャーの設定やHTMLコードの編集に抵抗感のない方

前提

Googleアナリティクスの「コンバージョン」の種類を区別する

Googleアナリティクスで「コンバージョン」と呼ばれる指標には、よく使われる「目標の完了」と、今回のトピックである「トランザクション」の2種類あります。調査にあたってはこれらを区別したうえで関係者とコミュニケーションを取ってください。

1.「目標の完了」

ビュー設定の「目標」で条件を指定することで計測できる指標です。同じセッションで何回コンバージョンを行っても1回しかカウントされません。

2.「トランザクション」(eコマースのコンバージョン)

Googleタグマネージャーでコードを設定するか、アナリティクスタグのコードを編集することで計測できる指標です(参照:e コマース トラッキングの設定)。同じセッションで複数回コンバージョンを行うと、その都度カウントされます。

Googleアナリティクスの「トランザクション」の種類を区別する

Googleアナリティクスで「トランザクション」を計測するには「eコマース」と呼ばれる設定が必要ですが、この設定には2種類の方法があります。調査にあたっては2つの方法の違いを踏まえたうえで、設定やコードを確認してください。

1.「標準のeコマース」

お客様のサイトやアプリでの購入行動を分析できます。商品やトランザクションに関する情報、平均注文額、e コマースのコンバージョン率、購入まで期間などのデータが表示されます。

2.「拡張eコマース」

上記「標準のeコマース」に加え、ショッピングのプロセスを計測できる機能が追加されたレポートです。ユーザーによるショッピング カートへの商品の追加、決済手続きの開始、購入の完了が発生したタイミングを確認できます。

※これらの設定で取得できるeコマースデータ(どういった商品に対してどんなアクションがされたかというデータ)のうち、購入の完了時に取得するデータが「トランザクション」です。

eコマース測定の流れ

以下の処理の流れ①~④のそれぞれでトランザクションを始めとするeコマース測定に問題が起こる可能性があります。

①ユーザーがECサイトページを読み込むと、HTMLに商品データが出力されます。
②専用のJavascriptが動き、eコマースデータ(商品、ページの情報)を取得します。
③Javascriptは取得したeコマースデータをアナリティクスに送信します。
④アナリティクスでは受信したeコマースデータをレポートに出力します。

設定の不備を調べる

「eコマース測定の流れ」の各ステップが成功しているか、「④→③→②→①」の順で調べていきます。

※なお、設定方法の概要については公式ドキュメントをご覧ください:「Google アナリティクスの e コマース

✔ アナリティクスでeコマース設定が有効になっているか?

アナリティクスのe コマースの設定では、「e コマースの有効化」をオンにする必要があります。

さらに、「拡張eコマース」機能を使いたい場合、「拡張 e コマースのレポートを有効化」をオンにする必要があります。

✔ eコマースデータがアナリティクスに送信されているか?

アナリティクスでeコマース設定が有効になっていれば、アナリティクスで受信したeコマースデータをレポートに出力させることができますが、そもそもデータがECサイトからアナリティクスに送られていなければなりません。

eコマースデータがビーコンで送られているか?

ビーコンの確認方法

例えばトランザクションのIDは、ビーコンのURLパラメータ名「ti」として送られます(「標準のeコマース」「拡張eコマース」ともに同じ)。したがって、トランザクションの不備を調査するためには、この「ti」がパラメータに存在するか確認します。

  1. ブラウザの「デベロッパーツール≫ネットワーク」で「collect」を検索すると、アナリティクスのリクエストがヒットします。
  2. 詳細情報から「Query String Parameters」を確認すると、「ti (=トランザクションID)」などアナリティクスに送信している情報が確認できます(なお、トランザクションID以外のパラメータについては、「標準のeコマース」と「拡張eコマース」とで異なります)。

(その他のパラメータについてはこちらを参照:Measurement Protocol のパラメータ リファレンス≫e コマース

↓キャプチャ:「拡張eコマース」で「トランザクションID=T12345;収益=100;アクション=purchase」を送信した結果

→ビーコンが送られており、かつ、④に問題がないならば、設定に問題はありません。それでも問題が起きているようであれば、複雑な事象が発生している可能性があります。

弊社までご相談ください

→ もしビーコンが送られていなければ、測定に失敗しています。次のチェック項目「eコマースデータを送信するためのコードが存在するか?」に進んでください。

eコマースデータを送信するためのコードが存在するか?

トランザクションIDをはじめとするeコマースデータを送信するには、Googleタグマネージャーのタグで送信する方法と、Javascriptのソースコードで送信する方法の2通りあります。

  • Googleタグマネージャーのタグで送信する場合
    もし以下タグ・変数を設定していなければ、測定したいe コマースデータを送信できません。逆に設定しているのに問題が起きるならば、次のチェック項目「✔ eコマースデータを取得するためのコードが存在するか?」に進んでください。

    • 「標準のe コマース」を使う場合
      「ユニバーサルアナリティクスタグ」を「トラッキングタイプ = トランザクション」で設定しているか?
    • 「拡張 e コマース」を使う場合
      アナリティクスタグが設定されており、

      かつ、その設定変数「Googleアナリティクス設定」で「拡張eコマースを有効にする」にしているか?
  • Javascriptのソースコードで送信する場合
    もし以下いずれのコードも追加していなければ、測定したいe コマースデータを送信できません。逆にコードがあるのに測定できていないならば、送るべきデータが存在しない可能性があります。次のチェック項目「✔ eコマースデータを取得するためのコードが存在するか?」に進んでください。

✔ eコマースデータを取得するコードが正しく実装されているか?

データを取得するためのコードが存在するか?

  • Googleタグマネージャーのタグで取得する場合
    指定のデータレイヤー変数をHTMLに出力しているか?

    • 「標準のe コマース」を使う場合
      以下がHTMLに出力されている(GTMのカスタムHTMLで出力されているケースもある)

      <script>
      window.dataLayer = window.dataLayer || []
      dataLayer.push({
      	'transactionId': '1234',
      	'transactionTotal': 38.26,
      …
      </script>
      

      (参照:Google アナリティクスの e コマース≫標準の e コマース

    • 「拡張 e コマース」を使う場合
      以下がHTMLに出力されている(GTMのカスタムHTMLで出力されているケースもある)

      <script>
      window.dataLayer = window.dataLayer || []
      dataLayer.push({
      	'ecommerce': {
      		'purchase': {
      			'actionField': {
      				'id': 'T12345',
      				'revenue': '100',
      ...
      </script>
      

      (参照:拡張 e コマース(UA)デベロッパー ガイド≫購入を測定する

Javascriptのソースコードで取得する場合

もし以下いずれのコードも追加していなければ、測定したいe コマースデータを取得できません。逆にコードがあるのに測定できていないならば、取得すべきデータが存在しない可能性があります。

コードがeコマースデータを取得してからビーコンを送信するという順になっているか?

  • Googleタグマネージャーで取得する場合
    • タグのトリガーはデータレイヤーの出力後に起動するような条件になっているか?
      Google アナリティクスの e コマース」に記載のとおり、「すべてのトランザクション情報は、データレイヤーを介して…渡される必要があります。」 したがって、データレイヤー変数に商品情報が出力されてからタグが動くという順番にする必要があります。

      例:タグマネージャーのタグのトリガーがページビューで、データレイヤーの出力がDOM Readyの場合

      商品情報をDBからWebページに出力している場合、「ページビュー」のタイミングで商品情報が存在するのが普通です。しかし、例えばタグマネージャーのカスタムHTMLタグを使ってHTMLのデータ属性から商品情報を抜き出してdataLayer.pushするような処理をしている場合、そのデータレイヤーは「DOM Ready」のタイミング以降でしか使うことができなくなります。

      したがって、eコマースデータを送信するタグのトリガー条件を「ページビュー」のタイミングにしていると、タグで送るべきデータレイヤー変数の商品情報が存在しない状態になるため、eコマースデータを送信することができません

  • Javascriptのソースコードで取得する場合
    • eコマースデータを取得するコードの後にデータを送信するためのコードが処理されているか?
      • 「標準のe コマース」を使う場合
        以下の順番で発火するようにしてください。

        1. 「ga(‘require’, ‘ecommerce’);」
        2. 「ga(‘ecommerce:addTransaction’, {…eコマースデータ…」
        3. 「ga(‘send’ ‘event’ …」

      ※参照:e コマース測定

      • 「拡張 e コマース」を使う場合
        1. 「ga(‘require’, ‘ec’); 」
        2. 「ga(‘ec:setAction’, ‘purchase’, {…eコマースデータ…」
        3. 「ga(‘send’ ‘event’ …」

      ※参照:拡張 e コマース≫トランザクションの測定

まとめ

本記事のチェック項目を満たすか検証し、不備があれば修正してください。

もし、チェックに引っかからないにもかかわらずトランザクションなどのeコマースデータが測定できていなかったり、検証に骨が折れる場合は、弊社プリンシプルまでご相談いただければ幸いです。

デジタルマーケティング戦略、Web解析、SEO、リスティング広告、Facebook広告、Linkedin広告、Tableauでのデータビジュアライズなどなど、何か弊社でお役に立てそうなことがございましたら、こちらよりお気軽にご相談ください。ご相談は無料で承っております。

プリンシプルでは業界最高レベルの専門家として一緒にご活躍いただける方を募集しています。詳しくは採用情報のページをご覧ください。

お気軽にご質問、ご相談ください

関連タグ

principle

データ解析を軸に企業のWebマーケティングやデジタルトランスフォーメーションを支援するデジタルコンサルティングファーム。

関連資料

GA4GA4でUAレポートを再現する新規顧客とリピーターレポート

公開日:2023年02月

GA4でUAレポートを再現する新規顧客とリピーターレポート

関連ブログ