設定は正しいのにタグが発火しないときはここをチェック!SPAやiframeが原因かも?

タグが発火しない原因fv

 

「テストCVしてもタグが発火しない…」
「設定はあってるはずなのに…」

 

調べても出てくるのは
「トリガー条件あってますか?」
「公開し忘れてないですか?」とかありきたりな記事ばっかり。

 

そんなのとっくに確認済みだっつーの。
という人はこのページを見てみてください。

 

実際に私もあった事例を元に原因と対処法をご紹介します

GTMのプレビューモードの使い方詳しくなるかも。

 

ケース1:SPA(シングルページアプリケーション)が原因

SPAとは、ブラウザによるページ遷移を行わずに単一のページでコンテンツの切り替えを行うWeb アプリケーションのアーキテクチャの名称です。
(ぶっちゃけこの説明を読んでもさっぱりわからないレベルです私は…)

 

簡単に言うと、ページのUI上では遷移しているのに裏側ではURL遷移していないウェブサイトのこと。

また、画面もURLも見かけ上は遷移しているが、(デバックモードで見ると)サイトの裏側ではURL遷移が発生していないケースもありました。

 

URLの遷移が行われないということはGTMで設定したトリガーのURL指定やページビューが機能しなくなります。

 

なお、SPAを採用するとページの表示速度も向上するそうで、最近のウェブサイトやCMSはSPAが主流になりつつあるんだとか。最近これが原因でタグ設置に苦労するケースにたまに出会います。

WixというCMSを使用しているサイトだとほぼ9割がSPAが原因でタグ発火に悩まされると思います。

 

SPAが使用されているかの見極め方

GTMのプレビューモードでCV地点まで到達する

Googleタグマネージャーの右上の「プレビュー」をクリック。

GTMのプレビューボタンの位置

 

検証したいサイトのURLを入力したら「Connect」をクリック。

GTMプレビューモードの見方connect画面

 

別タブか別ウィンドウで対象サイトが表示される。プレビューモードが起動していればその画面の右下にこのようなポップアップが表示されているはず。

GTMのプレビューモードのポップアップ例

 

GTMのページに戻って「Connected!」が表示されていることを確認し「Contonue」クリック。

GTMのContinueボタン

 

※ここまで進めない場合はGTMが正しく設置されていないか、もしくはそもそもGTMを当該ページに設置していない可能性があるので設定状況を見直してください。

※GTMは設置されてるけどConnectedにならない場合はTag Assistantの拡張機能を一度オフにして再度オンにすることで解消されることがありますので試してみてください。

 

再度対象サイトのページに戻って、そのまま通常のユーザーのようにコンバージョン地点まで進める。

今回はLP→フォーム入力画面→入力内容確認画面→サンクスページという導線でCV地点まで到達したと仮定して話を進めます。

 

GTMのデバックを確認する

まずはGTMのデバックの見方です。

 

左側にズラーっと並んでいるのがイベントです。ページが読み込まれたり、クリックされたり、スクロールされたりするたびにそれら操作(イベント)が1個ずつ記録されます。

プレビューのイベント一覧箇所

 

その中でも日本語で記載されている部分が読み込まれたページのタイトルを指します

下記の例では最初に「kinoko_adのブログ」というページが読み込まれ、その次に「このブログについて-kinoko_ad」のページに遷移したということです

下から古い順に記載され、さらに読み込まれたページごとに発生したイベントが記録されていきます。

プレビュー上のページのタイトルの部分

 

各ページタイトルをクリックするとそのページのURLが確認できます。

URLの確認

 

また念のため、発火させたいCVタグが「Tags Fired」の項目にあるか確認しましょう。「Tags Not Fired」のほうにあったら発火していません

左側の「Summary」を選択した状態で「Tags Fired」になければ一度もCVタグが発火していないことになります。

「Tags Fired」にも「Tags Not Fired」にも無い場合はそもそも広告のCVタグをGTMに設置していない可能性が高いのでまずはGTMで広告のCVタグを設置しましょう。

GTMプレビューモードのsummary

 

さて、この時に「LP→フォーム入力画面→入力内容確認画面→サンクスページという流れで計4回PVが発生しているはずなのに4ページ分のタイトルが表示されてないぞ?」となったあなたはSPAが原因である可能性が高いです。

 

上記の方法で記載した通り、日本語で書かれた各ページタイトルをクリックして1つずつページURLを確認していき、どこのページが読み込まれていないのかを特定します。

サービス紹介ページや事例紹介などのサイトのメインコンテンツ部分は問題なくURL遷移している場合でも、入力画面以降のフォームは別CMSで作成されており、そのCMSにSPAが使用されていてタグが発火しないケースも多々ありました。

どのページからURLが読み込まれていないかをGTMのプレビューモードで特定したらサイト制作者等に確認してSPAが使用されているか確認しましょう。

 

SPAが使われていた際の対処法①:クリックによる計測

SPAではURLの遷移が行われていないことになっているので(サンクスページのURLが読み込まれていないことになっているので)ページビュートリガーを設定しても発火されません。

 

そのため、ページビューでの発火をあきらめてクリック要素での発火が検討されます。

 

