Check if analytics.js is loaded

后端 未结 3 352
梦如初夏
梦如初夏 2020-12-07 02:08

I have to use a local analytics.js that I serve from my server. I just want to use the local version if necessary - so is there a solution for checking if the call for analy

3条回答
  •  臣服心动
    2020-12-07 02:57

    A particularly elegant solution would be to use RequireJS and leverage its support for fallback paths. I do this on my site to load a stub version of analytics.js if loading GA fails because the visitor uses a privacy tool blocking the request:

    http://veithen.github.io/2015/02/14/requirejs-google-analytics.html

    Your use case is similar, except that you want to fallback to a complete local copy. You also probably don't want to change all calls to GA as described in that article. If that's the case then you could use a hybrid approach where you only use RequireJS to load analytics.js (Google's version or the local copy), without changing any other code.

    Setting this up would involve the following steps:

    • Add RequireJS to your site and configure it as follows:

      require.config({
          paths: {
              "ga": [
                  "//www.google-analytics.com/analytics",
                  "local-copy-of-analytics"
              ]
          }
      });
      
    • Use the alternative version of the tracking code, but replace with the following JavaScript code:

      require(["ga"]);
      

提交回复
热议问题