Refactor all page tracking logic into analytics.js

This commit is contained in:
Jack Lawson
2015-06-30 10:16:58 -07:00
committed by Chris Stephens
parent ea12885ce9
commit 1f6a9aa570
4 changed files with 30 additions and 27 deletions

View File

@@ -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,

View File

@@ -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

View File

@@ -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() {

View File

@@ -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>