0

我试图从谷歌Analytics(分析)核心报告API返回数据时添加段过滤器,并具有以下代码:如何设置谷歌Analytics(分析)报告API V4段过滤

<?php 

function getReport($analytics) 
{ 
    $VIEW_ID = "XXX"; 

    // Create the DateRange object. 
    $dateRange = new Google_Service_AnalyticsReporting_DateRange(); 
    $dateRange->setStartDate("30daysAgo"); 
    $dateRange->setEndDate("yesterday"); 

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

    $goalCompletionAll = new Google_Service_AnalyticsReporting_Metric(); 
    $goalCompletionAll->setExpression("ga:goalCompletionsAll"); 
    $goalCompletionAll->setAlias("goalCompletionsAll"); 

    // Create first dimension object 
    $dimensionChannel = new Google_Service_AnalyticsReporting_Dimension(); 
    $dimensionChannel->setName('ga:channelGrouping'); 

    // Create second dimension object 
    $dimensionSource = new Google_Service_AnalyticsReporting_Dimension(); 
    $dimensionSource->setName('ga:source'); 

    // Create Segment object 
    $segments = new Google_Service_AnalyticsReporting_Segment(); 
    $segments->setSegmentId('gaid::-4'); 

    // Create the ordering object 
    $ordering = new Google_Service_AnalyticsReporting_OrderBy(); 
    $ordering->setFieldName("ga:sessions"); 
    $ordering->setOrderType("VALUE"); 
    $ordering->setSortOrder("DESCENDING"); 

    // Create the Report Request object 
    $request = new Google_Service_AnalyticsReporting_ReportRequest(); 
    $request->setViewId($VIEW_ID); 
    $request->setDateRanges($dateRange); 

    // Set the metric 
    $request->setMetrics([ 
      $sessions, 
      $goalCompletionAll, 
    ]); 

    // Set the dimension 
    $request->setDimensions([ 
     $dimensionChannel, 
     $dimensionSource 
    ]); 


    // Set the segments 
    $request->setSegments($segments); 

    // Set ordering 
    $request->setOrderBys($ordering); 

    $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); 
    $body->setReportRequests(array($request)); 

    return $analytics->reports->batchGet($body); 
} 

但是当我运行这个代码中,我得到以下错误:

Requests with segments must have ga:segment dimension. 

我跟着我发现了在Java中this answer(段ID部)的例子。我有段ID的设置,所以,我需要做什么才能发送ga:segement维度请求?

回答

1

您必须创建一个细分维度:

 $dimensionSegment= new Google_Service_AnalyticsReporting_Dimension(); 
     $dimensionSegment->setName("ga:segment"); 

并将其添加到您的要求:

$request->setDimensions([ 
    $dimensionChannel, 
    $dimensionSource, 
    $dimensionSegment 
]); 
相关问题