Pixelsporing på efterkøbssiden
Hvis din butik har installeret en app, der føjer en efterkøbsside til din butiks betalingsproces, kan det medføre, at enhver tilpasset pixelsporing, som du bruger i din butik, ikke registrerer specifikke sporingshændelser. Tilpassede sporingspixels, der føjes til feltet Yderligere scripts for din butik, sporer kun hændelser på ordrestatussiden (som er efter efterkøbssiden i betalingsprocessen). Hvis en kunde forlader din butik på efterkøbssiden, spores der ikke nogen hændelser på ordrestatussiden.
Du kan sikre dig, at du registrerer konverteringshændelser korrekt ved at tilføje et script, der sporer hændelser på efterkøbssiden. Dette script kan også spore yderligere køb, der foretages på samme efterkøbsside som f.eks. mersalg. Når du har tilføjet et script på efterkøbssiden, skal du justere scriptet på ordrestatussiden, så det ignorerer hændelser, der allerede er registreret af scriptet på efterkøbssiden.
Du skal kun ændre din butiks metode til sporing af hændelser, hvis du bruger en tilpasset sporingspixel. Hvis du f.eks. har opsat Google Analytics via Webshop > Præferencer, registreres hændelser på din efterkøbsside allerede korrekt.
På denne side
Overvejelser
Yderligere scripts på efterkøbssiden minder om yderligere scripts på ordrestatussiden, men der er nogle vigtige forskelle:
- Scriptet føjes til efterkøbssiden, ikke ordrestatussiden.
- Feltet tillader kun JavaScript. Liquid-kode accepteres ikke.
- Det eneste tilladte HTML-tag er
<script>
. - Scriptet køres i en sandkasse og er ikke inkluderet på hovedsiden.
- Du kan kun tilføje et script på efterkøbssiden, hvis din butik har installeret en app, der tilføjer en efterkøbsside i betalingsprocessen.
Scriptet køres i en sandkasse for at sikre, at det er sikkert og bruges til dets beregnede formål.
Shopify Support kan ikke hjælpe dig med scripts på efterkøbssiden. Hvis du har brug for hjælp, kan du skrive et opslag i Shopifys fællesskab eller ansætte en Shopify-ekspert.
Kompatibilitet med scripts på ordrestatussiden
Du kan sikre dig, at dine pixels sporer alle konverteringshændelser korrekt ved at opsætte sporingsscripts på både efterkøbssiden og ordrestatussiden. Hvis du vil undgå, at den samme konverteringshændelse tælles to gange, kan du bruge Liquid-variablen post_purchase_page_accessed
i de scripts, der kører på ordrestatussiden.
Hvis en kunde lander på efterkøbssiden og derefter går til ordrestatussiden, vil variablen post_purchase_page_accessed
returnere true
. Hvis en kunde ikke lander på efterkøbssiden, vil variablen returnere false
.
Du kan f.eks. bruge følgende format til dine scripts på ordrestatussiden:
{% if first_time_accessed == true and post_purchase_page_accessed == false %}
<script>
// insert your tracking script
</script>
{% endif %}
Tilgængelige API'er
Du kan bruge global-variabler i JavaScript til at give sporingsscripts adgang til de nødvendige data. De tilgængelige data er tilgængelige under window.Shopify
.
Sporing af køb, der foretages på efterkøbssiden
Hvis du vil spore yderligere køb, der foretages på efterkøbssiden, kan du tilmelde dig Shopify.on
-hændelsen.
Når du har tilmeldt dig, vil der opstå følgende handlinger, når et efterkøbs-ændringssæt anvendes korrekt:
- Der foretages et kald til din handler med to argumenter af typen
Ordre
:order
ogoutdated order
. - Global-varianterne under
window.Shopify
er opdaterede, så dine scripts kan bruge de opdaterede data.
Handlers, der er tilmeldt denne hændelse, kan have helt ned til 500 ms til udførelse. Sørg for, at du indlæser eventuelle nødvendige afhængigheder i god tid.
Tilføj scriptet på efterkøbssiden
- Gå til Indstillinger > Betaling i din Shopify-administrator.
- Angiv dit script i feltet Yderligere scripts for efterkøb.
- Klik på Gem.
Eksempel på script
Du kan bruge følgende grundlæggende scriptskabelon som hjælp, når du vil bygge dit eget script til efterkøbssiden. Dette eksempelscript bruger Google Analytics til at spore den første konvertering og forklarer, hvordan du kan spore yderligere køb. Dette eksempel er meget simpelt og dit endelige script vil sikkert se anderledes ud.
Eksempler på scriptfiler
Eksempel på script til ordrestatussiden:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FYNQ742HTX"></script>
<script>
(function() {
// make sure the initial conversion isn't tracked twice
{% if first_time_accessed == false or post_purchase_page_accessed == true %}
return;
{% endif %}
// set up google analytics
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-FYNQ742HTX');
// track initial conversion
var order = window.Shopify.order;
gtag('event', 'purchase', {
affiliation: 'My Shopify Store',
transaction_id: Number(order.id).toString(),
value: order.totalPrice,
currency: order.currency,
items: order.lineItems.map((item) => ({
id: Number(item.id).toString(),
name: item.title,
category: item.product.type,
price: item.price,
quantity: item.quantity,
variant: Number(item.variant.sku).toString(),
})),
});
})();
</script>
Eksempel på script til efterkøbssiden:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FYNQ742HTX"></script>
<script>
(function() {
// set up google analytics
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-FYNQ742HTX');
// make sure the initial conversion isn't tracked twice
if (!Shopify.wasPostPurchasePageSeen) {
var order = window.Shopify.order;
// track initial conversion
gtag('event', 'purchase', {
affiliation: 'My Shopify Store',
transaction_id: Number(order.id).toString(),
value: order.totalPrice,
currency: order.currency,
items: order.lineItems.map(function(item) {
return {
id: Number(item.id).toString(),
name: item.title,
category: item.product.type,
price: item.price,
quantity: item.quantity,
variant: Number(item.variant.sku).toString(),
};
}),
});
}
// set up additional conversion tracking
Shopify.on('CheckoutAmended', function(newOrder, previousOrder) {
// identify which items were recently added, if any
var oldItems = previousOrder.lineItems.map(function (line) { return line.id; });
var addedItems = newOrder.lineItems.filter(
function (line) { return oldItems.indexOf(line.id) < 0; }
);
// no new items were added, so we skip conversion tracking
if (addedItems.length === 0) {
return;
}
// track additional purchase
gtag('event', 'purchase', {
affiliation: 'My Shopify Store',
transaction_id: Number(order.id).toString(),
value: order.totalPrice,
currency: order.currency,
items: addedItems.map(function (item) {
return {
id: Number(item.id).toString(),
name: item.title,
category: item.product.type,
price: item.price,
quantity: item.quantity,
variant: Number(item.variant.sku).toString(),
};
}),
});
});
})();
</script>
Referencer
Nedenstående tabel indeholde typedefinitionerne for de attributter, der er eksponeret for yderligere scripts for efterkøb via window.Shopify
:
Felt | Definition |
---|---|
window.Shopify | |
shop | Oplysningerne for den butik, hvor ordren blev afgivet. |
order | Oplysningerne om ordren. |
pageUrl | Webadressen for den aktuelle side. |
wasPostPurchasePageSeen | Hvorvidt kunden har set efterkøbssiden under betalingen. Den vil være false , når den vises for første gang, og true i andre tilfælde, f.eks. hvis siden genindlæses. |
on(event: string, handler: function): void | Abonnerer på en hændelse . I øjeblikket er det kun hændelsen CheckoutAmended , der understøttes. |
off(event: string, handler: function): void | Afmelder handler fra den angivne hændelse . I øjeblikket er det kun hændelsen CheckoutAmended , der understøttes. |
Shop | |
id | Butikkens id. |
currency | Butikkens valuta i formatet ISO 4217. For eksempel USD. Få mere at vide under shop.currency. |
Order | |
id | Ordrens interne identifikator. |
number | Ordrenavnets heltalsrepræsentation. For eksempel 1025. |
checkoutToken | Betalingsprocessens interne identifikator. |
customer | Den kunde, der er knyttet til ordren. |
lineItem | Ordrens varelinjer. |
subtotalPrice | Subtotalen for alle varer i ordren, når varelinjerabatter og rabatter på indkøbskurven er fratrukket. Subtotalen omfatter ikke skatter (medmindre skatter er inkluderet i priserne), leveringsomkostninger eller drikkepenge. |
totalPrice | Ordrens samlede pris. |
currency | ISO 4217-koden for ordrens valuta. |
discounts | Summen af de rabatter, der er anvendt på ordren. |
Customer | |
id | Kundens id. |
Kundens mailadresse. | |
acceptsMarketing | Om kunden accepterede markedsføring. Vil være true , hvis kunden accepterer markedsføring, og ellers false . |
hasAccount | Om kundens mailadresse er knyttet til en kundekonto. Vil være true , hvis mailadressen er angivet på en kundekonto, og ellers false . Få mere at vide under customer.has_account. |
firstName | Kundens fornavn. |
lastName | Kundens efternavn. |
ordersCount | Det samlede antal ordrer, som kunden har afgivet. |
totalSpent | Det samlede beløb, kunden har afgivet ordrer for. |
LineItem | |
finalLinePrice | Den samlede pris for alle varerne i varelinjen. Dette svarer til line_item.final_price ganget med line_item.quantity . |
finalPrice | Prisen for varelinjen, inklusive alle rabatbeløb på linjeniveau. |
lineLevelTotalDiscount | Det samlede beløb af alle de rabatter, der er anvendt på den specifikke varelinje. Dette omfatter ikke rabatter, der er føjet til indkøbskurven. |
optionsWithValues | En matrix af udvalgte værdier fra varens produktmuligheder. Få mere at vide under line_item.options_with_values. |
originalLinePrice | Den samlede pris for det antal varer, der er inkluderet i linjen, før rabatterne blev anvendt. Dette svarer til line_item.original_price ganget med line_item.quantity . |
originalPrice | Varelinjens oprindelige pris, før rabatterne blev anvendt. |
price | Varelinjens stykpris. Denne pris afspejler eventuelle rabatter, der blev er anvendt på varelinjen. Denne funktion er kun tilgængelig for butikker i Tyskland og Frankrig. |
product | Produktet i varelinjen. |
properties | En matrix af kundeoplysninger for en vare, der er blevet lagt i indkøbskurven. Få mere at vide under line_item.properties. |
quantity | Antallet af varelinjen. |
title | Titlen på varelinjen. Få mere at vide under line_item.title. |
variant | Varianten i varelinjen. |
Product | |
id | Produktets id. |
type | Produktets type. |
ProductVariant | |
id | Variantens id. |
sku | SKU'en for varianten. |
CartDiscount | |
id | Rabattildelingens interne identifikator. |
code | Rabatkoden, hvis rabatten har en kode. |
type | Rabattypen. De mulige værdier er: automatic , discount_code , manual og script . |
amount | Det samlede beløb, som prisen for ordren er nedsat med rabatten. |