【问题标题】:Google analytics 4 reporting dimensions & metrics are incompatible using pythonGoogle Analytics 4 报告维度和指标与使用 python 不兼容
【发布时间】:2023-02-08 20:12:00
【问题描述】:

我们在 Google Analytics Data API v1Beta 中定义了自定义维度,用于从 Google Analytics GA4 帐户中提取数据。 我正在尝试使用 python 获取关于日期、campaignId、campaignName 和 eventName 的 eventCount 指标。我想知道不同 campaignName 中不同 eventName 的 eventCount 是多少。有什么办法可以解决我如何获取这些数据?

import pandas as pd
import numpy as np
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange
from google.analytics.data_v1beta.types import Dimension
from google.analytics.data_v1beta.types import Metric
from google.analytics.data_v1beta.types import RunReportRequest

client = BetaAnalyticsDataClient()
## Format Report - run_report method
def format_report(request):
    response = client.run_report(request)
    # Row index
    row_index_names = [header.name for header in response.dimension_headers]
    row_header = []
    for i in range(len(row_index_names)):
        row_header.append([row.dimension_values[i].value for row in response.rows])
    row_index_named = pd.MultiIndex.from_arrays(np.array(row_header), names = np.array(row_index_names))
    # Row flat data
    metric_names = [header.name for header in response.metric_headers]
    data_values = []
    for i in range(len(metric_names)):
        data_values.append([row.metric_values[i].value for row in response.rows])
    output = pd.DataFrame(data = np.transpose(np.array(data_values, dtype = 'f')), 
                          index = row_index_named, columns = metric_names)
    return output
request = RunReportRequest(
        property='properties/'+property_id,
        dimensions=[            
            Dimension(name="date"),
            Dimension(name="eventName"),
            Dimension(name="campaignId"),
            Dimension(name="campaignName")
                ],
        metrics=[         
            Metric(name="eventCount"),
            ],
        date_ranges=[DateRange(start_date="2023-01-22", end_date="2023-01-25")],
    )

错误:

InvalidArgument:400 请删除 eventCount 以使请求兼容。请求的维度和指标不兼容。要了解更多信息,请参阅https://ga-dev-tools.web.app/ga4/dimensions-metrics-explorer/

error

【问题讨论】:

    标签: python api google-analytics-api google-analytics-4


    【解决方案1】:

    正如错误消息所述,并非所有维度和指标都兼容。

    在您的情况下,eventcountcampaignIdcampaignName 不兼容因此,要使此请求有效,您必须删除eventcount,或删除campaignIdcampaignName

    我想我的意思是你不能提出那个请求,数据不存在。

    【讨论】:

      【解决方案2】:

      我在创建自定义报告以基于itemId 获取itemListViewEventsitemViewEvents 时遇到同样的问题

      这是我的逻辑:

      require 'google/analytics/data'
      require 'google/analytics/data/v1beta'
      require 'google/analytics/data/v1beta/analytics_data'
      
      class GoogleAnalyticsReportingApiService
      
        range = Google::Analytics::Data::V1beta::DateRange.new(
          start_date: Time.zone.today.to_date.to_s,
          end_date: 1.week.ago.to_date.to_s
        )
      
        metrics = [
          Google::Analytics::Data::V1beta::Metric.new(expression: 'itemListViews', name: 'itemListViewEvents'),
          Google::Analytics::Data::V1beta::Metric.new(expression: 'itemViews', name: 'itemViewEvents')
        ]
      
        dimension = Google::Analytics::Data::V1beta::Dimension.new(name: 'itemId')
      
        rr = Google::Analytics::Data::V1beta::RunReportRequest.new(
          property: analytics_property,
          dimensions: [dimension],
          metrics: metrics,
          date_ranges: [range],
          order_bys: [{desc: true, metric: {metric_name: 'itemViewEvents'}}],
          limit: 100000
        )
      end
      

      我收到此错误:

      Google::Cloud::InvalidArgumentError: 3:Please remove itemId to make the request compatible. The request's dimensions & metrics are incompatible. To learn more, see https://ga-dev-tools.web.app/ga4/dimensions-metrics-explorer/. debug_error_string:{UNKNOWN:Error received from peer
      

      这在此处有明确概述:https://developers.google.com/analytics/devguides/reporting/data/v1/announcements/20221201-compatibility-changes

      现在的问题是,我不能只使用 dimensionmetrics,因为这两种方式都不支持 API 名称(例如:Metric 不支持 itemId)。不知道如何处理这个!

      【讨论】:

        猜你喜欢
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        • 2021-03-12
        • 1970-01-01
        • 2017-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多