mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-15 01:48:18 -05:00
Embeds: use our session-appending redirector to track link clicks
This commit is contained in:
@@ -124,6 +124,7 @@ adtracker_url = /pixel/of_doom.png
|
||||
adframetracker_url = /pixel/of_defenestration.png
|
||||
# redirector to bounce clicks off of on sponsored links for tracking
|
||||
clicktracker_url = /click
|
||||
event_clicktracker_url = /event_click
|
||||
# url to request to track interaction statistics
|
||||
uitracker_url = /pixel/of_discovery.png
|
||||
# embeds pixel tracking url
|
||||
|
||||
@@ -80,6 +80,7 @@ def set_up_embed(embed_key, sr, thing, showedits):
|
||||
c.embed_config = {
|
||||
"eventtracker_url": g.eventtracker_url or "",
|
||||
"anon_eventtracker_url": g.anon_eventtracker_url or "",
|
||||
"event_clicktracker_url": g.event_clicktracker_url or "",
|
||||
"created": iso_timestamp,
|
||||
"showedits": showedits,
|
||||
"thing": {
|
||||
|
||||
@@ -73,18 +73,28 @@
|
||||
var base = document.getElementsByTagName('base');
|
||||
var target = el.target || (base && base[0] && base[0].target);
|
||||
var newTab = target === '_blank';
|
||||
var payload = {
|
||||
var payload = createPayload(type, 'click', {
|
||||
'redirect_url': el.href,
|
||||
'redirect_type': el.getAttribute('data-redirect-type'),
|
||||
'redirect_dest': el.host,
|
||||
'redirect_thing_id': el.getAttribute('data-redirect-thing'),
|
||||
});
|
||||
var redirectParams = {
|
||||
"data": JSON.stringify(payload),
|
||||
"url": el.href,
|
||||
};
|
||||
|
||||
tracker.send(createPayload(type, 'click', payload), function() {
|
||||
if (!newTab) {
|
||||
window.top.location.href = el.href;
|
||||
}
|
||||
});
|
||||
// Use a DOM object for easier query manipulation
|
||||
var tmpLink = document.createElement('a')
|
||||
tmpLink.href = config.event_clicktracker_url;
|
||||
tmpLink.search = '?' + App.utils.serialize(redirectParams);
|
||||
|
||||
// Rewrite our URL to our event-driven URL
|
||||
el.href = tmpLink.href;
|
||||
|
||||
if (!newTab) {
|
||||
window.top.location.href = el.href;
|
||||
}
|
||||
|
||||
return newTab;
|
||||
}
|
||||
|
||||
@@ -51,4 +51,17 @@
|
||||
return uuid;
|
||||
};
|
||||
|
||||
// Given an object, serialize it into a set of urlencoded query parameters
|
||||
App.utils.serialize = function(obj) {
|
||||
var params = [];
|
||||
|
||||
for (var p in obj) {
|
||||
if (obj.hasOwnProperty(p)) {
|
||||
params.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));
|
||||
}
|
||||
}
|
||||
|
||||
return params.join('&');
|
||||
}
|
||||
|
||||
})((window.rembeddit = window.rembeddit || {}), this);
|
||||
|
||||
Reference in New Issue
Block a user