Я генерирую потенциальных клиентов с помощью рекламных объявлений в Facebook. Мой сервер принимает RTU от Facebook, и я могу передать данные в свою CRM, как требуется для моих нужд.
Я хочу отправить событие в GA, когда форма будет заполнена в Facebook.
Чтение по Справочнику по протоколу измерений Google , в котором говорится:
user_agent_string - Форматированная строка агента пользователя, используемая для вычисления следующих измерений: браузер, платформаи мобильные возможности.
Если это значение не установлено, приведенные выше данные не будут вычисляться.
Я полагаю, что это потому, что я пытаюсь отправить событие через веб-крючок PHPСценарий, в котором не задействован браузер, запрос не выполняется.
Вот соответствующая часть кода, который я запускаю (я изменил с POST на GET, думая, что это могло быть проблемой, изменит это обратноPOST, как только он заработает):
$eventData = [
'v' => '1',
't' => 'event',
'tid' => 'UA-XXXXXXX-1',
'cid' => '98a6a970-141c-4a26-b6j2-d42a253de37e',
'ec' => 'my-category-here',
'ea' => 'my-action-here',
'ev' => 'my-value-here
];
//Base URL for API submission
$googleAnalyticsApiUrl = 'https://www.google-analytics.com/collect?';
//Add vars from $eventData object
foreach ($eventData as $key => $value) {
$googleAnalyticsApiUrl .= "$key=$value&";
}
//Remove last comma for clean URL
$googleAnalyticsApiUrl = substr($googleAnalyticsApiUrl, 0, -1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $googleAnalyticsApiUrl);
curl_setopt($ch,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
Я полагаю, что именно пользовательский агент вызывает проблему, как будто я вручную помещаю тот же URL в браузерЯ пытаюсь попасть, событие мгновенно появляется в отслеживании в реальном времени в GA.
Примером указанного URL является:
https://www.google -аналитика. com / collect? v = 1 & t = event & tid = UA-XXXXX-1 & cid = 98a6a970-141c-4a26-b6j2-d42a253de37e & ec = my-category-here & ea = my-action-here & el = my-value-here
Я использовал как действующую конечную точку, так и / debug / endpoint. Мой код не будет отправляться без ошибок, но если я захожу на соответствующие URL-адреса через браузер, конечная точка отладки говорит, что все в порядке, а затем в действующей конечной точке событие достигает GA, как и ожидалось.
Я в курсеcurl_setopt($ch,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
пытается отправить пользовательский агент браузера. Я попытался заполнить эту опцию такими вещами, как
"Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit /537.36 (KHTML, как Gecko) Chrome / 78.0.3904.87 Safari / 537.36 "
, но он никогда не будет принят протоколом измерений.
Мои вопросы
Могу ли я отправить эти события в GA без использования веб-браузера? Раньше Zapier передавал мне эти события, поэтому я предполагаю, что это возможно.
Как мне отправить действительную строку user_agent_string через PHP? Я пытался подделать его с помощью CURLOPT_USERAGENT, но мне так и не удалось заставить их работать.