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

Google Analytics命中时间戳自定义维度与PageViews指标不匹配求助

我的目标

我正尝试通过自定义维度提升Google Analytics(GA)对网站的命中级粒度,参考相关文章,使用hit timestamp、session id和user id维度。

我已在GA和Google Tag Manager(GTM)中完成所有配置,通过GTM预览模式确认hit timestamp变量及GA标签触发正常,且GA已在收集数据。

以下是GTM配置标签截图:
GTM配置标签截图

问题描述

收集到的hit timestamp数量远低于GA内置指标。例如,昨日网站共有8万次命中,其中5.5万次为PageViews。由于我在每次PageViews事件触发标签,预期自定义维度应收集到5.5万条时间戳,但实际仅获取9千条,始终仅为PageViews的约20%。

代码示例

以下是我用于提取测试报告的示例代码:

def extract_report(analytics, report_request):

  data = []
  response =  analytics.reports().batchGet(
      body={
        'reportRequests': report_request
      }
  ).execute()
  data.extend(response['reports'][0]['data']['rows'])
  print(f"Extracted {len(data)} rows")

  while response['reports'][0].get('nextPageToken'):
    report_request[0]['pageToken'] = response['reports'][0]['nextPageToken']
    response = analytics.reports().batchGet(
        body={
          'reportRequests': report_request,
        }
    ).execute()
    data.extend(response['reports'][0]['data']['rows'])
    print(f"Extracted {len(data)} rows")

  return data

提取单日指标的查询代码:

def main():
    analytics = initialize_analyticsreporting()
    # Create string for yesterday's date
    yesterday = datetime.now() - timedelta(days=1)
    yesterday_string = yesterday.strftime('%Y-%m-%d')

    hit_queries =  [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': 'yesterday', 'endDate': 'yesterday'}],
        'dimensions': [
          {'name': 'ga:date'}
        ],
        'metrics': [
          {'expression': 'ga:hits'},
          {'expression': 'ga:pageviews'},
          {'expression': 'ga:uniquePageviews'}
        ]
   }]

    print('Extracting hit data')
    r = extract_report(analytics, hit_queries)
    print(r)

if __name__ == '__main__':
  main()

执行结果:

Extracting hit data
Extracted 1 rows
[{'dimensions': ['20221002'], 'metrics': [{'values': ['80205', '55293', '13406']}]}]

该结果表明当日共有80205次命中、55293次PageViews、13406次Unique PageViews。

但提取自定义维度收集的hit timestamp时:

def main():
    analytics = initialize_analyticsreporting()
    # Create string for yesterday's date
    yesterday = datetime.now() - timedelta(days=1)
    yesterday_string = yesterday.strftime('%Y-%m-%d')

    hit_queries =  [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': 'yesterday', 'endDate': 'yesterday'}],
        'dimensions': [
          {'name': 'ga:dimension3'}
        ],
        'metrics': [
          {'expression': 'ga:hits'}
        ],
        'includeEmptyRows': True
   }]

    print('Extracting hit data')
    r = extract_report(analytics, hit_queries)
    print('Sample data:')
    print(r[:10])

执行结果:

Extracting hit data
Extracted 1000 rows
Extracted 2000 rows
Extracted 3000 rows
Extracted 4000 rows
Extracted 5000 rows
Extracted 6000 rows
Extracted 7000 rows
Extracted 8000 rows
Extracted 9000 rows
Extracted 9150 rows
Sample data:
[{'dimensions': ['1664633132108'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664633912892'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694004446'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694006760'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694039475'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694067927'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694074017'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694118729'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694163081'], 'metrics': [{'values': ['1']}]}, {'dimensions': ['1664694165036'], 'metrics': [{'values': ['1']}]}]

仅获取到9150条时间戳数据。

此问题已困扰我一周,我尝试调整GTM标签配置、更换查询及指标,但始终无法从GA API获取符合预期数量的时间戳。其他维度均正常,仅hit timestamp存在问题。请问我哪里操作有误?是配置问题还是查询错误?


内容的提问来源于stack exchange,提问作者André Luiz Tiago Soares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:25:24