GA4 — Informar evento “purchase” via API
Olá Gente!
Certamente você já teve problemas ao enviar os eventos de compra para a Google, já que nem sempre a compra tem seu pagamento confirmado na hora para permitir o envio via Javascript.
No GA4 podemos enviar via API com muita facilidade!
A primeira coisa a fazer é copiar o código do GA4.
Para isto, acesse o painel da Google Analytc e clique em “Fluxos de Dados”, e copie o “ID da Métrica”:
Agora iremos gerar o Token, para isto, clique em “Chaves secretas da API do Measurement Protocol”:

Após isto clique em “Criar” e preencha um nome para identificar o Token:

Pronto! Copie o Token na coluna “Valor do secret”:

Agora temos que Obter o “client_id” da pessoa que esta navegando no site, para isto, iremos utilizar a função nativa do GA4 “gtag”:
<script language="javascript" type="text/javascript">
$(function() {
try {
gtag('get', 'G-XXXXXXXXX', 'client_id', (clientID) => {
console.log("clientID", clientID);
});
}
catch (e) {
//
}
});
</script>
Nesta função, preencha o “ID da Métrica” no lugar de “G-XXXXXXXXX” e salve o “clientID’.
Com esta informação, vamos ao PHP para enviar o evento “purchase”:
<?
$CfgIfn_Endpoint = "https://www.google-analytics.com/mp/collect?api_secret=[api_secret]&measurement_id=[measurement_id]";
$CfgIfn_Payload = '{
"client_id": "[client_id]",
"non_personalized_ads": false,
"events": [
{
"name": "purchase",
"params": {
"transaction_id": "1",
"affiliation": "SiteTeste",
"value": 100,
"currency": "BRL",
"tax": 0,
"shipping": 0,
"items": [{
"item_id": "1",
"item_name": "Notebook",
"quantity": 1,
"price": 100
}]
}
}]
}';
# -------------------------------------------------------------------
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $CfgIfn_Endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $CfgIfn_Payload,
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$err = curl_error($curl);
curl_close($curl);
var_dump($httpcode);
var_dump($response);
?>
Aqui precisamos preencher alguns campos:
- [api_secret]: Preencha com a “Chaves secretas da API do Measurement Protocol” que geramos no Painel da Google
- [measurement_id]: Preencha com o “ID da Métrica” que copiamos do painel da Google
- [client_id]: Preencha com o “ClientId” que obtemos via javascript no site
E também atualize os dados do evento na variável “events”:
{
"name": "purchase",
"params": {
"transaction_id": "1",
"affiliation": "SiteTeste",
"value": 100,
"currency": "BRL",
"tax": 0,
"shipping": 0,
"items": [{
"item_id": "1",
"item_name": "Notebook",
"quantity": 1,
"price": 100
}]
}
}Por hoje é só, pessoal! 🛑
Até mais! 👋