0

:Google 웹 로그 분석보고 API v4의에 세그먼트 필터를 설정하는 방법 내가 API를보고 Google 웹 로그 분석 핵심 데이터를 반환 할 때 세그먼트 필터를 추가하고 다음 코드를 가지고 노력하고

<?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. 

가 나는 자바 this answer (세그먼트 아이디 부분)이었다 발견의 예를 따랐다. 세그먼트 ID가 설정되어 있으므로 ga : segement 차원에 대한 요청을 보내려면 어떻게해야합니까?

답변

1

당신은 세그먼트 치수 작성해야합니다

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

을 그리고 귀하의 요청에 추가 :

$request->setDimensions([ 
    $dimensionChannel, 
    $dimensionSource, 
    $dimensionSegment 
]);