iframeの埋め込みフォーム、とても便利なんですが
最近多い、iframeで埋め込みされているフォームのトラッキング。
MAツールやCRMツールでツール側でフォームの項目をパシパシつくって「いっちょ上がり!iframeで埋め込んでサクッとフォーム実装完了!」なんて便利なツールが溢れているのも理由だと思います。
それはとても良いことなのですが、いざGTMでトラッキング設定しようとすると、「完了画面になってもURLが変わらない」、じゃあ仕方ない「送信ボタンのクリックで…、え?感知できない…。」など、お手上げになってご相談いただく事例が多いです。
子フレームと親フレームは別世界なので、基本的には子フレームの操作は親フレームは感知できないし、親フレームからの指示は子フレームに届かない。そんなにすれ違いでいいの?あなたたち。と思いますが、コミュニケーションがうまく取れないんです。
解消のためには、子どもから親への訴えかけが必要
このコミュニケーションのすれ違いは、子フレームから親フレームへの訴えかけが必要です。
window.parent.postMessageというとても素敵な関数で、子から親へメッセージを送ることができます。
子どもの世界でフォームが送信された時に「ねえねえ、フォーム送信されたよ」と親にメッセージが届きます。
それを受け取った親は「そんなことがあったんだ、じゃあGA4に私から伝えておくね」という処理ができます。
基本的にはこういった方法で、計測が可能ですがもちろんGTMでノンプログラミングで設定。というわけにはいきませんので、弊社の営業から、いつもより少し高めの見積もりが提出されても少し多めに見てやってください。
ただ、条件によっては本当に、どう足掻いてもCVが取れずお手上げになる状況もあります。厳しいパターンとしては下記のようなパターン。
1. JavaScriptは記述させません。
「じゃあ仕方ない、ガチンコでJsを書こう!」という気持ちで挑んでも、「あれ、どこにscriptかけるの?」と管理画面上のどこを見渡してもJavascriptを自由に入れる場所が見当たらないこともあります。
2. 絶対に子フレームにはGTMタグを埋めさせない!
埋め込みフォーム側に自由にタグを入れられないパターンも多く、GTMタグを埋め込めない場合があります。その場合は、当然GTM操作できないのでGTM設定をめちゃくちゃがんばっても「あれ?発火しない」と徒労に終わります。
他にも色々原因となることはありますが、埋め込みフォーム側のソースを自由にいじれることはほぼなく、これだけ子フレームへの囲い込みが厳しいと、上記1、2のどちらかができないと、何も手が出せないので本当に詰みとなります(ハイパースーパーエンジニアならどうにかなるのかもしれませんが。)
ということで、子どもの声には耳を傾けよう…、ではなくiframe埋め込みフォームは便利だけど、1手間も2手間も手がかかりますよというお話でした。