Я попытаюсь объяснить это как можно проще.
У меня есть объект Google Analytics с именем analytics
из функции initialise_analytics_reporting
.
Используя этот объект, я получаю данные для определенного пользователя c, использующего функцию get_UserActivity
:
def get_UserActivity:
return analytics.userActivity().search(
body={
"viewId": VIEW_ID,
"user": {
"type": "USER_ID",
"userId": user_id
},
"dateRange": {
"startDate": time,
"endDate": "yesterday"
},
"activityTypes": [
"PAGEVIEW", "EVENT"
]
}
).execute()
Я перебираю список user_id
. Если user_id
действительно имеет данные, будут выполнены определенные операции (что работает хорошо). Если user_id
не имеет данных, он все равно загружается и приводит к ошибке (что нормально, но занимает очень много времени).
Проблема, с которой я столкнулся - это бит загрузки для пользователя без данных, он занимает слишком много времени при просмотре очень длинного списка пользователей для проверки.
Есть ли какой-нибудь способ, которым я могу определить перед запуском get_UserActivity
, есть ли у пользователя данные или нет? Или, может быть, даже в пределах get_UserActivity
, если можно избежать всего процесса загрузки, приводящего к ошибке.
(Другими словами, есть ли способ получить список всех пользователей в пределах объекта, который будет иметь данные и выполнять только их итерацию вместо проверки наличия данных у каждого пользователя)