PHP 용 Google 클라이언트 라이브러리를 사용하여 Google 웹 로그 분석보고 API 버전 4를 사용하여 Google 웹 로그 분석에서 데이터를 가져옵니다. 문제는 내 정규식을 수락하지 않는다는 것입니다. Google의 검색어 탐색기에서 정규 표현식이 작동하는지 확인했습니다. 그것은 그것이 작동하지 않는 Google_Service_AnalyticsReporting_DimensionFilter() 클래스와 함께 사용하려고 할 때입니다. 결과는 합계가 0 인 경우 레코드가 반환되지 않음을 나타냅니다. 아래 코드를 살펴보십시오.정규 표현식을 Google Analytics Reporting API V4와 함께 사용하는 방법
function getReport($analytics)
{
// Replace with your view ID, for example XXXX.
$VIEW_ID = $this->viewId;
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate($this->startDate);
$dateRange->setEndDate($this->endDate);
// Create the Metrics object.
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression($this->metrics);
$sessions->setAlias($this->metricAlias);
//Create the Dimensions object.
$pagePath = new Google_Service_AnalyticsReporting_Dimension();
$pagePath->setName("ga:pagePath");
// Create Dimension Filter 1, Must use: =~
$dimensionFilter1 = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter1->setDimensionName("ga:pagePath");
$dimensionFilter1->setOperator('REGEXP');
$dimensionFilter1->setExpressions('27-of-the-most-beautiful-small-towns-to-visit-in-europe');
$dimensionFilter1->setNot(FALSE);
// Create Dimension Filter 2, Must use: !~
$dimensionFilter2 = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter2->setDimensionName("ga:pagePath");
$dimensionFilter2->setOperator('REGEXP');
$dimensionFilter2->setExpressions('\/.*?\/[0-9]+');
$dimensionFilter2->setNot(TRUE);
// Create Dimension Filter 3, Must use !~
$dimensionFilter3 = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter3->setDimensionName("ga:pagePath");
$dimensionFilter3->setOperator('REGEXP');
$dimensionFilter3->setExpressions('\/.*?\/images/images');
$dimensionFilter3->setNot(TRUE);
// Create the DimensionFilterClauses
$dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause();
$dimensionFilterClause->setFilters([$dimensionFilter1, $dimensionFilter2, $dimensionFilter3]);
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setMetrics([$sessions]);
$request->setDimensions([$pagePath]);
$request->setDimensionFilterClauses([$dimensionFilterClause]);
$request->setIncludeEmptyRows(false);
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests([$request]);
return $analytics->reports->batchGet($body);
}
이 코드가 올바르지 않습니까?
// Create Dimension Filter 1.
$dimensionFilter = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter->setDimensionName("ga:pagePath");
$dimensionFilter->setOperator('REGEXP');
$dimensionFilter->setExpressions('ga:PagePath !~ \/.*?\/[0-9]+');
쿼리 탐색기와 PHP API 요청의 출력을 모두 표시 할 수 있습니까? – dikesh
예. Query Explorer에서 다음 결과를 출력합니다. https://pastebin.com/enddpNbc 총 304 개의 레코드가 반환되었습니다. 위에 게시 한 코드가있는 API는 다음을 반환합니다. https://pastebin.com/VRchv798 –