You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Analytics API在Google Sheets获取GA电商购物行为分析数据?

解决Google Sheets中GA电商购物行为数据获取的问题

我来帮你一步步搞定这些电商核心指标的获取和计算——你提到的那些无法直接拉取的指标,其实都可以通过GA API提供的基础维度和指标组合计算出来,加购去重的问题也有明确的处理方案。

一、自定义核心指标的计算方法

这些指标都需要基于会话级维度(比如UA的ga:sessionId,GA4对应ga4:sessionId)和基础指标来推导:

1. 有加购会话(Sessions with Add to Cart)

  • UA(Universal Analytics):请求维度ga:sessionId + 指标ga:productAddsToCart,筛选出productAddsToCart > 0的会话ID,去重后计数就是有加购的会话数。
  • GA4:请求维度ga4:sessionId,过滤条件eventName == add_to_cart,去重sessionId后计数。

2. 无加购会话(No Cart Addition)

直接用总会话数减去「有加购会话数」即可:
无加购会话数 = 总会话数 - 有加购会话数

3. 有结账会话(Sessions with Check-Out)

  • UA:请求维度ga:sessionId + 指标ga:checkouts,筛选checkouts > 0的会话ID,去重计数。
  • GA4:请求维度ga4:sessionId,过滤条件eventName == begin_checkout,去重sessionId后计数。

4. 购物车弃购率(Cart Abandonment)

计算逻辑是:有加购但未进入结账流程的会话占比
购物车弃购率 = (有加购会话数 - 有结账会话数) / 有加购会话数 * 100%

5. 结账弃购率(Check-Out Abandonment)

需要先获取「完成购买的会话数」(即产生交易的会话),再计算:

  • 完成购买会话数:UA用ga:sessionId+ga:transactions筛选transactions>0去重;GA4用sessionId+eventName == purchase去重计数。
  • 结账弃购率 = (有结账会话数 - 完成购买会话数) / 有结账会话数 * 100%

二、会话级去重加购次数的处理

你提到的Product Add to Carts和Quantity Add to Cart是累计值,要统计会话内的唯一加购次数(比如同一个会话加购同一商品多次只算1次),可以分场景处理:

场景1:统计有多少个会话发生过加购(不管加购次数)

就是前面提到的「有加购会话数」,直接对sessionId去重即可。

场景2:统计每个会话内加购不同商品的数量/整体商品的会话级加购次数

  • UA:请求维度ga:sessionId+ga:productSKU(或ga:productName)+ 指标ga:productAddsToCart,然后在Sheets中用UNIQUE函数对每个sessionId下的商品SKU去重,再统计每个会话的去重商品数。
  • GA4:请求维度ga4:sessionId+ga4:itemId,过滤eventName == add_to_cart,同样用去重逻辑处理。

如果要统计每个商品被多少个不同会话加购过,UA可以用ga:productSKU+ga:uniqueEvents,过滤ga:eventAction == add_to_cart;GA4用ga4:itemId+ga4:uniqueUsers(或ga4:uniqueEvents)过滤eventName == add_to_cart。

三、在Google Sheets中实现的具体操作

方法1:用内置GOOGLEANALYTICS函数+Sheets公式

以UA为例,假设你的GA视图ID是ga:123456789,时间范围是最近30天:

  • 总会话数:=GOOGLEANALYTICS("ga:123456789", "ga:sessions", TODAY()-30, TODAY())
  • 有加购会话数:=COUNTUNIQUE(QUERY(GOOGLEANALYTICS("ga:123456789", "ga:sessionId,ga:productAddsToCart", TODAY()-30, TODAY()), "SELECT Col1 WHERE Col2 > 0"))
  • 有结账会话数:=COUNTUNIQUE(QUERY(GOOGLEANALYTICS("ga:123456789", "ga:sessionId,ga:checkouts", TODAY()-30, TODAY()), "SELECT Col1 WHERE Col2 > 0"))
  • 完成购买会话数:=COUNTUNIQUE(QUERY(GOOGLEANALYTICS("ga:123456789", "ga:sessionId,ga:transactions", TODAY()-30, TODAY()), "SELECT Col1 WHERE Col2 > 0"))

之后就可以用这些数值计算弃购率和无加购会话数。

方法2:用Google Apps Script调用GA API

如果数据量较大或者需要更灵活的处理,推荐用Apps Script:

  1. 在Sheets中打开「扩展程序」→「Apps脚本」
  2. 启用「Analytics Reporting API」(UA)或「Google Analytics Data API」(GA4)
  3. 编写脚本批量获取sessionId和对应指标,然后在脚本内完成去重、过滤和计算,最后写入Sheets。

比如UA的简化示例代码:

function getCartAnalytics() {
  var viewId = 'ga:123456789';
  var startDate = '30daysAgo';
  var endDate = 'today';
  
  // 获取有加购的会话ID
  var addToCartSessions = AnalyticsReporting.Reports.batchGet({
    reportRequests: [{
      viewId: viewId,
      dateRanges: [{startDate: startDate, endDate: endDate}],
      dimensions: [{name: 'ga:sessionId'}],
      metrics: [{expression: 'ga:productAddsToCart'}],
      filtersExpression: 'ga:productAddsToCart > 0'
    }]
  });
  
  // 去重会话ID并计数
  var uniqueSessions = new Set();
  addToCartSessions.reports[0].data.rows.forEach(row => {
    uniqueSessions.add(row.dimensions[0]);
  });
  
  // 写入Sheets
  SpreadsheetApp.getActiveSheet().getRange('A1').setValue('有加购会话数');
  SpreadsheetApp.getActiveSheet().getRange('B1').setValue(uniqueSessions.size);
}

注意事项

  • 如果使用GA4,所有维度指标需要替换为GA4的命名规则(比如ga4:sessions、ga4:sessionId、eventName过滤)。
  • 确保你的Google账号有对应GA视图/资源的访问权限,并且在Sheets或Apps Script中授权了GA API的访问权限。

内容的提问来源于stack exchange,提问作者Jeremy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:18:54