GooleAnalytics の 仕込みは、 ADMIN画面から 実施できる
MEZZANINE ドキュメント には、Google Analytics との<wbr>統合
と
簡単に
- mezzanineの
settings.pyに 以下の 記述を 追加 GOOGLE_ANALYTICS_ID= 'グーグルのANALYTICSID'
これで、
補足
本家サイト 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 の
最近の
django-google-tag-manager
Lacrymology/django-google-tag-managerGoogleタグマネージャータグ設置方法の
変更
【2016年10月】 Googleタグマネージャータグ設置方法の 変更|リスティング広告の 運用代行なら カルテットコミュニケーションズ
実施した こと
base.html に
タグの 組み込み
各template の基底template の base.html に 以下記述を 追加しました。
head タグ内には以下の 記述を、 そして、{% 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タグの 直下に 以下を 追加しました。 <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 が 発生しました。 調べると、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
以下StackOverFlow の 質問を 見つけました。
python - Unable to register setting with defaults.py in app, it will not override Mezzanine’s default setting - Stack Overflow
以上です。
コメント