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 
]); 
相關問題