Repejo pushar GA4-ecommerce-händelser till
window.dataLayer
i webbläsaren. Marknadsförare kan då koppla konverteringar i GTM mot valfri
plattform (Meta, Google Ads, TikTok m.fl.) utan separata integrationer per
annonssystem. Vill ni dessutom ha serverside-spårning relayar Repejo samma
purchase
till GA4 Measurement Protocol.
window.dataLayer
och er befintliga GTM-container plockar upp händelserna. Repejo laddar
aldrig en egen container och skriver aldrig över en befintlig dataLayer.
repejo_first_interaction)
behöver de pekas om till namnen nedan.
purchase skickas
purchase
skickas endast
när betalningen är bekräftad och givaren
landat på tacksidan (efter BankID/Swish). Den skickas aldrig
när användaren bara skickats vidare till betalning (t.ex. väntläge för
BankID/Swish). Konverteringspunkten innehåller därför korrekt kunddata på
tacksidan – inte innan betalningen är klar.
Pushar (särskilt user_data)
sker endast om besökaren samtyckt till marknadsföringscookies – samma modell
som Meta-integrationen.
user-has-consented-to-marketing-cookies
till true
på webbkomponenten.
Deduplicering:
Klient-push och serverside-reläet använder samma
transaction_id
(Repejos receivable-id), så GA4 dedupliserar de två purchase-händelserna
automatiskt. Konfigurera GTM-taggar att deduplicera på
transaction_id
så att en omladdning av tacksidan inte dubbelräknas.
Nedan visas exakt vad som hamnar i
window.dataLayer
per händelse. Varje ecommerce-händelse föregås alltid av en { ecommerce: null }-push
(GA4-praxis) så att items
aldrig läcker mellan händelser.
Byggs i webbläsaren, innehåller ingen personuppgift och har inget serverside-relä. Skickas en gång per sidladdning och händelsetyp, och endast om GTM är aktivt och marknadsföringssamtycke finns.
begin_checkout
– första valet som startar flödet (t.ex. väljer belopp).
view_item
– när användaren går vidare från första steget.
add_payment_info
– när användaren väljer betalmetod.
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: "begin_checkout", // eller "view_item" / "add_payment_info"
ecommerce: {
currency: "SEK", // checkoutens valuta, annars "SEK"
value: 205 // utelämnas helt om beloppet inte är ett ändligt tal
}
});
Byggs en gång på servern (samma källa som serverside-reläet) och
skickas endast
när betalningen är bekräftad på tacksidan. De fyra valfria nycklarna
(repejo_metadata, user_data, gclid, fbclid)
tas bara med när det finns ett värde.
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: "purchase",
donation_type: "recurring", // se tabell nedan
ecommerce: {
transaction_id: "rec_…", // receivable-id, annars subscription-id, annars token
value: 205.0,
currency: "SEK",
items: [{
item_name: "Monthly donation", // se tabell nedan
item_category: "recurring", // samma värde som donation_type
price: 205.0,
quantity: 1
}]
},
repejo_metadata: { … }, // publik metadata, om icke-tom
gclid: "…", // Google Ads-klick, om fångat
fbclid: "…", // Meta-klick, om fångat
user_data: { // se nedan – avstängt som standard
email: "donor@example.com", // gemener + trimmad
email_sha256: "…",
phone_number_plus: "+46701234567", // svensk 0… → 46…
phone_number_plus_sha256: "…",
phone_number_noplus: "46701234567",
phone_number_noplus_sha256: "…"
}
});
donation_type
ligger på toppnivå så att en GTM-trigger som purchase + donation_type
finns
kan särskilja Repejos köp från en befintlig butiks-/shopcheckout som också
använder GA4-standardeventet purchase.
För separata Google Ads-konverteringar (t.ex. månadsgivare vs engångsgåvor):
dela på värdet enligt tabellen nedan.
donation_type,
item_name
och item_category
beror på checkout-typen.
donation_type
och item_category
har alltid samma värde:
"recurring"
/ "Monthly donation"
"onetime"
/ "Donation"
"gift_card"
/ "Gift card"
"membership"
/ "Membership"
"p2p"
/ "P2P donation"
"product"
/ "Product"
"lottery"
/ "Lottery ticket"
user_data
är avstängt som standard
och måste aktiveras per integration
(include_user_data).
Även påslaget skickas det bara med marknadsföringssamtycke, och varje
nyckel tas bara med när motsvarande värde finns. Rå e-post/telefon
ingår tillsammans med SHA-256 (telefon i två format).
Skickas enbart om Measurement ID
och API Secret
är ifyllda. Repejo POST:ar nedanstående body till
https://www.google-analytics.com/mp/collect
(eller er sGTM-endpoint) med
measurement_id
och api_secret
som query-parametrar. Samma
transaction_id
som klient-pushen, så GA4 dedupliserar. Nil-värden i
params
tas bort innan sändning.
{
"client_id": "111.222", // GA4 _ga-cookie, annars härlett från e-post
"non_personalized_ads": false,
"user_id": "sha256(e-post)", // när e-post finns
"user_data": { // endast om include_user_data=true
"sha256_email_address": ["…"],
"sha256_phone_number": ["…"] // telefon i +46-format, hashad
},
"events": [{
"name": "purchase",
"params": {
"transaction_id": "rec_…",
"value": 205.0,
"currency": "SEK",
"items": [{ item_name: "Monthly donation", item_category: "recurring",
price: 205.0, quantity: 1 }],
"donation_type": "recurring", // se tabell — samma värde som dataLayer-pushen ovan
"payment_method": "swish", // vald betalmetod, valfri
"repejo_reference": "…", // kampanj-/checkout-referens, valfri
"session_id": "…", // GA4 _ga_<MID>-cookie, valfri
"page_location": "https://…", // URL där köpet skedde, valfri
"gclid": "…", // valfri
"fbclid": "…", // valfri
"engagement_time_msec": 100
}
}]
}
?gtm_debug=1
i checkout-URL:en. Varje push loggas i DevTools-konsolen med prefixet [Repejo GTM].