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

无法添加用户时,如何通过Python API访问Google Analytics演示账户数据?

访问Google Analytics演示账户数据的替代方案

嘿,这个问题我之前碰到过,没法把服务账号添加到官方演示账户里确实有点卡壳,但有几个靠谱的思路可以试试:

1. 用BigQuery公共数据集直接查询

Google早就把Analytics演示账户的同步数据放到了BigQuery的公共数据集里,这是最稳妥的替代方案——不需要申请演示账户的权限,只要你的服务账号能访问BigQuery就行。

  • 操作步骤:
    • 先去Google Cloud控制台给你的服务账号添加BigQuery Data Viewer角色,确保它拥有读取公共数据的权限
    • 用Python的google-cloud-bigquery库连接查询,数据集地址是bigquery-public-data.google_analytics_sample.ga_sessions_*,里面全是演示账户的会话数据
    • 示例代码参考:
      from google.cloud import bigquery
      from google.oauth2 import service_account
      
      # 加载服务账号密钥文件
      credentials = service_account.Credentials.from_service_account_file('your-service-account-key.json')
      client = bigquery.Client(credentials=credentials, project='你的GCP项目ID')
      
      # 查询某天的访问量和页面浏览量
      query = """
          SELECT date, totals.visits, totals.pageviews
          FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
          LIMIT 10
      """
      query_job = client.query(query)
      results = query_job.result()
      
      for row in results:
          print(f"日期: {row.date}, 访问量: {row.totals.visits}, 页面浏览量: {row.totals.pageviews}")
      

2. 试试官方测试视图ID(限基础验证)

Google有个官方测试视图ID ga:12345678,对应演示账户的视图,你可以直接用这个ID结合服务账号调用Analytics Reporting API。不过要注意,这个测试端点的访问权限可能随时调整,能拿到的数据量和功能有限,只能用来验证API调用流程是否正常。

  • 示例代码片段:
    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    
    SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
    KEY_FILE_LOCATION = 'your-service-account-key.json'
    VIEW_ID = 'ga:12345678'
    
    def initialize_analyticsreporting():
        credentials = service_account.Credentials.from_service_account_file(
            KEY_FILE_LOCATION, scopes=SCOPES)
        return build('analyticsreporting', 'v4', credentials=credentials)
    
    def get_report(analytics):
        return analytics.reports().batchGet(
            body={
                'reportRequests': [
                    {
                        'viewId': VIEW_ID,
                        'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
                        'metrics': [{'expression': 'ga:sessions'}],
                        'dimensions': [{'name': 'ga:date'}]
                    }]
            }
        ).execute()
    
    def print_response(response):
        for report in response.get('reports', []):
            columnHeader = report.get('columnHeader', {})
            dimensionHeaders = columnHeader.get('dimensions', [])
            metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
    
            for row in report.get('data', {}).get('rows', []):
                dimensions = row.get('dimensions', [])
                metrics = row.get('metrics', [])[0].get('values', [])
                print(f"日期: {dimensions[0]}, 会话数: {metrics[0]}")
    
    if __name__ == '__main__':
        analytics = initialize_analyticsreporting()
        response = get_report(analytics)
        print_response(response)
    

    划重点:如果这个测试ID突然访问不了,大概率是官方调整了权限,这时候直接转用BigQuery的方案就行。

3. 申请自己的Analytics沙盒账户

要是你需要完整的Analytics功能测试,不如直接申请一个Google Analytics沙盒账户——这个账户会提供完整的测试数据和管理权限,你想加服务账号还是其他用户都随便来,完全模拟真实环境,而且是免费的。申请流程在Google Analytics官方帮助里就能找到,操作很简单。

最后提醒一句:不管用哪个方案,都得先在Google Cloud控制台开启对应的API(比如BigQuery API或者Analytics Reporting API),不然服务账号没法正常调用哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:29:33