Si vous ne l'avez pas encore fait, il est toujours utile de voir si/comment d'autres personnes ont traité le même problème sur djangosnippets. Le snippet le plus récent qui fonctionne avec le tag analytique est le 1656 : http://www.djangosnippets.org/snippets/1656/
Ce qui est bien avec cette solution, c'est qu'elle vous permet de garder votre GOOGLE_ANALYTICS_CODE = xxxxxx
dans local_settings.py dans le cas où le reste de votre source est public, votre clé reste privée. En outre, il va une étape supplémentaire pour ne pas utiliser l'analyse pour les utilisateurs connectés.
Inclut le Javascript pour Google Analytics. Ne montrera pas le code de Google Analytics lorsque DEBUG est activé ou aux utilisateurs du personnel.
Utilisez {% googleanalyticsjs %}
dans vos modèles.
Vous devez définir quelque chose comme
GOOGLE_ANALYTICS_CODE = "UA-1234567-1"
dans votre fichier de paramètres.
Suppose que 'user' dans les variables de votre modèle est request.user
ce qui sera le cas si vous utilisez :
return render_to_response('template.html',{ }, context_instance=RequestContext(request))
(En supposant que django.core.context_processors.auth
est en TEMPLATE_CONTEXT_PROCESSORS
(ce qu'il est par défaut)
from django import template
import settings
register = template.Library()
class ShowGoogleAnalyticsJS(template.Node):
def render(self, context):
code = getattr(settings, "GOOGLE_ANALYTICS_CODE", False)
if not code:
return "<!-- Goggle Analytics not included because you haven't set the settings.GOOGLE_ANALYTICS_CODE variable! -->"
if 'user' in context and context['user'] and context['user'].is_staff:
return "<!-- Goggle Analytics not included because you are a staff user! -->"
if settings.DEBUG:
return "<!-- Goggle Analytics not included because you are in Debug mode! -->"
return """
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker('""" + str(code) + """');
pageTracker._trackPageview();
} catch(err) {}</script>
"""
def googleanalyticsjs(parser, token):
return ShowGoogleAnalyticsJS()
show_common_data = register.tag(googleanalyticsjs)
2 votes
Les réponses ci-dessous sont dépréciées. Maintenant avec django vous pouvez le faire beaucoup plus simple : stackoverflow.com/questions/25783459/