appadhoc
Version:
AppAdhoc module for A/B testing
1 lines • 1.56 kB
JavaScript
function AJAX(t,e,n,o,a){var c=http.request({host:t,port:e,path:n,method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"}},function(t){if(null!=a){var e="";t.on("data",function(t){e+=t}),t.on("end",function(){a(e)})}});c.write(JSON.stringify(o)),c.end()}var protocol="https:",ADHOC_GETFLAGS_HOST="experiment.appadhoc.com",ADHOC_GETFLAGS_PORT="80",ADHOC_GETFLAGS_PATH="/get_flags",ADHOC_TRACKING_HOST="tracker.appadhoc.com",ADHOC_TRACKING_PORT="80",ADHOC_TRACKING_PATH="/tracker",ADHOC_FORCEEXP_HOST="experiment.appadhoc.com",ADHOC_FORCEEXP_PORT="80",ADHOC_FORCEEXP_PATH="/force_clients",http=require("http");Date.now||(Date.now=function(){return(new Date).getTime()});var adhoc=module.exports;adhoc.opts={},adhoc.init=function(t){adhoc.ak=t},adhoc.generateClientId=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},adhoc.getExperimentFlags=function(t,e){var n={app_key:adhoc.ak,event_type:"GET_EXPERIMENT_FLAGS",summary:{},client_id:t,custom:adhoc.opts};AJAX(ADHOC_GETFLAGS_HOST,ADHOC_GETFLAGS_PORT,ADHOC_GETFLAGS_PATH,n,e)},adhoc.incrementStat=function(t,e,n){var o={app_key:adhoc.ak,client_id:t,summary:{},stats:[{key:e,value:n,timestamp:Math.round(Date.now()/1e3)}]};AJAX(ADHOC_TRACKING_HOST,ADHOC_TRACKING_PORT,ADHOC_TRACKING_PATH,o,function(){})},adhoc.forceExperiment=function(t,e){var n={client_id:t,qr_code:e};AJAX(ADHOC_FORCEEXP_HOST,ADHOC_FORCEEXP_PORT,ADHOC_FORCEEXP_PATH,n,function(){})},adhoc.setProperties=function(t){adhoc.opts=t};