Prevent Google analytics from gathering data in de

2020-06-04 04:38发布

问题:

I have an ASP.NET MVC (3) app and I've set Google analytics up. The problem is that every time I run from Visual Studio the Google script starts gathering data, which of course, skews the real results.

What's the best way to prevent Google Analytics from gathering data on the development environment other that using ugly #if compiler directives on every page I want analysed?

What would be a best practice?

Thanks.

回答1:

The best-practice advised by Google is to use a filter to remove the data from your GA profiles. This can either be done by filtering based on the IP address of development machines or by setting a custom variable cookie in each browser being used for development and testing. This approach would mean you could remove the data without needing to modify your main body of code.



回答2:

I would write a custom HTML helper which would include the necessary scripts for Google Analytics:

@Html.Analytics()

This helper could then use compilation directives and #if DEBUG is set it would simply emit an empty string. And by the way there is already such helper available in the microsoft web helpers package and see how it is implemented:

@Analytics.GetGoogleHtml({your-analytics-webPropertyId-here})


回答3:

You could also use HttpContext to only include the GA script if running in debug mode:

@if (!HttpContext.Current.IsDebuggingEnabled)
{
   <script type="text/javascript">
      var _gaq = _gaq || [];
      ...
   </script>
}


回答4:

You could also have different api key for dev environment in the web.config. That way it won't pollute the production data. I believe the key can also be left empty and then nothing is logged by Google Analytics.