如何将UTM信息传递给表单提交?

时间:2015-05-27 19:07:53

标签: forms google-adwords utm

最重要的是,我想确切地知道哪些线索(表单提交)来自Adwords。

它是一个手动构建的表单(没有JotForm或任何东西),并通过手动构建的php提交,此时,它发送给我一个电子邮件。页面和表单本身就是HTML。

因此,我们可以向Adwords网址添加UTM信息,并且我正在寻找获取UTM信息并将其传递到电子邮件的方式(例如通过表单中的隐藏字段或其他内容。)< / p>

我认为这是确保我们了解付款的最简单方法,但如果没有,请告诉我更好的方法。

TIA

1 个答案:

答案 0 :(得分:0)

跟踪这些utm的最佳方法是将它们存储到js cookie中,然后检索它们以将值存储到表单中的隐藏字段中。 使用cookie将允许您浏览不同的页面,而无需在URL中反复传递数据。

您可以修改此解决方案以用于表单。 http://www.decorumsol.com/tracking-utm-parameters-in-contact-form-7/

编辑: 以下是更好理解的代码。

function getQueryVariable(variable)
    {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if(pair[0] == variable){return pair[1];}
        }
        return(false);
    }    
    jQuery(document).ready(function() {
        jQuery('form').find('input.utm_source').each(function() {
            var a = getQueryVariable('utm_source');
            if(a){
                jQuery(this).val(a);
            }
        });
        jQuery('form').find('input.utm_medium').each(function() {
            var a = getQueryVariable('utm_medium');
            if(a){
                jQuery(this).val(a);
            }
        });
        jQuery('form').find('input.utm_campaign').each(function() {
            var a = getQueryVariable('utm_campaign');
            if(a){
                jQuery(this).val(a);
            }
        });
        jQuery('form').find('input.utm_term').each(function() {
            var a = getQueryVariable('utm_term');
            if(a){
                jQuery(this).val(a);
            }
        });
        jQuery('form').find('input.utm_content').each(function() {
            var a = getQueryVariable('utm_content');
            if(a){
                jQuery(this).val(a);
            }
        });
    });

    function createCookie(name,value,days) {    
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        document.cookie = name+"="+value+expires+"; path=/";
    }

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    function eraseCookie(name) {
        createCookie(name,"",-1);
    }
    var c_name = "_aaa_utmz";
    if(getQueryVariable("utm_source") != "") {
        createCookie("_aaa_utmz", getQueryVariable("utm_source") + "|" + getQueryVariable("utm_medium")+ "|" + getQueryVariable("utm_term")+ "|" + getQueryVariable("utm_campaign")+ "|" + getQueryVariable("utm_content"), 60);
    }
    else if (readCookie(c_name)){
        c_start=readCookie(c_name);
        var _pipe = c_start.split("|");
        jQuery("input[name=utm_source], .utm_source").val(_pipe[0]);
        jQuery("input[name=utm_medium], .utm_medium").val(_pipe[1]);
        jQuery("input[name=utm_term], .utm_term").val(_pipe[2]);
        jQuery("input[name=utm_campaign], .utm_campaign").val(_pipe[3]);
        jQuery("input[name=utm_content], .utm_content").val(_pipe[4]);
    }

在您的html表单中,创建

<div style="display:none;">
<input type="text" value="" class="utm_source" name="utm_source" />
<input type="text" value="" class="utm_medium" name="utm_medium" />
<input type="text" value="" class="utm_term" name="utm_term" />
<input type="text" value="" class="utm_campaign" name="utm_campaign" />
<input type="text" value="" class="utm_content" name="utm_content" />
</div>