ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 尝试跟踪用户电子邮件中的点击次数

2019-07-10 07:31:07  阅读:155  来源: 互联网

标签:php javascript google-analytics


我的问题如下:

我正在尝试计算新闻稿中广告的点击次数.问题是我不能在电子邮件中包含js – 这是可以理解的.所以我通过编写这一小段代码找到了解决方法:

<script type="text/javascript" src="http://www.factmag.com/wp-content/themes/modularity_/js/jquery-1.3.2.min.js"></script>

<script type="text/javascript">

    function getUrlVars()
    {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');

            if($.inArray(hash[0], vars)>-1)
            {
                vars[hash[0]]+=","+hash[1];
            }
            else
            {
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
        }

        return vars;
    }

                function redirect()
                {
                    var link = getUrlVars()["page_url"];
                    setTimeout('document.location = "' + link + '"', 100)
                }
</script>
<body onl oad="javascript:redirect();"></body>


<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-4340871-1']);
 _gaq.push(['_trackPageview']);

 (function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 })();

</script>

它托管在我们的服务器和简报中,广告代码具有以下格式:

<a href="http://www.example.com/example_ad_counter/?utm_source=banner6&utm_medium=banner&utm_campaign=banner&page_url=ad_url"><img src="ad_img_url" style="border:1px solid #000;"></a>

那么我想在这里做什么:

>用户点击电子邮件中的广告.
>他带着这个脚本进入页面.
> Google Analytics会计算跟踪它所需的数量.
>脚本将用户重定向到广告商的页面.

现在这是交易 – 谷歌分析在这里没有计算.我的猜测是我需要在google js中添加一些内容才能这样做,但不知道是什么.有人可以帮我这个吗?谢谢.

解决方法:

您希望确保在调用Google代码后调用重定向.目前,您已在onLoad上运行它. yC对于它可能是竞争条件的问题的评论是正确的,但推动你的setTimeout将无法完全解决这种竞争条件.

谷歌将自己插入页面后,您可以尝试调用重定向功能.

这里的代码:

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

…实际上是google为您的网页添加新的脚本标记,然后将分析网址加载到其中. Brendon建议关闭异步是正确的,但后来我建议在var s =文档行(函数内部)之后添加重定向调用,并希望这会给google足够的时间来完成其脏工作并在重定向之前.

如果这不起作用,那么坚持使用yC的建议并进一步推迟超时.只要知道重定向延迟正在与谷歌的脚本加载然后运行所花费的时间竞争,这是不可预测的.我可能会把setTimeout放在我建议直接调用重定向函数的地方.这意味着它甚至不会开始计算延迟,直到谷歌的分析脚本添加到页面.

标签:php,javascript,google-analytics
来源: https://codeday.me/bug/20190710/1421535.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有