mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
Refactor all page tracking logic into analytics.js
This commit is contained in:
committed by
Chris Stephens
parent
ea12885ce9
commit
1f6a9aa570
@@ -30,7 +30,7 @@ from r2.lib.utils import UrlParser, timeago, timesince, is_subdomain
|
||||
|
||||
from r2.lib import hooks
|
||||
from r2.lib.static import static_mtime
|
||||
from r2.lib import js
|
||||
from r2.lib import js, tracking
|
||||
|
||||
import babel.numbers
|
||||
import simplejson
|
||||
@@ -178,7 +178,7 @@ def js_config(extra_config=None):
|
||||
"loading": _("loading...")
|
||||
},
|
||||
"is_fake": isinstance(c.site, FakeSubreddit),
|
||||
"tracker_url": g.tracker_url,
|
||||
"tracker_url": tracking.get_pageview_pixel_url() or '',
|
||||
"adtracker_url": g.adtracker_url,
|
||||
"clicktracker_url": g.clicktracker_url,
|
||||
"uitracker_url": g.uitracker_url,
|
||||
|
||||
@@ -210,12 +210,14 @@ r.analytics = {
|
||||
);
|
||||
},
|
||||
|
||||
firePageTrackingPixel: function(params) {
|
||||
params = params || {};
|
||||
var querystring = [];
|
||||
firePageTrackingPixel: function(url, params) {
|
||||
if (!url) { return; }
|
||||
|
||||
var cachebuster = Math.round(Math.random() * 2147483647);
|
||||
querystring.push('r=' + cachebuster);
|
||||
params = params || {};
|
||||
|
||||
var querystring = [
|
||||
'r=' + Math.random(),
|
||||
];
|
||||
|
||||
var referrer = document.referrer || '';
|
||||
var referrerDomain = referrer.match(/\/\/([^\/]+)/);
|
||||
@@ -233,7 +235,7 @@ r.analytics = {
|
||||
}
|
||||
|
||||
var pixel = new Image();
|
||||
pixel.src = r.config.tracker_url + '?' + querystring.join('&');
|
||||
pixel.src = url + '&' + querystring.join('&');
|
||||
},
|
||||
|
||||
// If we passed along referring tags to this page, after it's loaded, remove them from the URL so that
|
||||
|
||||
@@ -90,6 +90,26 @@ r.ui.init = function() {
|
||||
r.ui.initReadNext();
|
||||
|
||||
r.ui.initTimings()
|
||||
|
||||
r.ui.firePageTrackingPixel()
|
||||
}
|
||||
|
||||
r.ui.firePageTrackingPixel = function() {
|
||||
var url = r.config.tracker_url;
|
||||
var params = {};
|
||||
|
||||
if (!r.config.user_id) {
|
||||
var tracker = new redditlib.Tracker();
|
||||
var loggedOutData = tracker.getTrackingData();
|
||||
if (loggedOutData && loggedOutData.loid) {
|
||||
params = {
|
||||
loid: loggedOutData.loid,
|
||||
loidcreated: loggedOutData.loidcreated
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
r.analytics.firePageTrackingPixel(url, params);
|
||||
}
|
||||
|
||||
r.ui.inMobileWebBlacklist = function() {
|
||||
|
||||
@@ -90,25 +90,6 @@ reddit, reddit.com, vote, comment, submit
|
||||
</%def>
|
||||
|
||||
<%def name="head()">
|
||||
%if g.tracker_url and thing.site_tracking:
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var loggedOutParams = {};
|
||||
%if not c.user_is_loggedin:
|
||||
var tracker = new redditlib.Tracker();
|
||||
var loggedOutData = tracker.getTrackingData();
|
||||
if (loggedOutData && loggedOutData.loid) {
|
||||
loggedOutParams = {
|
||||
loid: loggedOutData.loid,
|
||||
loidcreated: loggedOutData.loidcreated
|
||||
};
|
||||
}
|
||||
%endif
|
||||
r.analytics.firePageTrackingPixel(loggedOutParams);
|
||||
})();
|
||||
</script>
|
||||
%endif
|
||||
|
||||
${googleanalytics('web', thing.is_gold_page() if hasattr(thing, 'is_gold_page') else False)}
|
||||
</%def>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user