GooleAnalytics の仕込みは、ADMIN画面から実施できる
MEZZANINE ドキュメント には、Google Analytics との統合
と記載がされています。
簡単にできそうに思いましたので、やってみたところ簡単にできたので、記載しておきます。
- mezzanineのsettings.pyに以下の記述を追加
GOOGLE_ANALYTICS_ID= 'グーグルのANALYTICSID'
これで、blogにwebビーコンが埋め込まれます。 (めちゃめちゃ簡単でした。) wordpressとかでも当然、簡単にできるんでしょうね。きっと。
-
補足
本家サイト MEZZANINE 3.1.10 DOCUMENTATION に記載があります。 -
追記
mezzanine/core/defaults.py 内に以下の記述があります。
register_setting(
name="GOOGLE_ANALYTICS_ID",
label=_("Google Analytics ID"),
description=_("Google Analytics ID (http://www.google.com/analytics/)"),
editable=True,
default="",
)
editable=True
Google タグマネージャ の 仕込み
Google タグマネージャ の 仕込み を実施しました。
こちらは、デフォルトでは用意されていないです。
django の plugin あるか調べたら、あるようですが、
最近のタグマネージャのタグの形式では、出力できないようなので、手動で組み込みを実施しました。
-
django-google-tag-manager
Lacrymology/django-google-tag-manager -
Googleタグマネージャータグ設置方法の変更
【2016年10月】Googleタグマネージャータグ設置方法の変更|リスティング広告の運用代行ならカルテットコミュニケーションズ
実施したこと
-
base.html に タグの組み込み
各template の基底template の base.html に以下記述を追加しました。
head タグ内には以下の記述を、
そして、開始bodyタグの直下に以下を追加しました。{% compress js %} <!-- jQuery --> <script src="{% static "js/jquery.min.js" %}"></script> <!-- ここから追加 --> {% if settings.GOOGLE_TAG_MANAGER_ID and not request.user.is_staff %} <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','{{ settings.GOOGLE_TAG_MANAGER_ID }}');</script> <!-- End Google Tag Manager --> {% endif %} <!-- ここまで追加 --> {% block extra_js %}{% endblock %} {% endcompress %}
<body id="{% block body_id %}body{% endblock %}"> <!-- ここから追加 --> {% if settings.GOOGLE_TAG_MANAGER_ID and not request.user.is_staff %} <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ settings.GOOGLE_TAG_MANAGER_ID }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> {% endif %} <!-- ここまで追加 -->
-
settings.py に、GOOGLE_TAG_MANAGER_ID を追加
settings.py に、以下記述を追加します。
# GOOGLE_TAG_MANAGER_ID GOOGLE_TAG_MANAGER_ID='GTM-XXXXXXX'
-
defaults.py に GOOGLE_TAG_MANAGER_ID を追加
template 内から使用できるようにするため、自アプリケーションのdefaults.pyがなければ、作成、
あれば、編集して下期を追加します。
# -*- coding: utf-8 -*- from mezzanine.conf import register_setting ########################### # FOR CLEAN_BLOG SETTINGS # ########################### register_setting( name="TEMPLATE_ACCESSIBLE_SETTINGS", default=("GOOGLE_TAG_MANAGER_ID",), append=True, ) register_setting( name="GOOGLE_TAG_MANAGER_ID", description="Google tag manager id", editable=False, default="", )
-
補足
TEMPLATE_ACCESSIBLE_SETTINGS に追加したいフィールドをTaple で追加、そのあとに、追加定義値のデフォルト値を設定します。
最初、記載の仕方を忘れて、編集途中で以下、innternal server error が発生しました。調べると、以下StackOverFlow の質問を見つけました。mod_wsgi (pid=13842): Target WSGI script 'wsgi.py' cannot be loaded as Python module. mod_wsgi (pid=13842): Exception occurred processing WSGI script 'wsgi.py'. Traceback (most recent call last): File "wsgi.py", line 22, in <module> application = get_wsgi_application() File "/usr/local/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application django.setup(set_prefix=False) File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate raise RuntimeError("populate() isn't reentrant") RuntimeError: populate() isn't reentrant
python - Unable to register setting with defaults.py in app, it will not override Mezzanine’s default setting - Stack Overflow
以上です。
コメント