クリックトリガーで発火させる場合にはトリガーのタイプを「すべての要素」で設定する必要がある点に注意です。「リンクのみ」のトリガータイプはSPAでは反応しませんでした。

※トリガーの設定方法や組み込み変数の設定方法などはここでは割愛。

GTMのClickTextトリガーの設定の仕方画像

トリガーのタイプを「すべての要素」にした上でClick Textなどでトリガーの発生条件を指定。

その設定が完了したら「公開」をする前にプレビューモードで再度テストCVを行い問題なく発火しているか確認します。

 

プレビューモードでサンクスページまで到達したら、まずは「Summary」を選択した状態で該当のCVタグが「Fired 1 time(s)」になっていることを確認してください。ここの回数は発火回数になります。

(案件やサービス、CV地点をどこに置くかにもよるが)サンクスページへの到達は基本的に1回だと思うので「Fired 2 time(s)」とかになっていると望まない地点で発火している可能性が高いのでトリガー設定を見直しましょう。

GTMプレビューモードのタグ発火回数の確認方法




「Summary」で「Fired 1 time(s)」になっていても、設定ミスによりサンクスページより前で発火している可能性もあるので、発火すべきページの発火すべきイベントを選択した状態でCVタグが発火しているかも確認しましょう。

GTMプレビューモードのイベント単位での発火回数確認方法



 

※ClickTextトリガー以外でもClickElementで「CSSセレクタに一致する」などでももちろん計測可能。例えば下記のような記述がされていたら、

cssセレクタの例

下記のようなトリガー設定でもOK。

ClickElementのCSSセレクタに一致するvalue要素のトリガー設定の仕方

もしくは、

ClickElementのCSSセレクタに一致するtype要素のトリガー設定の仕方

もちろんほかの設定でも発火すると思いますが、必ずGTMのプレビューモードで発火の確認はしましょう。

 

追記

調べた結果、下記のような「履歴の変更」のトリガータイプでもSPAには有効かもしれません。こちらはまだ検証していないのでわかり次第追記します。

GTMの履歴の変更トリガータイプの設定例

 

 

SPAが使われていた際の対処法②:カスタムイベントをトリガーとする

SPAが使用されていると上記のクリックでの計測でも設定が困難な場合があります。

 

その際は「カスタムイベント」をトリガーとして計測する方法があります。

 

SPAが使用されている場合、ページ遷移が発生する際にSPA特有のイベントが発生します。その特有のイベントの発生をトリガーとして発火させるイメージです。

 

SAPでのサイトをGTMのプレビューモードで見ると、ページ遷移するCTAボタンをクリックしたときに「History」というイベントが生成されているのが確認できると思います。

SAPが使用されているサイトのGMTプレビューモードで見られるHistoryイベント例

その中の「カスタムイベント」要素をトリガーとして設定すると疑似的にサンクスページでの計測ができます。

GTMのカスタムイベントトリガーの設定方法例

設置後は上述した通りテストCVをしてプレビューモードで発火確認をしましょう。

 

ケース2:フォームにiframeが使用されていることが原因

フォームに外部ツールが使用されており、そのフォームがiframeで埋め込まれていると正常に発火しないケースがあります。
(セールスフォースを使用している会社だとフォームをiframeで埋め込んでいるケースが多いのかな?

 

ソースコードを確認すればiframeが使用されているかわかりますが、GTMのプレビューモードを見た際に下記のようにGTMのポップアップが重複して表示されていたらiframeが使用されている可能性が高いです。

iframeが使用されているときのGTMのプレビューの表示のされ方例

発火させる方法についてですが、正直私みたいな一般の運用者にはテクニカルすぎて説明できません。そのため、Googleアナリティクスのサポートかwebエンジニアに依頼するのがベストです。

 

Googleサポートに依頼すると発火させるための手順をGoogle meetで画面共有しながら教えてくれます。

また、発火させる際にコードを書く必要があるのですが、そのコードもコピペでもらえます。(この辺は サポート担当者によるとは思いますが。)

 

発火させる手順の概要は下記の通りです。
下記のような手順で発火させたいということをエンジニアさんに依頼すればなんとなく伝わるかと思います。

※以下、アクセスしているサイトを「親要素」、iframe内のフォームを「子要素」として説明します。

  1. 子要素でフォームが送信されたとき(もしくは子要素でサンクスに到達したとき)に親要素にシグナルを送信するコードをGTMのカスタムHTMLで設定
  2. そのシグナルを親要素で受け取り、データレイヤーにカスタムイベントとしてプッシュするコードをカスタムHTMLで設定(この時のトリガータイプは親要素URLのページビューで設定すると思われる)。
  3. その受け取ったカスタムイベントをトリガーとして広告タグを発火させる

 

まとめ

設定は問題ないはずなのになんで発火しないんだ?と迷走して調査に何時間も費やしたことがありました。

ネットで調べても「そんなのとっくに確認済みだわ!」という記事ばかりだし、周りにエンジニアとか技術に長けている人もいないしで途方に暮れていました。

そんな運用者や事業会社側のマーケティング担当者はきっと多いんだろうなということであまり世に出回ってない発火の不具合原因を書きました。