2013-10-28 51 views
1

我发现了Google Analytics(分析)的此代码,可让您仅分析数据的一个子集用于您的分析。Mixpanel数据抽样/事件采样

_gaq.push(['_setSampleRate', '80']); 

我想要做Mixpanel同样的事情,但是从我的理解SetSampleRate是一个函数,它是专门针对谷歌Analytics(分析)。

我该如何在Mixpanel中做这样的事情?

我浏览过他们的KB &帮助文章,但没有找到任何与此有关的内容。

回答

2

您所要做的就是创建一个从0到100的随机数,并检查它是否低于您拥有的样本目标。如果它比较低,那么跟踪它,否则你不会。

_setSampleRate在Google Analytics中的工作方式是它不是按用户的样本进行抽样。因此,当您生成随机数时,您还必须将其存储在cookie中,以便您可以检查进一步的交互并跟踪或不跟踪。

在下面的示例中,我创建了一个帮助函数,用于检查用户是否在Sample中并为我处理Cookie逻辑。

function inSample(target) { 
    var domain_name = 'mysite.com'; // CUSTOMIZE WITH YOUR DOMAIN 
    var sampleCookie = 'mixpanel_sample='; // COOKIE NAME 

    var current = document.cookie; 

    if (current.indexOf(sampleCookie) > -1) { 
    // Cookie already exists use it 
    var current = document.cookie.substring(
     document.cookie.indexOf(sampleCookie) + sampleCookie.length 
    ); 
    if (current.indexOf(';') > -1) 
     current = current.substring(0,current.indexOf(';')); 

    current = parseInt(current); 
    } else { 
    // Cookie not found calculate a random number 
    current = Math.floor(Math.random()*100) 

    } 
    // reset the cookie to expire in 2 years 
    var two_years = new Date(); 
    two_years.setTime(two_years.getTime() + 2*365*24*60*60*1000); 
    two_years = two_years.toGMTString(); 

    document.cookie = sampleCookie + current + 
     '; domain=' + domain_name + '; path=/' + 
     ' ; expires=' + two_years + ';' 

    return target >= current; 
} 

现在您只需使用此功能即可触发mixPanel跟踪代码。

if (inSample(80)) { 
    // MIXPANEL TRACKING CODE GOES HERE 
} 

你最终得到的是一个Mixpanel中的报告,只包含80%的用户。