-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtesting.js
65 lines (57 loc) · 1.55 KB
/
testing.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<script>
function createCookie(name, value, days) {
'use strict';
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = '; expires=' + date.toGMTString();
}
else var expires = '';
document.cookie = name + '=' + value + expires + '; path=/';
}
function readCookie(name) {
'use strict';
var nameEQ = name + '=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
var testID = '001',
testName = 'Name of the A/B test',
number = {{Random Number}},
getCookie = readCookie('GTM-'+testID),
testVariant = getCookie;
function optimization() {
'use strict';
// Add your code here
}
function sendDL(variation) {
'use strict';
dataLayer.push({
'event': 'gtm.abtest',
'abtestCategory': 'AB-test',
'abtestAction': 'GTM-' + testID + ' ' + testName,
'abtestLabel': variation,
'abtestValue': 1
});
}
function setCookie(variation) {
'use strict';
createCookie('GTM-' + testID, variation, 30);
}
function control() {
'use strict';
setCookie(testVariant);
sendDL(testVariant);
}
function variation() {
'use strict';
optimization();
control();
}
'1' === getCookie ? (testVariant = '1', variation()) : '0' === getCookie ? (testVariant = '0', control()) : 1073741824 > number ? (testVariant = '1', variation()) : (testVariant = '0', control());
</script>