如何同时启动转换功能和表单提交?

问题描述 投票:0回答:1

我有一个Google AdWords转换触发事件事件。

我的问题是,提交表单时,我想触发gtag_report_conversion函数。

但是,提交表单后,它将自动重定向到该表单所在的页面(新页面加载),因此它不会运行gtag_report_conversion()函数。

而且我无法在表单提交之前运行gtag_report_conversion,因为该函数需要一个参数(URL),它将重定向到该参数,因此我丢失了表单提交。

我不确定通常如何进行。

谢谢您的时间

触发的AdWords事件。

function gtag_report_conversion(url) {
  var callback = function () {
    if (typeof(url) != 'undefined') {
      window.location = url;
    }
  };
  gtag('event', 'conversion', {
      'send_to': 'AW-834801494/Yv1GCMfi3pYBENaeiI4D',
      'event_callback': callback
  });
  return false;
}

自定义表单验证(检查字段是否为空,否则提交表单。如果为空,则e.preventdefault并显示错误)

const formValidationSubmit = ( elementId ) => {
    document.getElementById( elementId ).addEventListener( "submit", function ( e ) {
        allErrorMessages = document.querySelectorAll( ".help-inline" );
        allErrorMessages.forEach( function ( message ) {
            message.style = "display: none";
        } );

        let errors = [];

        const addError = errors => {
            errors.forEach( function ( error ) {
                let errorElement = document.getElementById( error + "-error" );
                errorElement.style = "display: block;";
            } );
        };

        const housingName = document.getElementById( "property-type-" + elementId );

        if ( housingName.classList.contains( "showName" ) ) {
            if ( housingName.value.length === 0 || "" ) {
                errors.push( housingName.id );
                e.preventDefault();
            }
        }

        let firstName = document.getElementById( "first_name-" + elementId );
        let lastName = document.getElementById( "last_name-" + elementId );
        let phone = document.getElementById( "phone-" + elementId );
        let email = document.getElementById( "email-" + elementId );
        let street = document.getElementById( "street-" + elementId );
        let zip = document.getElementById( "zip-" + elementId );

        const validateInput = ( input ) => {
            if ( input.value.length <= 0 || "" ) {
                errors.push( input.id );
            }
        };

        validateInput( firstName );
        validateInput( lastName );
        validateInput( phone );
        validateInput( email );
        validateInput( street );
        validateInput( zip );

        addError( errors );
    } );
google-tag-manager google-adwords
1个回答
0
投票

您通常用于电话跟踪的转换代码,您到底想跟踪什么,并且您有重定向页面的示例,因为该页面上可能会出现一些可用于触发转换标签的内容

© www.soinside.com 2019 - 2024. All rights reserved.