158 lines
4.2 KiB
HTML
158 lines
4.2 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Integration test page</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
<p id="title">Page for sending requests to request_recorder</p>
|
||
|
|
||
|
<script>
|
||
|
document.body.className += ' loaded';
|
||
|
</script>
|
||
|
|
||
|
<script>
|
||
|
|
||
|
|
||
|
;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
|
||
|
p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
|
||
|
};p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
|
||
|
n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","./snowplow.js","snowplow"));
|
||
|
|
||
|
// Taken from a random environment variable
|
||
|
|
||
|
var collector_endpoint = '<%= subdomain %>' + '.ngrok.io';
|
||
|
|
||
|
window.snowplow('newTracker', 'cf', collector_endpoint, {
|
||
|
encodeBase64: true,
|
||
|
appId: 'CFe23a',
|
||
|
platform: 'mob',
|
||
|
contexts: {
|
||
|
webPage: true
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Add a global context
|
||
|
var geolocationContext = {
|
||
|
schema: 'iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0',
|
||
|
data: {
|
||
|
'latitude': 40.0,
|
||
|
'longitude' : 55.1
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function eventTypeContextGenerator(args) {
|
||
|
var context = {};
|
||
|
context['schema'] = 'iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1';
|
||
|
context['data'] = {};
|
||
|
context['data']['osType'] = 'ubuntu';
|
||
|
context['data']['osVersion'] = '2018.04';
|
||
|
context['data']['deviceManufacturer'] = 'ASUS';
|
||
|
context['data']['deviceModel'] = String(args['eventType']);
|
||
|
return context;
|
||
|
}
|
||
|
|
||
|
// A filter that will only attach contexts to structured events
|
||
|
function structuredEventFilter(args) {
|
||
|
return args['eventType'] === 'se';
|
||
|
}
|
||
|
|
||
|
function erroneousContextGenerator(args) {
|
||
|
return {};
|
||
|
}
|
||
|
|
||
|
window.snowplow('addGlobalContexts', [erroneousContextGenerator]);
|
||
|
window.snowplow('addGlobalContexts', [[structuredEventFilter, [eventTypeContextGenerator, geolocationContext]]]);
|
||
|
|
||
|
window.snowplow('setUserId', 'Malcolm');
|
||
|
window.snowplow('trackPageView', 'My Title', [ // Auto-set page title; add page context
|
||
|
{
|
||
|
schema: "iglu:com.example_company/user/jsonschema/2-0-0",
|
||
|
data: {
|
||
|
userType: 'tester'
|
||
|
}
|
||
|
}
|
||
|
]);
|
||
|
|
||
|
// This should have different pageViewId in web_page context
|
||
|
window.snowplow('trackPageView');
|
||
|
|
||
|
window.snowplow('trackStructEvent', 'Mixes', 'Play', 'MRC/fabric-0503-mix', '', '0.0');
|
||
|
window.snowplow('trackUnstructEvent', {
|
||
|
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
|
||
|
data: {
|
||
|
productId: 'ASO01043'
|
||
|
}
|
||
|
}, [], {type: 'ttm', value: 1477401868});
|
||
|
|
||
|
var orderId = 'order-123';
|
||
|
|
||
|
window.snowplow('addTrans',
|
||
|
orderId,
|
||
|
'acme',
|
||
|
'8000',
|
||
|
'100',
|
||
|
'50',
|
||
|
'phoenix',
|
||
|
'arizona',
|
||
|
'USA',
|
||
|
'JPY'
|
||
|
);
|
||
|
|
||
|
// addItem might be called for each item in the shopping cart,
|
||
|
// or not at all.
|
||
|
window.snowplow('addItem',
|
||
|
orderId,
|
||
|
'1001',
|
||
|
'Blue t-shirt',
|
||
|
'clothing',
|
||
|
'2000',
|
||
|
'2',
|
||
|
'JPY'
|
||
|
);
|
||
|
|
||
|
// trackTrans sends the transaction to Snowplow tracking servers.
|
||
|
// Must be called last to commit the transaction.
|
||
|
window.snowplow('trackTrans');
|
||
|
|
||
|
var testAcceptRuleSet = {
|
||
|
accept: ['iglu:com.acme_company/*/jsonschema/*-*-*']
|
||
|
};
|
||
|
var testRejectRuleSet = {
|
||
|
reject: ['iglu:com.acme_company/*/jsonschema/*-*-*']
|
||
|
};
|
||
|
|
||
|
// test context rulesets
|
||
|
window.snowplow('addGlobalContexts', [[testAcceptRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
|
||
|
|
||
|
window.snowplow('trackUnstructEvent', {
|
||
|
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
|
||
|
data: {
|
||
|
productId: 'ASO01042'
|
||
|
}
|
||
|
}, [], {type: 'ttm', value: 1477401869});
|
||
|
|
||
|
window.snowplow('removeGlobalContexts', [[testAcceptRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
|
||
|
|
||
|
window.snowplow('addGlobalContexts', [[testRejectRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
|
||
|
window.snowplow('trackUnstructEvent', {
|
||
|
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
|
||
|
data: {
|
||
|
productId: 'ASO01041'
|
||
|
}
|
||
|
}, [], {type: 'ttm', value: 1477401868});
|
||
|
|
||
|
// track unhandled exception
|
||
|
window.snowplow("enableErrorTracking");
|
||
|
|
||
|
// Test for exception handling
|
||
|
function raiseException() {
|
||
|
notExistentObject.notExistentProperty();
|
||
|
}
|
||
|
|
||
|
setTimeout(raiseException, 2500);
|
||
|
|
||
|
</script>
|
||
|
|
||
|
</body>
|
||
|
</html>
|