Artikelen over: Server Side

[Shopify] Purchase webhooks instellen

Let op: Om de webhooks goed werkend te krijgen is het belangrijk dat je de Google Tag (GA4 configuratietag) voorziet van extra parameters genaamd de marketing.user_id, marketing.session_count, en markeing.session_id

Wil je gebruik maken van Templates die al volledig ingericht zijn voor Shopify? Ga dan naar dit artikel.

Volg onderstaande stappen om de Google Tag in de webcontainer aan te passen:



Voeg DataLayer variabelen toe van het "trytagging_user_data" event als variabelen in je Google Tag Manager web container.

marketing.user_id
Marketing User ID

marketing.session_count
Marketing Session Count

marketing.session_id
Marketing Session Count

Zorg ervoor dat de Google Tag wordt afgevuurd via de "trytagging_user_data" event, anders is het niet mogelijk om de user data op te halen.

Trytagging_userdata trigger

De Google Tag zal ten alle tijden afgevuurd moeten worden voor alle standaard eCommerce events. Mocht dat niet lukken, kies er dan voor om een Trigger groep te maken.

Voeg de 3 parameters toe die we hebben aangemaakt in stap 1.



ConfiguratieparameterVariableVariabele Configuratie
x-fb-ck-fbcx-fb-ck-fbc1st-Party Cookie
x-fb-ck-fbpx-fb-ck-fbp1st-Party Cookie
first_party_collectiontrue-
send_page_viewfalse-
user_dataUser-Provided Datatemplate
server_container_url@ Server URLConstant
clientIdmarketing.user_idData Layer Variable
sessionIdmarketing.session_idData Layer Variable
session_countmarketing.session_countData Layer Variable


Volg onderstaande stappen om de servercontainer aan te passen:



Voeg 3 event data variabelen toe

session_count


sessionId


ClientId


Maak een Transformation aan met het type "Augment event"

Augment vullen met clientId, sessionId, session_count

client_id = {{ clientId }}
ga_session_id = {{ sessionId }}
ga_session_number = {{ session_count }}

Zorg er nu voor dat deze Transformations worden toegevoegd aan de GA4 Tag van de Servercontainer.

Attach tag


Zorg ervoor dat het "purchase" event wordt ge-exclude van de GA4 trigger. Dit doen we omdat de Purchase events voortaan via de Webhooks worden gestuurd, anders krijg je dubbele data.
Exclude purchase from GA4 client


Voor het maken van de Dataclient maken we gebruik van de Stape Dataclient. Je kunt deze hier downloaden: https://github.com/stape-io/data-client


Ga naar templates in sGTM -> Klik op new -> Import Data Client -> en klik op "Save"



Maak Dataclient aan door naar Clients te gaan -> Klik op nieuw -> Selecteer type Data Client Accepted Path Settings -> Add Path -> Voeg de endpoint toe zoals "order_created"



Voeg de volgende Event Data variabelen toe voor de Purchase webhooks data:

Download de hele template voor de variabelen van stap 12 en van de Purchase tag en trigger van stap 13 en 14 hier.

Event Data NaamVariableVariabele TypeTemplatelink
total_pricetotal_priceEvent Data-
presentment_currencypresentment_currencyEvent Data-
namenameEvent Data-
Array Map Ga4download en importeer template van stap 5Array MapArray map GA4
total_taxtotal_taxEvent Data-
discount_codesdiscount_codes.0.codeEvent Data-
page_locationhttps://www.jouwurl.com/checkouts/cn/{{source_identifier}}/thank_youConstant-
client_details.user_agentclient_details.user_agentGebeurtenisgegevens
client_details.browser_ipclient_details.browser_ipGebeurtenisgegevens
user_idadvanced lookup table zie importExtract from JSONuser_id template
num session_idSession id variableString to numbernum session_id template
page_titleExacte titel van de paginaConstant (bij 1 taal) of Tabel met reguliere expressiesTemplate voor tabel met reguliere expressies
timestamptimestampGebeurtenisgegevens-
page_hostnamewww.jouwdomeinnaam.nlConstantZorg dat je checkt of dit met of zonder www is
ga_session_numberExtra check om bug te voorkomenNumber & String OperationsDownload template
engagement_time_msec1564Geen variabelen nodig-


Array Map GA4
Array Map GA4

Maak een advanced Lookup table aan met alle GA parameters.

Advanced Lookup table.

We hebben een aparte template gemaakt waarin je deze "Advanced Lookup table" direct kunt importeren. Je kunt deze hier downloaden.

Maak een de Purchase Tag aan en zorg dat je de volgende parameters toevoegt als purchase tag.

value = {{ total_price }}
currency = {{ presentment.currency }}
transaction_id = {{ name }}
items = {{Array Map GA4}}
tax = {{ total_tax }}
coupon = {{ discount_codes }}
page_location = {{ page_location }}
user_agent = {{ client_details.user_agent }}
ip_override = {{ client_details.browser_ip }}
client_id = {{ user_id }}
ga_session_id = {{num session_id}}
page_title = {{ page_title }}
event_time = {{ timestamp }}
page_hostname= {{ page_hostname }}
ga_session_number = {{session count}}
engagement_time_msec = 1564


Let op! Zorg ervoor dat je de variabelen checkt of deze gevuld worden in preview modus en check ook of het de juiste parameters zijn. Bijvoorbeeld: als page_location een andere URL heeft dan in werkelijkheid dan zul je deze variabelen moeten aanpassen.



Maak vervolgens een Trigger aan die wordt afgevuurd op basis van:
Client Name equals Data Client
Request Path contaings /order_created
source_name equals web



source_name is een Event Data variabele die je aan kan maken om de aankopen van buitenaf (fysieke winkel of een marketplace als bol of amazon) tegen te houden.

source_name Variabele

Ga vervolgens een test doen door live orders te testen of door zelf een order te plaatsen. Via het volgende artikel kun je zien hoe je deze test kan doen:
Webhooks testen via de sGTM

Bijgewerkt op: 30/08/2024

Was dit artikel nuttig?

Deel uw feedback

Annuleer

Dankuwel!