【问题标题】:Programatically specify Google Analytics Reporting API v4 query results以编程方式指定 Google Analytics Reporting API v4 查询结果
【发布时间】:2017-05-16 01:13:25
【问题描述】:

如何查询特定页面?我只需要从特定页面获取数据。

示例:domain.com/thisPage、domain.com/anotherPage 等。

ReportRequest reportRequestLandingPath = new ReportRequest
{
    ViewId = GoogleAnalyticsIds,
    DateRanges = new List<DateRange>() { dateRange },
    Dimensions = new List<Dimension>() { landingPagePath },
    Metrics = new List<Metric>() { avgSessionDuration, sessions, pageviewsPerSession }
};

我正在尝试获得看起来像 something like this 的结果,以便我可以将它们添加到我正在构建的谷歌图表中。

我的问题是我获得了域上每个页面的所有 78 个结果。我只需要从 5-6 个特定页面获取 avgSessionDuration、sessions、pageviewsPerSession。

【问题讨论】:

    标签: c# .net google-api google-analytics-api google-api-dotnet-client


    【解决方案1】:

    您应该为您的请求添加一个过滤器,只需添加您想要查看数据的页面,并且只会返回这些页面的数据。

    var metrics = new List<Metric>();
    metrics.Add(new Metric { Expression = "ga:avgSessionDuration", Alias = "Avg. Session Duration" });
    metrics.Add(new Metric { Expression = "ga:sessions", Alias = "Sessions" });
    metrics.Add(new Metric { Expression = "ga:pageviewsPerSession", Alias = "Pageviews Per Session" });
    
    var dimensions = new List<Dimension>();
    dimensions.Add(new Dimension { Name = "ga:landingPagePath" });
    
    var filterClause = new DimensionFilterClause();
    
    var filter = new DimensionFilter
             {
             DimensionName = "ga:landingPagePath",
             Operator__ = "PARTIAL",
             Expressions = new List<string> { "accessing-google-calendar-with-php-oauth2" }
            };
    filterClause.Filters = new List<DimensionFilter> { filter };
    ReportRequest reportRequest = new ReportRequest
                {
                    ViewId = "78110423",
                    DateRanges = new List<DateRange>() { new DateRange() { StartDate = "3daysago", EndDate = "today" } },
                    Dimensions = dimensions,
                    Metrics = metrics,
                    DimensionFilterClauses = new List<DimensionFilterClause> { filterClause }
                };
    
    List<ReportRequest> requests = new List<ReportRequest>();
    requests.Add(reportRequest);
    
    // Create the GetReportsRequest object.
    GetReportsRequest getReport = new GetReportsRequest() { ReportRequests = requests };
    

    我建议使用 Query explorer 来测试您的过滤器,但要让它们正常工作可能会很棘手。

    【讨论】:

    • 我在 Expressions 变量中有一个字符串列表。但是 getReport 只返回第 0 个列表项的值,而没有返回其他列表项的结果。
    • @NucleusDev 我认为你应该提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2016-11-22
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    相关资源
    最近更新 更多