问题
I've been happily using this best practice http://roughlybrilliant.com/jquery_mobile_best_practices#7 for integrating ga.js with jQuery Mobile. I'm planning to upgrade to analytics.js using the new Universal Analytics tracking code. I wonder whether something like this below will work following the best practice using the ga.js tracking code.
<script>
$(document).ready(function (e) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
});
$(document).on('pageshow', '[data-role=page], [data-role=dialog]', function (event, ui) {
try {
ga('create', 'UA-XXXXXXXX-X', 'domain.com');
if ($.mobile.activePage.attr("data-url")) {
ga('send', 'pageview', '$.mobile.activePage.attr("data-url")');
} else {
ga('send', 'pageview');
}
} catch (err) {}
});
</script>
回答1:
Everything should work above save the '$.mobile...'
part being in quotes. A few of their suggestions are a bit off though. Refractored below
<script>
// domReady is unnecessary here and can slow down perceived performance
// $(document).ready(function (e) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-XXXXXXXX-X', 'domain.com'); // move this here!
// });
$(document).on('pageshow', '[data-role=page], [data-role=dialog]', function (event, ui) {
try {
if ($.mobile.activePage.attr("data-url")) {
ga('send', 'pageview', $.mobile.activePage.attr("data-url")); // remove quotes
} else {
ga('send', 'pageview');
}
} catch (err) {}
});
</script>
来源:https://stackoverflow.com/questions/20872243/jquery-mobile-google-universal-analytics