mimu
@mimu (健太 三村)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

フォームの入力内容によってコンバージョンに至るを変えたい

解決したいこと

現状、お問い合わせフォームの送信完了画面に遷移した際にコンバージョンに至ります。

入力画面で入力項目(テキストエリア)内にURLが無い場合、コンバージョンに至る。
ある場合、コンバージョンに至らないようにしたいです。


フォームの仕様

futomi'CGI CafeのeCommerce版を使用しています。
フォームの入力画面、確認画面はiframe内で表示しています。

フォームの送信後、完了画面に遷移します。
iframe内(_self)で送信完了画面が表示された場合、GA4の処理をキャンセルさせ、
iframeを解除して再表示することにより、二重計測を回避しています。
iframeではなく(_top)で表示した場合のみ、コンバージョンに至るようになります。

下記を完了画面に設定しています。

<script>
if(self != top){
window['ga-disable-G-XXXXXXXXXX'] = true;top.location=self.location;
}
</script>

発生している問題

入力内容にURLの有無を判定し、処理を分けるところまではできたかなと思っています。

ただ、この判定結果をどうやって完了画面(_top)に渡せばよいかで行き詰っています。

入力画面・完了画面の親ページに下記を入れています。

<script>
  var iframe = document.querySelector('iframe');
  var iframeContent = iframe.contentDocument || iframe.contentWindow.document;
  var form = iframeContent.querySelector('form');
  
  // フォームの送信イベントをリスン
  form.addEventListener('submit', function(event) {
    var textareaValue = form.querySelector('textarea[name="comment"]').value;
    var containsHTTP = textareaValue.includes('http'); // 文字列内に「http」が含まれているか判定
    
    if (!containsHTTP) {
      // コンバージョンに至る
    }else{
      // コンバージョンに至らない
    }
  });
</script>
0

1Answer

top画面に関数を準備して、その関数を呼び出すようにしたらいかがでうか。

  //コンバージョン有無の判断を行う。
  ...
  top.getConversionResult(DoOrNot);//コンバージョン有無を渡す

もしtop画面とiframeの画面は、別々ドメインだったら絶対不可能です。同じドメインなら、top画面のscript関数を呼び出せます。

0Like

Your answer might help someone💌