谷歌分析(google analytics)报错解决方法

谷歌分析(google analytics)是非常好用的网站分析工具,由于需要上传分析数据,如果网站主要目标在国内,那么用户的浏览器就会报 ERR_SSL_PROTOCOL_ERROR 的错误,就是访问不了谷歌分析的地址,原因不多说,这边文章来说说如何解决这个问题。

现象

当网站放上谷歌分析(google analytics)提供的代码后(如下图)。

能看到域名是googletagmanager.com,这域名国内访问不了,所以会导致浏览器报错,在浏览器控制台能看到具体报错信息,是个 ERR_SSL_PROTOCOL_ERROR 错误。

那是不是就不能用谷歌分析了呢,那当然不是,困难有,但解决办法更多。一个方法就是可以用代理来解决这个问题。

代理配置

如果你的站点是用nginx,那么代理配置如下,如果用别的,可是去搜搜怎么配置,但是原理都是一样的。


    #------ google analytics proxy ------
    location /gtm.js {
        sub_filter 'www.googletagmanager.com' $server_name;
        sub_filter_types *;
        sub_filter_once off;

        proxy_set_header Accept-Encoding '';
        proxy_pass https://www.googletagmanager.com;
        proxy_redirect off;

        # cache on server
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 60m;

        # cache in client browser
        expires 1h;
    }

    location /gtag/js {
        sub_filter 'www.googletagmanager.com' $server_name;
        sub_filter 'analytics.google.com'  $server_name;
        sub_filter 'www.google-analytics.com'  $server_name;
        sub_filter 'google-analytics.com'  'xxxx.com'; #这里的xxx.com换成您的域名
        sub_filter_types *;
        sub_filter_once off;

        proxy_set_header Accept-Encoding '';
        proxy_pass https://www.googletagmanager.com;

        proxy_redirect off;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 60m;

        expires 1h;
    }

    location /ga {
        proxy_set_header X-real-ip $remote_addr;
        rewrite ^/ga/(.*)$ '/$1?$args&uip=$remote_addr';
        proxy_pass https://www.google-analytics.com;
        proxy_set_header User-Agent $http_user_agent;
        break;
    }

    location /analytics.js {
        sub_filter 'www.googletagmanager.com' $server_name;
        sub_filter 'analytics.google.com'  $server_name;
        sub_filter 'www.google-analytics.com'  '$server_name/ga';
        sub_filter_types *;
        sub_filter_once off;
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Referer https://www.google-analytics.com;
        proxy_set_header Host www.google-analytics.com;
        proxy_pass https://www.google-analytics.com;
        proxy_set_header Accept-Encoding "";
    }

    location /g/collect {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass https://www.google-analytics.com$uri$is_args$args&uip=$remote_addr;
        proxy_redirect off;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 60m;
        proxy_cache off;

        expires epoch; # browser no-cache control
    }

    #------ google analytics proxy ------

引用修改

上面代理配置完成后,就差这最后一步了,就是在引用谷歌分析(google analytics)代码的地方,把 googletagmanager 的域名改成自己的域名。

如果是wordpress建的站可以用WPCode这个插件,全局修改,如下图。这里要www.googletagmanager.com的域名换成自己站点的域名,如www.你的域名.com

查看效果

上面都配置完成后,nginx也 reload后,这问题就解决了,看,报错没了


欢迎关注我的公众号“SOHO小站”,原创技术文章第一时间推送。



留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注