javascript - Google Analytics - 使用 GET 而不是 POST

标签 javascript forms google-analytics

遇到一个问题,我需要在表单方法上使用 GET 与 POST,但 GATC cookie 数据没有正确附加到 URL,因为表单数据胜过 Google 的 GATC 数据(使用 linkByPost)。

我已经阅读了发布的潜在解决方案 here ,但要使 GET 正常运行似乎需要大量工作。我还偶然发现了另一个解决方案 here ,但 IE 不考虑 url 的“ anchor ”部分之后的任何内容。

有人有其他想法吗?如果我不能通过 JS 处理这个问题,我将不得不进入处理表单操作的脚本并手动处理查询字符串(假设 GATC 数据在 $_REQUEST 数组中)。使用 get 时,FTR、GATC 数据无法通过 $_REQUEST 数组获得。

最佳答案

为了将来引用,以防万一有人遇到同样的问题,这是我实现的解决方案。我从这个 SO post 的答案中提取了一些代码,并将其与 this post 背后的想法相结合,它在其中本地化 GATC 数据,并为每个表单添加隐藏字段。

结果代码:

$(document).ready(function() {
    $('#formId').submit(function(e) {

        try {

            e.preventDefault();

            var form = this;

            if (typeof _gat !== 'undefined') {

                _gaq.push(['_linkByPost', this]);

                var pageTracker = _gat._getTrackerByName();

                var url = pageTracker._getLinkerUrl(form.action);

                var match = url.match(/[^=&?]+\s*=\s*[^&#]*/g);

                for ( var i = match.length; i--; ) {

                    var spl = match[i].split("=");

                    var name = spl[0].replace("[]", "");

                    var value = spl[1];

                    $('<input>').attr({
                        type: 'hidden',
                        name: name,
                        value: value
                    }).appendTo(form);
                }
            }

            setTimeout(function() { form.submit(); }, 400);
        } catch (e) { form.submit(); }
    });
});

关于javascript - Google Analytics - 使用 GET 而不是 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670317/

相关文章:

javascript - 发现资源分配冲突的最快方法

javascript - 我应该使用nginx重写Nuxt.js吗

Django表单通过多对多字段链接2个模型

javascript - jquery:在第一次使用表单时运行代码

php - 我可以让某些用户查看我的分析数据吗?

google-analytics - 谷歌分析使用测量协议(protocol)从后端发送有关用户的自定义数据

Javascript 也更新了页面

css - 表单输入,当聚焦时,导致提交按钮轻微移动

javascript - 使用 Javascript 设置 Google Analytics 自定义维度,缺少数据

javascript - 在 bootstrap 中固定视频后,Div 位置不正确