google.html 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. {% macro analytics(account) -%}
  2. <script type="text/javascript">
  3. var _gaq = _gaq || [];
  4. _gaq.push(['_setAccount', '{{account}}']);
  5. _gaq.push(['_trackPageview']);
  6. (function() {
  7. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  8. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  9. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  10. })();
  11. </script>
  12. {% endmacro %}
  13. {% macro uanalytics(id, options='auto', domain=None) %}
  14. {# The uanalytics macro currently contains a hack to support legacy code.
  15. The old signature was ``uanalytics(id, domain)`` when domain was a required
  16. parameter that was passed on to the ga() function.
  17. To preserve old behavior, if options is not a dictionary, it is passed on
  18. unchanged. The ``domain`` parameter is added to not break calls with named
  19. parameters, it will override any other value for options.
  20. More modern code can simply pass any desired option to the analytics
  21. function as desired.
  22. #}
  23. {%- if domain != None %}
  24. {%- set options = domain %}
  25. {%- endif %}
  26. <script>
  27. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  28. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  29. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  30. })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  31. ga('create', {{id|tojson|safe}}, {{options|tojson|safe}});
  32. ga('send', 'pageview');
  33. </script>
  34. {% endmacro %}