首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >v4多指标查询

v4多指标查询
EN

Stack Overflow用户
提问于 2018-01-25 23:32:54
回答 3查看 2.6K关注 0票数 2

我一直试图获取所有urls的指标,这些urls中包含一个特定的id。从这个问题:Adding ga:pagePath dimension to get page views for a particular URL using Google Analytics Reporting API v4,我看到了查询方法,并尝试了它,而不是面向对象的版本。在查询方法中,代码工作非常出色,但它将只返回最后发送的度量(在本例中,它只返回唯一的页面视图,因为它是最后列出的度量标准)。我需要所有三个返回的值,而不必三次访问api。这是我的代码:

代码语言:javascript
复制
$query = [
        "viewId" => $profileId,
        "dateRanges" => [
            "startDate" => "2018-01-25",
            "endDate" => "2018-01-25"
        ],
        "metrics" => [
            "expression" => "ga:pageviews",
            "expression" => "ga:avgTimeOnPage",
            "expression" => "ga:uniquePageviews"
        ],
        "dimensions" => [
            "name" => "ga:pagepath"
        ],
        "dimensionFilterClauses" => [
            'filters' => [
                "dimension_name" => "ga:pagepath",
                "operator" => "PARTIAL", 
                "expressions" => $theId
            ]
        ]
    ];

    // build the request and response
    $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
    $body->setReportRequests(array($query));
    $report = $analytics->reports->batchGet($body);

对我如何正确做这件事有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-22 03:45:29

尝试以下函数,只需将ENTER_ID替换为ID即可。

代码语言:javascript
复制
function segmentRequest(&$analyticsreporting) {

  // Create the DateRange object.
  $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  $dateRange->setStartDate("2018-02-01");
  $dateRange->setEndDate("2018-02-15");

  // Create the Metrics object.
  $pageviews = new Google_Service_AnalyticsReporting_Metric();
  $pageviews->setExpression("ga:pageviews");
  $pageviews->setAlias("pageviews");

  //Create the browser dimension.
  $path = new Google_Service_AnalyticsReporting_Dimension();
  $path->setName("ga:pagePath");

  // Create the segment dimension.
  $segmentDimensions = new Google_Service_AnalyticsReporting_Dimension();
  $segmentDimensions->setName("ga:segment");

  // Create Dimension Filter.
  $dimensionFilter = new Google_Service_AnalyticsReporting_SegmentDimensionFilter();
  $dimensionFilter->setDimensionName("ga:pagePath");
  $dimensionFilter->setOperator("PARTIAL");
  $dimensionFilter->setExpressions(array("ENTER_ID"));

  // Create Segment Filter Clause.
  $segmentFilterClause = new Google_Service_AnalyticsReporting_SegmentFilterClause();
  $segmentFilterClause->setDimensionFilter($dimensionFilter);

  // Create the Or Filters for Segment.
  $orFiltersForSegment = new Google_Service_AnalyticsReporting_OrFiltersForSegment();
  $orFiltersForSegment->setSegmentFilterClauses(array($segmentFilterClause));

  // Create the Simple Segment.
  $simpleSegment = new Google_Service_AnalyticsReporting_SimpleSegment();
  $simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));

  // Create the Segment Filters.
  $segmentFilter = new Google_Service_AnalyticsReporting_SegmentFilter();
  $segmentFilter->setSimpleSegment($simpleSegment);

  // Create the Segment Definition.
  $segmentDefinition = new Google_Service_AnalyticsReporting_SegmentDefinition();
  $segmentDefinition->setSegmentFilters(array($segmentFilter));

  // Create the Dynamic Segment.
  $dynamicSegment = new Google_Service_AnalyticsReporting_DynamicSegment();
  $dynamicSegment->setSessionSegment($segmentDefinition);
  $dynamicSegment->setName("Visits to /en/listings.php");

  // Create the Segments object.
  $segment = new Google_Service_AnalyticsReporting_Segment();
  $segment->setDynamicSegment($dynamicSegment);

  // Create the ReportRequest object.
  $request = new Google_Service_AnalyticsReporting_ReportRequest();
  $request->setViewId("XXXXX");
  $request->setDateRanges(array($dateRange));
  $request->setDimensions(array($path, $segmentDimensions));
  $request->setSegments(array($segment));
  $request->setMetrics(array($pageviews));

  // Create the GetReportsRequest object.
  $getReport = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $getReport->setReportRequests(array($request));

  // Call the batchGet method.
  $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $body->setReportRequests( array( $request) );
  $response = $analyticsreporting->reports->batchGet( $body );

  printResults($response->getReports());
}
票数 0
EN

Stack Overflow用户

发布于 2018-10-23 21:39:59

对于那些想继续使用数组构建查询的人来说,这应该是可行的:

代码语言:javascript
复制
$request = [
    "viewId" => "123456789",
    "dateRanges" => [
        "startDate" => "2018-01-01",
        "endDate" => "today"
    ],
    "metrics" => [
        "expression" => "ga:pageviews"
    ],
    "dimensions" => [
        ["name" => "ga:browser"],
        ["name" => "ga:sessionDurationBucket"]
    ],
    "dimensionFilterClauses" => [
        'filters' => [
            "dimension_name" => "ga:pagepath",
            "operator" => "EXACT",
            "expressions" => $url
        ]
    ]
];
票数 1
EN

Stack Overflow用户

发布于 2021-03-04 13:22:12

您可以通过为每个表达式(["expression" => "ga:uniquePageviews"])使用数组定义数组样式的多个度量。

代码语言:javascript
复制
  $query = [
          "viewId" => profileId,
          "dateRanges" => [
              "startDate" => "2018-01-25",
              "endDate" => "2018-01-25"
          ],
          "metrics" => [
              ["expression" => "ga:pageviews"],
              ["expression" => "ga:avgTimeOnPage"],
              ["expression" => "ga:uniquePageviews"]               
              
          ],
          "dimensions" => [
              "name" => "ga:pagepath"
          ],
    ];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48453621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档