Как обрабатывать потенциально неудачные запросы POST к Google Analytics, сделанные с помощью жадности? - PullRequest
0 голосов
/ 23 января 2020

Я создал класс 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 * ошибок / исключений. Мысли о том, как я могу решить это? Кто-нибудь сталкивался с подобной проблемой с протоколом измерений и жрет?

...