Как получить идентификатор сеанса Google Analytics через API-интерфейс google-analytics (googleapiclient) - PullRequest
0 голосов
/ 07 февраля 2020

Я использую java для чтения идентификатора сеанса, в нашем случае это «clientId». Я получаю хороший ответ обратно. Где, когда я использую python, я не получаю результаты. Ниже приведен код.

python код

Python Код, который не возвращает никаких результатов при использовании clientId в измерениях. Другие измерения дают результаты. Пример импорта googleapiclient.

   from googleapiclient.discovery import build

   # Build the service object.
  analytics = build('analyticsreporting', 'v4', credentials=credentials)

  return analytics.reports().batchGet(
  body={
    "reportRequests": [
    {
      "viewId": VIEW_ID,
      "dateRanges": [{"startDate": "7daysAgo", "endDate": "today"}],
     "dimensions":[{"name": "ga:userType"}, {"name": "ga:clientId"}],
      "metrics": [{"expression": "ga:pageViews"}, {"expression": "ga:sessions"}, {"expression": 
    "ga:newUsers"}]
    }]
  }
 ).execute()

java код

Java Код, который возвращает идентификатор сеанса (clientId), пример соответствующих импортов

import com.google.api.services.analyticsreporting.v4.AnalyticsReportingScopes;
import com.google.api.services.analyticsreporting.v4.AnalyticsReporting;


Dimension pageTitle = new Dimension().setName("ga:pagePath");
Dimension userType = new Dimension().setName("ga:userType");
Dimension clientId = new Dimension().setName("ga:clientId");

List<Dimension> lstDim = new ArrayList<Dimension>();
lstDim.add(userType);
lstDim.add(pageTitle);
lstDim.add(clientId); 

// Create the ReportRequest object.
ReportRequest request = new ReportRequest()
    .setViewId(VIEW_ID)
    .setDateRanges(Arrays.asList(dateRange))
    .setMetrics(lstMetrics)
    .setDimensions(lstDim);

ArrayList<ReportRequest> requests = new ArrayList<ReportRequest>();
requests.add(request);

// Create the GetReportsRequest object.
GetReportsRequest getReport = new GetReportsRequest()
    .setReportRequests(requests);

// Call the batchGet method.
GetReportsResponse response = service.reports().batchGet(getReport).execute();
...