Bitly跟踪点击次数的方法是什么

问题描述

我正在尝试实现一个代码,该代码可检测到Bitly链接并基于该移动设备(Android,IOS,网站)来跟踪用户,例如,我想统计点击了Android用户,Apple用户和网站用户的数量位链接,所以这是我的代码

<script type="text/javascript">
    getMobileOperatingSystem();
    function getMobileOperatingSystem() {
        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
        var url = "https://nch.mobi/334NXbn";
        var agnt = "web";
        var pge = "@ViewBag.campaignId";
        var link = '@Url.Action("_AddCount","Home")';
        // Windows Phone must come first because its UA also contains "Android"
        if (/windows phone/i.test(userAgent)) {
            agnt="Windows Phone"
        }// android
        else if (/android/i.test(userAgent)) {
            url = "https://nch.mobi/3m1PM1q";
            agnt = "Android";
        }
        // iOS
        else if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
            url = "https://nch.mobi/35dOPNl";
            agnt = "IOS"
        }


        $.ajax({
            type: "POST",url: link,data: AddFormAntiForgeryToken({ 'campaign': pge,'agent': agnt }),dataType: "json",success: function (response) {
                if (response.success) {
                    window.location.href = url;
                }
                else {
                    alert("Error occured.");
                }
            },error: function (jqXHR,textStatus,errorThrown) {
                console.log(textStatus,errorThrown);
            }
        });
    }
    function AddFormAntiForgeryToken(data) {
        data.__RequestVerificationToken = $("input[name='__RequestVerificationToken']").val();
        return data;
    }
</script>

后端

[HttpPost]
    public ActionResult _AddCount(string campaign,string agent)
    {
        CountTableHelper hlpe = new CountTableHelper();
        var t = new CountTable
        {
            Agent = agent,CampaignId = Convert.ToInt32(campaign),CreatedDate = DateTime.UtcNow,IpAddress = GetIpAddress()                
        };
        hlpe.Create(t);

        return Json(new { success = true },JsonRequestBehavior.AllowGet);
    }

但就我而言,在Bitly中显示的总数应该与我在数据库中收到的总数相同,但事实并非如此,尽管在刷新页面时会跟踪到新的点击,但在Bitly上却是不是这种情况,我该如何修正自己的逻辑以获得相同的点击次数?

感谢您的帮助。

解决方法

您的缺点是有点使用它自己的系统。当您单击一个位链接时。您短暂访问了一些服务器,将其记录下来,然后将您重定向到您要去的地方。

作为“预防滥用”的措施(还有其他措施),也很有可能。刷新页面可能会触发此操作,并且不会记录其他访问。它可以处理多种方式,因此不知道它使用的是哪个。就如何跟踪链接而言,Bitly拥有自己的业务需求。这些需求可能与您的需求不同。

也有可能Bitly在计算总链接时会使用最终的一致性。这意味着它使日志成为单击,但不会立即更新显示计数的页面。

尽管真正的问题可能是为什么要对它计数两次?为什么不使用Bitly的API直接获取计数,因为您已经为每个模型设置了单独的链接?如果您更喜欢Bitly的数字,那么您就不必担心Bitly的数字。

我的推荐?使用bitly的API获取总数或使用您自己的数字。您自己的号码可以为您提供更大的灵活性,因为您可以按用户代理和IP地址过滤掉某些内容,并过滤掉重复的点击,尽管Bitly可能已经做到了这一点。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...