web-dev-qa-db-ja.com

Facebook Pixelがgtm.formSubmitイベントを発生させるのはなぜですか?

Facebook Pixelインジェクタータグと通常のフォーム送信タグ(標準フォーム送信トリガー付き)を含むGoogle Tag Mangerコンテナーがあります。ただし、フォームの送信ボタンがクリックされると(無効になり、送信されないため)、gtm.formSubmitイベントがelementUrlとして'https://www.facebook.com/tr/'として発生します。このイベントは、タグマネージャーの標準のフォーム送信トリガーによってキャプチャされるため、誤検知のフォーム送信になります。

インジェクタータグを一時停止してテストすることで、ピクセルが原因であることを確認する必要がありました。もちろん、タグはトリガーされませんでした。

送信ボタンのクリック時にPixelがこのイベントを発生させる理由がわかりません。

通常、カスタムイベント名を使用してAJAX経由でフォームを送信することで問題を回避しますが、サイトの性質上、フォームを使用してユーザーを別のページに移動する必要があります。 Pixelがイベントを発生させないようにすることが本当にできない場合、JavaScriptを使用してAJAX経由で投稿し、マークアップに格納されたURLに手動で移動できると思いますが、それは避けたいと思います。

6
Bobe

クライアントのGMBコンテナでデフォルトのフォーム送信トリガーを設定しようとしましたが、同じ問題が発生していました。プレビューモードで少し掘り下げた後、次の解決策を思い付きました。

2番目のフォーム送信トリガーを作成し、「このトリガーが起動する」の下の「一部のフォーム」を選択します。次に、クリックURLに「facebook」が含まれる送信時に起動するように設定します。最初は直感に反するように聞こえますが、このトリガーを使用するタグの「例外」として使用する必要がありますdo。下のスクリーンショット(RegExを使用してSnapchatもブロックしていることに注意してください。これはgtm.formSubmitイベントもトリガーするためです。 Blocking trigger set up

これは、gtm.formSubmitイベントでプレビューモードの[変数]タブを見ると、クリックURLとして https://www.facebook.com/tr/ が表示されるためです。

Click URL

うまくいけば、これは理にかなっていて、あなたの問題も解決するでしょう!

4
Casey

私は同じ問題を抱えていました。できれば、ここに来て、エラーとその解決方法を理解できるケーシーの答えを見ました。しかし、2番目のフォームを作成するのではなく、トリガーを1つだけにする方がいいと思います。そこで、Caseyが示した最初の手順に従って、「Some Forms」ラジオボタン内で次の設定を行いました。

Click URL | does not equal | https://www.facebook.com/tr/

このように、トリガーはFacebook URLバグと一致しないURLでのみアクティブになります。そして喜んで、これは2つではなく1つのトリガーで問題を解決します。

1