API отчетов Google Analytics — получение активности с идентификатором пользователя

#google-analytics #google-analytics-api #google-analytics-userid

#google-analytics #google-analytics-api

Вопрос:

Я не могу получить информацию об активности пользователя из API отчетов Google Analytics (v4), используя идентификатор пользователя.

Идентификатор клиента (в другом представлении, отличном от идентификатора пользователя), однако, работает.

Я что-то упускаю?

Для идентификатора клиента

Я захожу сюда в своем веб-интерфейсе Google Analytics:

https://analytics.google.com/analytics/web/#/report/visitors-user-activity/a45743608w76484324p 79062844 /_u.date00=20190327amp;_u.date01=20190402amp;_r.userId=1142688158.1525244974

Я получаю сведения об активности пользователя, как и ожидалось: Веб-интерфейс Google Analytics с использованием идентификатора клиента

Я вызываю следующее:

 POST https://analyticsreporting.googleapis.com/v4/userActivity:search?key={YOUR_API_KEY}

{
  "viewId": "79062844",
  "dateRange": {
     "startDate": "2019-03-27",
     "endDate": "2019-04-02"
  },
   "user": {
     "type": "CLIENT_ID",
     "userId": "1142688158.1525244974"
  }
}
  

Я получаю ожидаемый ответ:

 {
  "sessions": [
    …
  ],
  "totalRows": 14,
  "sampleRate": 1
}
  

Для идентификатора пользователя

Я захожу сюда в своем веб-интерфейсе Google Analytics:

https://analytics.google.com/analytics/web/#/report/visitors-user-activity/a45743608w76484324p 185098721 /_u.date00=20190327amp;_u.date01=20190402amp;_r.userId=Not Logged In-

Я получаю сведения об активности пользователя, как и ожидалось: Веб-интерфейс Google Analytics с использованием идентификатора пользователя

Я вызываю следующее:

 POST https://analyticsreporting.googleapis.com/v4/userActivity:search?key={YOUR_API_KEY}

{
  "viewId": "185098721",
  "dateRange": {
     "startDate": "2019-03-27",
     "endDate": "2019-04-02"
  },
   "user": {
     "type": "USER_ID",
     "userId": "Not Logged In-"
  }
}
  

Вместо этого я получаю ошибку:

 {
  "error": {
    "code": 400,
    "message": "USER_ID: Not Logged In- not found.",
    "status": "INVALID_ARGUMENT"
  }
}
  

Я пробовал разные идентификаторы, разные даты, менял тип на CLIENT_ID, URL, кодирующий идентификатор пользователя, и идентификаторы пользователей без пробелов — без радости.

Комментарии:

1. Почему вы отправляете ключ API это личные данные, вы должны отправлять токен доступа.

2. Я добавил скриншоты для наглядности.

3. Хорошо, вы выиграли, это выглядит странно, я отправил электронное письмо команде в Google, я не могу обещать, что вы здесь что-нибудь услышите, но если я это сделаю, я дам вам знать. Возможно, вы также захотите отправить отчет об ошибке issuetracker.google.com/issues ? q = componentid: 187400

4. Они изучают это

5. Текущий вариант заключается в том, что API может быть не в состоянии обрабатывать идентификаторы пользователей с пробелом. они могут обновлять документы. Если я услышу что-нибудь еще, я дам вам знать. Я сообщу им о вашей проблеме

Ответ №1:

Похоже, это действительно ошибка, с которой сталкиваются несколько других.

Эта ошибка может быть 1 ‘d и отслежена здесь:
https://issuetracker.google.com/issues/130161158

Редактировать: Теперь это исправлено.

Ответ №2:

В вашем URL-адресе вы ищете идентификатор с именем Not Logged In- , который не является действительным идентификатором. Вероятно, это изменение идентификатора при копировании URL-адреса.

Комментарии:

1. Спасибо за ваш ответ. В документации говорится, что идентификатором пользователя может быть текст любой длины: developers.google.com/analytics/devguides/collection/… Тем не менее, я пробовал использовать идентификаторы пользователей только с шестнадцатеричными значениями (например, «55d28a097d822306603eb942») с тем же результатом. Чтобы уточнить, URL-адреса работают нормально, это API, который не возвращает активность пользователя при использовании идентификаторов пользователей.

2. Хм, хорошо, значит, под этим идентификатором много пользователей? Тело вашего запроса выглядит нормально, я подозреваю, что его API не может обрабатывать пробелы, поскольку это единственное, что отличается от моих обращений к идентификатору пользователя, и я бы сказал, необычно. Я предполагаю, что его URL-адрес закодирован только в веб-интерфейсе. Можете ли вы попробовать использовать обычный формат идентификатора пользователя, например «не авторизованный»?

3. Я пробовал без пробелов (или дефисов), но все равно получаю ошибку. Например. «USER_ID: 55d28a097d822306603eb942 не найден».