【问题标题】:Is Universal Analytics C# SDK compatible with GA4?Universal Analytics C# SDK 是否与 GA4 兼容?
【发布时间】:2020-11-13 18:09:17
【问题描述】:

我正在使用 Google.Apis.AnalyticsReporting.v4 库来获取旧的谷歌分析视图。如何将此代码转换为 GA4?我在代码中找不到关于将 View Id 切换为其他内容的行。

我已经检查了这个帖子"How do I get view id in GA4",但我的属性已经存在,我没有看到创建后修改它们的选项。

using (var svc = new AnalyticsReportingService(authInitializer.CreateInitializer()))
{
    var dateRange = new DateRange
    {
        StartDate = analyticsParams.From.ToString("yyyy-MM-dd"),
        EndDate = analyticsParams.To.ToString("yyyy-MM-dd")
    };
    var sessions = new Metric
    {
        Expression = "ga:sessions",
        Alias = "Sessions"
    };
    var date = new Dimension { Name = "ga:date" };

    var reportRequest = new ReportRequest
    {
        DateRanges = new List<DateRange> { dateRange },
        Dimensions = new List<Dimension> { date },
        Metrics = new List<Metric> { sessions },
        ViewId = analyticsParams.ViewId, // <------------------------- My view id
    };

    var getReportsRequest = new GetReportsRequest
    {
        ReportRequests = new List<ReportRequest> { reportRequest }
    };

    var batchRequest = svc.Reports.BatchGet(getReportsRequest);
    var response = batchRequest.Execute();

    var reports = response.Reports.First();

    return reports.Data.Rows.Select(x => new DataEntry()
    {
        Date = DateTime.ParseExact(x.Dimensions[0], "yyyyMMdd", CultureInfo.InvariantCulture),
        Value = int.Parse(x.Metrics[0].Values[0]),
    }).ToList();
}

【问题讨论】:

    标签: c# google-analytics google-analytics-sdk google-analytics-4


    【解决方案1】:

    您需要使用Google Analytics Data API V1(目前为 Alpha 版)才能访问您的 GA4 属性。这是一个quick start sample for .NET,看起来与您尝试做的类似。

    using Google.Analytics.Data.V1Alpha;
    using System;
    
    namespace AnalyticsSamples
    {
        class QuickStart
        {
            static void SampleRunReport(string propertyId)
            {
                // Using a default constructor instructs the client to use the credentials
                // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
                AlphaAnalyticsDataClient client = AlphaAnalyticsDataClient.Create();
    
                // Initialize request argument(s)
                RunReportRequest request = new RunReportRequest
                {
                    Entity = new Entity{ PropertyId = propertyId },
                    Dimensions = { new Dimension{ Name="city"}, },
                    Metrics = { new Metric{ Name="activeUsers"}, },
                    DateRanges = { new DateRange{ StartDate="2020-03-31", EndDate="today"}, },
                };
    
                // Make the request
                RunReportResponse response = client.RunReport(request);
    
                Console.WriteLine("Report result:");
                foreach( Row row in response.Rows )
                {
                    Console.WriteLine("{0}, {1}", row.DimensionValues[0].Value, row.MetricValues[0].Value);
                }
            }
    
            static int Main(string[] args)
            {
                if (args.Length == 0 || args.Length > 2)
                {
                    Console.WriteLine("Arguments: <GA4 property ID>");
                    Console.WriteLine("A GA4 property id parameter is required to make a query to the Google Analytics Data API.");
                    return 1;
                }
                string propertyId = args[0];
                SampleRunReport(propertyId);
                return 0;
            }
        }
    }
    

    【讨论】:

    • 我也看过这些 API,但至于测量协议,它们处于 alpha 阶段,文档本身说这是 API 的早期预览版本,可能会发生变化。虽然我们会尝试通知您即将发生的更改,但您应该会在 API 公开发布之前遇到重大更改。我的建议是,如果您想获得合理的结果,请不要使用它们,而是在 BigQuery 上使用它们。
    • 我想我会接受这个答案。它看起来比 BigQuery 更接近我已有的东西
    【解决方案2】:

    目前没有可用于 GA4 媒体资源的 API。此外 GA4 不提供 Views,您必须使用 BigQuery 以编程方式获取数据。

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2021-03-12
      • 1970-01-01
      • 2022-10-22
      • 1970-01-01
      • 2023-04-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多