Na czym to polega w sklepie
Zdarzenie refund koryguje przychód po zwrocie towaru. Wymaga transaction_id oryginalnego zakupu oraz value zwracanej kwoty. Przy zwrocie częściowym możesz podać tablicę items z zwracanymi pozycjami - GA4 odejmie wartość od raportów ecommerce.
Przykład ze sklepu internetowego
ERP wysyła webhook po akceptacji zwrotu - backend sklepu wywołuje refund z ID oryginalnej transakcji i kwotą częściową:
// Zwrot częściowy - jedna pozycja z zamówienia ORD-2026-78421
gtag('event', 'refund', {
transaction_id: 'ORD-2026-78421',
value: 49.90,
currency: 'PLN',
items: [
{
item_id: 'SKU-8810',
item_name: 'Czapka trekkingowa',
quantity: 1,
},
],
});
// Zwrot pełny - tylko transaction_id i value
gtag('event', 'refund', {
transaction_id: 'ORD-2026-77100',
value: 349.90,
currency: 'PLN',
});
// Zalecane: refund z Measurement Protocol po stronie serwera (nie z przeglądarki)
Co zrobić po stronie biznesu
- Raport net revenue - purchase minus refund w BigQuery.
- Analiza refund rate per SKU - problemy jakościowe produktu.
- Synchronizacja GA4 z ERP - ten sam transaction_id co przy purchase.
W skrócie
refund bez transaction_id nie skoryguje właściwego zakupu. Wysyłaj go z backendu po fakcie zwrotu, nie z frontu sklepu.