|
import json |
|
import requests |
|
import globales |
|
|
|
def send_ga4_purchase_event(session): |
|
""" |
|
Función para enviar un evento de compra a GA4 usando Measurement Protocol. |
|
|
|
Args: |
|
event_data: Un diccionario con los datos del evento de compra de Stripe. |
|
""" |
|
url = f"https://www.google-analytics.com/mp/collect?measurement_id={globales.ga4ID}&api_secret={globales.ga4Key}" |
|
|
|
moneda = session['currency'].upper() |
|
imagenes = session['metadata']['imagenes'] |
|
print(f"Imágenes es: {imagenes} y es del tipo {type(imagenes)}...") |
|
valor = session['amount_total'] / 100.0 |
|
print(f"Valor es {valor} y es del tipo {type(valor)}...") |
|
cxm = int(valor) / int(imagenes) |
|
print(f"cxm es {cxm} y su tipo es {type(cxm)}...") |
|
|
|
id_imagenes = str(imagenes) + 'i' |
|
id_valor = str(int(valor)) + moneda |
|
id_cxm = str(cxm) + moneda |
|
|
|
|
|
item_id = id_imagenes + id_valor |
|
item_name = id_cxm |
|
|
|
|
|
items = [] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
items.append({ |
|
"item_id": item_id, |
|
"item_name": item_name, |
|
"price": int(valor), |
|
"quantity": 1 |
|
}) |
|
|
|
payload = { |
|
"client_id": session['metadata']['gaCliente'], |
|
"events": [ |
|
{ |
|
"name": "purchase", |
|
"params": { |
|
|
|
"transaction_id": session['id'], |
|
"value": valor, |
|
"currency": moneda, |
|
"items": items |
|
} |
|
} |
|
] |
|
} |
|
|
|
try: |
|
response = requests.post(url, data=json.dumps(payload), headers={"Content-Type": "application/json"}) |
|
response.raise_for_status() |
|
print("Evento de compra enviado a GA4 con éxito.") |
|
return True |
|
except requests.exceptions.RequestException as e: |
|
print(f"Error al enviar el evento a GA4: {e}") |
|
return False |