Django:Google Analyticsタグを表示させる
実装例
template tag を使用した実装例
context processor を使用する場合は、
settings.py に context processor の設定を行う必要があるが、
template tag を使用する場合では、
settings.py には Google Analytics のトラッキングIDの設定のみとなる
mysite/mysite/settings.py
...
GOOGLE_ANALYTICS = 'トラッキングID'
...
mysite/myapp/templatetags/mysite_google.py
from django.conf import settings
from django.template import Library
from django.utils.safestring import mark_safe
register = Library()
@register.simple_tag(takes_context=False)
def google_analytics():
try:
tid = settings.GOOGLE_ANALYTICS
return mark_safe(
'''
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=%s"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '%s');
</script>
''' % (tid, tid)
)
except AttributeError:
return
※settings.py から GOOGLE_ANALYTICS が見つからない場合はGoogle Analyticsタグを表示しない
mysite/myapp/templates/base.html
{% load mysite_google %}
...
<head>
{% google_analytics %}
...
Google Analytics を表示したい template に template tag を組み込む