在Javascript

时间:2015-11-12 18:26:13

标签: javascript google-analytics google-analytics-api

我正在尝试使用Google Analytics Embed API创建关于KPI性能的基于文本的语句,以便位于仪表板上方。一个示例声明可能是这样的:“本周有X个在线交易,这是上周表现的Y%的变化,这来自Z会话,给出了每个会话的近似值$ abc”。等等。目的是这将是数据的有用见解,可以自动生成,并且应该占用页面上比图表或图表更少的空间。

为实现这一目标,我需要能够:

  1. 查询API
  2. 操纵返回的结果/执行基本计算
  3. 将这些结果发送到我的HTML页面
  4. 似乎我能够执行第1步和第3步。我可以对API执行查询并将这些查询发送到我的HTML页面,但我仍然坚持第2步 - 以我想要的方式操作/更改返回的结果。

    举一个真实的例子 - 假设我想在会话数据中显示每周的变化。我可以获取最近7天的数据并使用以下代码将这些数据发送到我页面上的元素(box1):

     var lastSevenDays = new gapi.analytics.report.Data({
          query: {
         ids: 'ga:123456789',
              'start-date':'7daysAgo',
              'end-date':'today',
              'metrics': 'ga:sessions'
            }
           });
    
           lastSevenDays.on('success', function(lastSevenDays) {
                 for (var prop in lastSevenDays) {
                  var outputDiv = document.getElementById('box1');
                  outputDiv.innerHTML = lastSevenDays[prop];   
             }  
                console.log(lastSevenDays);
    
        }); 
      lastSevenDays.execute();
    
      //profile id: 123456789 isn't real in this example. 
    

    这样可以正常工作,过去7天的会话数据会写入我的页面。

    然而,当我尝试将它与我的第二个查询,前7天的数据相结合时,将其作为box2(第二个查询)发送到页面,最后发送box3(数字上的差异)某些东西不起作用。

    下面的代码尝试。我认为我的第一个查询可能是从Google Analytics API返回一个数组,当输出到HTML页面时,它似乎有效,因为数组中只有一个值。

      var lastSevenDays = new gapi.analytics.report.Data({
      query: {
        ids: 'ga:123456789',
          'start-date':'7daysAgo',
          'end-date':'today',
          'metrics': 'ga:sessions'
        }
       });  
       lastSevenDays.on('success', function(lastSevenDays) {
             for (var prop in lastSevenDays) {
              var outputDiv = document.getElementById('box1');
              outputDiv.innerHTML = lastSevenDays[prop];   
             }  
                console.log(lastSevenDays);             
        }); 
      lastSevenDays.execute();
    
      // The previous 7 days 
    
      var previousSevenDays = new gapi.analytics.report.Data({
      query: {
        ids: 'ga:123456789',
          'start-date':'7daysAgo',
          'end-date':'today',
          'metrics': 'ga:sessions'
        }
       });  
       previousSevenDays.on('success', function(previousSevenDays) {
             for (var prop in previousSevenDays) {
              var outputDiv = document.getElementById('box2');
              outputDiv.innerHTML = previousSevenDays[prop];   
             }  
                console.log(previousSevenDays);
    
        }); 
      previousSevenDays.execute();
    
      // Week on week change, where I am going wrong:
    
      var weekOnWeekChange = lastSevenDays - previousSevenDays; 
         weekOnWeekChange.on('success', function(weekOnWeekChange) {
             for (var prop in weekOnWeekChange) {
              var outputDiv = document.getElementById('box3');
              outputDiv.innerHTML = weekOnWeekChange[prop];   
             }  
                console.log(weekOnWeekChange);
    
        }); 
      weekOnWeekChange.execute();
    
    
      //profile id: 123456789 isn't real in this example. 
    

    我是一个市场营销人员,只是想学习更多,而不是编码器。因此我对Javascript不太熟悉。因此,我非常感谢任何能指出我正确方向的人的建议。

    请原谅我的任何重大错误,并提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我首先要添加一些日志记录

....
'success', function(weekOnWeekChange) {
   console.log(weekOnWeekChange);

使用cmd + alt + j(在Mac上)打开控制台。那么你将能够看到函数返回的内容