使用Google自定义搜索的叠加布局时,Google Analytics不会收集任何搜索数据

时间:2014-04-25 11:50:10

标签: javascript google-analytics google-custom-search

我的网站上有一个Google自定义搜索元素,配置为使用"覆盖布局":

The layout settings

我在相关部分设置了与此Google自定义搜索帐户相关联的Google Analytics配置文件,如下所示:

The Analytics link settings

我使用默认的Google Analytics代码,以及Google自定义搜索代码。 分析"网站搜索跟踪"在"报告视图设置"像这样:

Google Analytics Views Settings

问题:

即使数天之后,Google Analytics也不会收集任何网站搜索信息。 只有在使用叠加布局时才会出现此问题。 当我使用单独的搜索结果页面时,由于Google Analytics正在记录结果页面请求,因此正在收集查询。

使用叠加层布局,搜索结果将以叠加Div显示,而查询只能通过Google的自定义搜索API进行。

问题:

如何确保Google Analytics获取关键字查询? 我有没有丢失的callbak? 还有其他我想念的东西吗?

1 个答案:

答案 0 :(得分:0)

解决方案:

咨询Google支持后,以下是解决方案:

  • 在管理控制台@ https://www.google.com/cse

  • 中设置GCS帐户
  • 在Analytics中设置如上所述的网站搜索设置

  • 使用分析的异步跟踪代码(Universal Analytics Code自2014年5月起不起作用)。把它放在结束标签之前。像这样:

    <head>
    
    <!-- Your head tags, etc here -->
    
    <script type="text/javascript">
      var gaq;
      var _gaq = gaq || [];
      _gaq.push(['_setAccount', 'UA-XXXXXX-YY']);
      _gaq.push(['_setDomainName', 'yourdoamin.com']);
      _gaq.push(['_setAllowLinker', true]);
      _gaq.push(['_trackPageview']);
    
      (function() {
        var ga = document.createElement('script');
        ga.type = 'text/javascript';
        ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
                      + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
      })();
    
    </script>
    </head>
    
  • 使用您从secion中的管理控制台获得的GCS跟踪代码

  • 使用自定义回调渲染搜索框以处理自定义属性,如下所示:

    <body>
    <script>
    
    var customUIBehaviours = function(){
        //your jQuery Post UI changes to the GCS box may come here
    };
    
    var renderSearchElement = function() {
        google.search.cse.element.render({
            div: 'gsd', 
            tag: 'search', 
            attributes:{
                linkTarget:'_self',
                gaQueryParameter: 'q',
                gaCategoryParameter:'',
                noResultsString:'No results.',
                enableAutoComplete: true
            }
        });
    
    };
    
    var myCallback = function() {
        if (document.readyState == 'complete') {
            renderSearchElement();
            customUIBehaviours();
        } else {
            google.setOnLoadCallback(function() {
                renderSearchElement();
                customUIBehaviours();
            });
        }
    };
    
    //this will make the GCS render by myCallback
    window.__gcse = {
      parsetags: 'explicit',
      callback: myCallback
    };
    
    
      (function() {
        var cx = 'YOUR GCS CODE HERE';
        var gcse = document.createElement('script');
        gcse.type = 'text/javascript';
        gcse.async = true;
        gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
            '//www.google.com/cse/cse.js?cx=' + cx;
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(gcse, s);
      })();
    </script>
    <div id="gsd" class="gsce-searchBox"></div>
    </body>
    

有关GCS V2的更多信息,请访问https://developers.google.com/custom-search/docs/element#cse-element