あるフリーランスエンジニアの色んなメモ!! ITスキル・ライフハックとか

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 を組み込む

comments powered by Disqus