38

新しいDjangoWebサイトを展開しようとしています。また、GoogleAnalyticsを使用してサイトのトラフィックを追跡したいと考えています。ただし、開発インスタンスでのすべてのヒットがGoogleアナリティクスの統計に寄与することは望んでいません。

これに対処する方法はいくつかあります。

  • <script>基本テンプレートが適切な要素を含めるかどうかを決定するために使用するsettings.pyに構成オプションがあります。
  • 本番サーバーにデプロイする前にプルするブランチを維持します。これには、<script>要素が含まれていることを確認します。
  • 127.0.0.1またはローカルホストへのヒットをブロックするためにGoogleAnalyticsで何かをする、または
  • 他の何か。

最初のオプションが最も賢明なようですが、そうであるかどうかはわかりません。たとえば、google_analyticsすべてのビューに変数を渡し始める必要がありますか?

あなたの考えは何ですか?

4

10 に答える 10

53

まず、開発サーバーと運用サーバーが異なるファイル (dev.py と prod.py など) から設定を取得する方法を作成します。これを行う方法はたくさんあります。

次に、設定を作成しますGOOGLE_ANALYTICS_KEY。dev.py で、空の文字列に設定します。prod.py で、「UA-124465-1」のようなキーに設定します。コンテキスト プロセッサを作成して、この設定をすべてのテンプレート コンテキストに追加するかGOOGLE_ANALYTICS_KEY、設定モジュールを追加します。次に、それをテンプレートに使用して、条件付きで分析コードを含めます。

{% if settings.GOOGLE_ANALYTICS_KEY %}
<script> blah blah {{settings.GOOGLE_ANALYTICS_KEY}} blah blah </script>
{% endif %}
于 2009-03-10T11:17:08.330 に答える
15

パーティーに少し遅れましたが、django-google-analyticsと呼ばれる再利用可能なDjangoアプリがあります。それを使用する最も簡単な方法は次のとおりです。

  1. のセクションにgoogle_analyticsアプリケーションを追加します。INSTALLED_APPSsettings.py
  2. ベーステンプレート(通常は、base.html)で、このタグを一番上に挿入します。{% load analytics %}
  3. 同じテンプレートで、本文の終了タグの直前に次のコードを挿入し{% analytics "UA-xxxxxx-x" %}ます。これUA-xxxxxx-xは、ドメインに固有のGoogleアナリティクスコードです。
于 2009-10-13T12:45:30.047 に答える
5

これらの他のソリューションはすべて機能する可能性がありますが、Google アナリティクスでフィルターを簡単に設定して、本番 Web サイトまたは Web サイトから来ていないすべてのトラフィックを除外できるため、すべてやり過ぎです。GA ヘルプの「プロファイルフィルタの作成/管理」を参照してください。コードのないソリューションは、すべての人の生活を楽にします。

: 注意事項が 2 つあります

  1. リアルタイムにはフィルタが適用されないため、これはリアルタイム フィルタリングでは機能しません (2012 年 7 月現在 - ドキュメントを確認してください)。
  2. これを設定するには、Google アナリティクス アカウントの管理者である必要があります
于 2012-07-09T17:49:45.653 に答える
4

もう一つの簡単な方法。でsettings.py,チェックdebugTrueであり、次を追加します。

INTERNAL_IPS = (
    '127.0.0.1',
    'localhost',
)

次に、テンプレートで次のように使用できます。

{% if not debug %}
<script> blah blah </script>
{% endif %}

本番に変更する場合は に設定debugしてFalseください。

参照: http://www.djangobook.com/en/2.0/chapter09.html

于 2013-12-22T14:36:12.640 に答える
2

私は分析コード、広告、および他のいくつかのものを切り替える IS_LIVE_SITE と呼ばれる単一の設定を持っていますが、私は Ned にほぼ同意します。このようにして、すべてのキーを転覆状態に保ち (それらを調べるのは面倒なので)、それでも簡単にオンまたはオフに切り替えることができます。

于 2009-03-10T12:19:36.837 に答える
2

スクリプト タグを HTML に直接含めるのではなく、分析 JavaScript を変更して、href に製品サイトの名前が含まれていない場合にのみ実行されるようにします。これは、追加の構成なしで機能します。

于 2009-03-11T01:48:06.363 に答える
1

すべてのビューを更新せずにすべてのテンプレートに値を渡すために使用できるテンプレート コンテキスト プロセッサがあります。

http://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors

于 2009-03-10T11:18:58.417 に答える
0

これが私がそれを解決した非常に簡単な方法です:

まだ作成していない場合は、「utils」という名前のプロジェクトにアプリを作成します。これらの指示を参照してください。

ただし、このアプローチに従って、プロジェクト設定に加えてすべてのグローバル コンテキスト プロセッサを含めます。それはより良い習慣のようです。手順は次のとおりです。

したがって、「utils」アプリを作成した後、/utils に context_processors.py という名前のファイルを次のように作成します。

from django.conf import settings

def googleanalytics(request):
    return {
        'google_tracking_id' : settings.GOOGLE_TRACKING_ID,
    }

settings.py ファイルに、これを追加します。

import django.conf.global_settings as DEFAULT_SETTINGS

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
     'utils.context_processors.googleanalytics',

)

お役に立てれば!

于 2013-04-20T01:51:04.173 に答える