Я создал класс php, который отправляет попадания в GA через службу Measurement Protocol с помощью gzzle. У нас также есть внутренняя база данных отслеживания активности, которая отслеживает определенные события, такие как покупка. Что касается события покупки, то в среднем на 20% меньше посещений, чем при нашем внутреннем отслеживании - мы пропускаем большую часть заказов в GA ежедневно. У нас есть журналы для каждого попадания и его параметры, внесенные в протокол измерения, а отсутствующие заказы / события покупки не найдены в журналах, что означает, что они никогда не отправляются в GA. Код, который отправляет в GA, выглядел следующим образом:
try {
$client = new Client(['base_uri' => $config->ga_url]);
$response = $client->request('POST', self::GOOGLE_COLLECT_URL, ['form_params' => $options]);
$this->logFile->info(json_encode($options));
} catch (GuzzleException $guzzleException) {
$this->logger->alert('Failed posting data to GA',
[
'userId' => $um->getUid(),
'error' => $guzzleException->getMessage()
]);
}
}
Сейчас за последние 20 дней было только 6 исключений, связанных с жадностью, поэтому, если будут выданы другие исключения, они не будут перехвачены блок catch, так как он специально ищет исключения в жрете. Я подумываю об изменении GuzzleException
на Throwable
, чтобы помочь перехватить больше общих / 1008 * ошибок / исключений. Мысли о том, как я могу решить это? Кто-нибудь сталкивался с подобной проблемой с протоколом измерений и жрет?