Hej potrzebuję pomocy w zrozumieniu dlaczego dane z Google Analytics różnią się od danych pobieranych za pomocą Google Analytics API ewentualnie przedyskutowania kodu bo nie ejstem w 100% pewien czy wszystko jest tak jak sobie założyłem.
Potrzebuję pobrać 10 URLi (Landing Page) z najwyższą liczbą sesji w danych dniach. Dane te w intrerfejsie Google są dostępne w następujących zakładkach:
GA ACQUISITION -> All Traffic -> Channels -> Organic Search -> Landing Page
Tutaj mogę sobie wybrać metrics "sessions" i posortować malejąco. Wtedy widzę URLe z najwięszką liczbą sesji.
Chcąc pobrać powyższe dane za pomocą API napisałem poniższy kod:
$dateRange = new \Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate($startDate);
$dateRange->setEndDate($endDate);
$sessions = new \Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:sessions");
$landingPage = new \Google_Service_AnalyticsReporting_Dimension();
$landingPage->setName("ga:landingPagePath");
$channel = new \Google_Service_AnalyticsReporting_Dimension();
$channel->setName("ga:channelGrouping");
$channelFilter = new \Google_Service_AnalyticsReporting_DimensionFilter();
$channelFilter->setDimensionName("ga:channelGrouping");
$channelFilter->setOperator('EXACT');
$channelFilter->setExpressions(['Organic Search']);
$channelFilterClause = new \Google_Service_AnalyticsReporting_DimensionFilterClause();
$channelFilterClause->setFilters([$channelFilter]);
$request = new \Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($viewId);
$request->setDateRanges($dateRange);
$request->setMetrics( [$sessions] );
$request->getOrderBys($sessions);
$request->setDimensions( [$landingPage, $channel] );
$request->setDimensionFilterClauses($channelFilterClause);
$request->setIncludeEmptyRows(false);
$body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( [$request] );
$report = $this->analyticsReporting->reports->batchGet($body)[0];
$reportDataRows = $report->getData()->getRows();
Ale niestety tylko niektóre URLe są te same i mają tę samą liczbę sesji. Próbowałem różnie przerabiać ten kod i efekt był ten sam. Czy może ktoś podpowiedzieć jak mogę otrzymać dokładnie te same dane które otrzymuję z opisanych powyżej krokach (zakładkach) z interfejsu Google? Z góry dziękuję za pomoc :)