使用 Google Apps 脚本向 Google 表格中的 google 分析发出 API 请求

Make API request to google analytics from Google Sheets using Google Apps Script

我有一个工作流程,每次 CRM 中的生命周期 属性 发生变化时,都会向 google sheet 添加一个新行。

输出包括 Google CID、Persona、Hubspot 客户 ID 和新生命周期到 google sheet。

看起来像这样 - CRM 2 Google Analytics Google Sheet

有一个设置 sheet 控制 google 分析跟踪 ID,以及我尝试发送的维度的自定义维度索引。

这是我正在使用的 Google Apps 脚本

  function sendToGoogleAnalytics() {
 
 //  select the data
 
 var spreadSheet = SpreadsheetApp.openById('16Bn6Q9C0mBNy6ic1UO-30cWX5YXTeWkpyrbIt7SO1nw');
 var sheet = spreadSheet.getSheetByName('Lifecycle');
 sheet.activate();
 
 var setting = spreadSheet.getSheetByName('Settings');
 
 // getting settings
 
 var ua = setting.getRange(2,2).getValue();
 var hidcdi = 'cd'+setting.getRange(3,2).getValue();
 var lifecyclecdi = 'cd'+setting.getRange(4,2).getValue();
 var personcdi = 'cd'+setting.getRange(5,2).getValue();
 
 
 //getting values of the last row
 var newData = sheet.getLastRow();
 var gcid = sheet.getRange(newData,1).getValue();
 var persona = sheet.getRange(newData,2).getValue();
 var hubid = sheet.getRange(newData,3).getValue();
 var lifecyclestage = sheet.getRange(newData,4).getValue();

//cache busting

var z = Math.random()*(1000000-1000)+1000;
 
//preparing the api call with options and the query parameters
var event ='&ec=Lifecycle&ea=Change&el='+lifecyclestage;
var parameters = 'v=1&tid='+ua+'&t=event&'+'&cid='+gcid+'&'+hidcdi+'='+hubid+'&'+lifecyclecdi+'='+lifecyclestage+'&'+personcdi+'='+persona+event+'&ni=1&aip=1'+'&z='+z;

    

 var options = {
    'method': 'post',
     'payload': parameters
   };
//    
  
  
    var response = UrlFetchApp.fetch('https://www.google-analytics.com/collect',options);
    
    var responsecode = response.getResponseCode();
    if (responsecode >= 200 && responsecode < 300) {
     UrlFetchApp.fetch('https://www.google-analytics.com/collect',options);
     Logger.log(responsecode);
      Logger.log(response);
     return response;
     } else {   
    Logger.log(responsecode);
    Logger.log(response);
    return response;
 }
  }

如您所见,我也想将其添加为非交互事件。

这会获取最后一行,将这些值的值分配给变量,然后创建变量。它通过首选的 post 方法发送。这都是基于Google Analytics Measurement Protocol Parameter Reference Guide and Sending Measured Protocol Hits to Google Analytics.

我得到的响应代码是 200,响应是一些 GIF89a 和一些我看不懂的框

我已经通过调试器进行了检查,所有变量都正确填充。并且跟踪代码 ID 是正确的(该文档中的那个是示例,但我正在真实的上尝试)。

但是,我没有在 Google Analytics 本身中看到该事件。

我已经将其作为 GET 和 POST 进行了尝试,我得到了相同的响应,但它没有显示在 Google Analytics 中。

我做错了什么?

最后我无法直接让它工作。所以我不得不添加另一个步骤。我相信这与用户代理没有被正确记录有关,我无法将其引入。我所做的是将它发送到 Google 跟踪代码管理器服务器端,然后从那里发送。当我尝试这个时,它起作用了。