簡體   English   中英

用Javascript處理返回的Google Analytics(分析)API數據

[英]Manipulating returned Google Analytics API data in Javascript

我正在嘗試使用Google Analytics(分析)Embed API來創建有關KPI性能的基於文本的語句,並將其放置在儀表板上。 一個示例語句可能是這樣的:“本周有X筆在線交易,與上周的表現相比發生了Y%的變化,這來自Z會話,每會話的近似價值為$ abc”。 這樣做的目的是,這將是有用的數據見解,這些數據可以自動生成,並且在頁面上所占的空間比圖表或圖表要少。

為此,我需要能夠:

  1. 查詢API
  2. 處理返回的結果/執行基本計算
  3. 將這些結果發送到我的HTML頁面

似乎我能夠執行第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。 因此,我非常感謝任何能為我指明正確方向的人的建議。

因此,請原諒我的任何重大錯誤,並在此先感謝您的幫助。

我將從添加一些日志開始

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

使用cmd + alt + j(在Mac上)打開控制台。 然后您將能夠看到函數返回的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM