Pikselsporing på etterkjøpssiden
Hvis butikken har installert en app som legger til en etterkjøpsside i butikkens kasse, kan det hende at egendefinert pikselsporing som brukes i butikken ikke registrerer visse sporingshendelser. Egendefinerte sporingspiksler som legges til butikkens Ytterligere skript-boks sporer bare hendelser på statussiden, som kommer etter etterkjøpssiden i kassen. Hvis en kunde forlater butikken på etterkjøpssiden, blir det ikke sporet noen hendelser på statussiden.
For å sikre at du registrerer konverteringshendelser på riktig måte, kan du legge til et skript som sporer hendelser på etterkjøpssiden. Dette skriptet kan også spore ytterligere kjøp som gjøres fra etterkjøpssiden, som mersalg. Når du har lagt til et skript på etterkjøpssiden, må du justere skriptet på statussiden slik at det ignorerer hendelser som allerede er registrert av skriptet på etterkjøpssiden.
Du må bare endre hvordan butikken sporer hendelser hvis du bruker en egendefinert sporingspiksel. Hvis du for eksempel konfigurerer Google Analytics gjennom Nettbutikk > Preferanser, registrerer det allerede hendelser på etterkjøpssiden.
På denne siden
Hensyn
Tilleggsskriptet på etterkjøpssiden ligner på ytterligere skript på statussiden, men har noen viktige forskjeller:
- Skriptet legges til på etterkjøpssiden, ikke på statussiden.
- Feltet tillater bare JavaScript. Liquid-kode godtas ikke.
- Den eneste HTML-taggen som tillates er
<script>
. - Skriptet kjører i en sandkasse, og er ikke inkludert på hovedsiden.
- Du kan bare legge til et skript på etterkjøpssiden hvis butikken har installert en app som legger til en etterkjøpsside i kassen.
Ved å kjøre skriptet i en sandkasse sikres det at skriptet er sikkert, og at det brukes for det tiltenkte formålet.
Shopify-brukerstøtte kan ikke hjelpe med skript på etterkjøpssiden. Hvis du trenger hjelp, kan du publisere et innlegg i Shopify-fellesskapet eller leie inn en Shopify-ekspert.
Kompatibilitet med skript på statussiden
For å sikre at pikslene sporer alle konverteringshendelser på riktig måte, må du konfigurere sporingsskript på både etterkjøpssiden og statussiden. For å unngå at konverteringshendelser telles to ganger, kan du bruke Liquid-variabelen post_purchase_page_accessed
i skript som kjører på statussiden.
Hvis en kunde lander på etterkjøpssiden og deretter går til statussiden, returnerer variabelen post_purchase_page_accessed
true
. Hvis en kunde ikke kommer til etterkjøpssiden, returnerer variabelen false
.
Du kan for eksempel bruke følgende format for skriptene dine på statussiden:
{% if first_time_accessed == true and post_purchase_page_accessed == false %}
<script>
// insert your tracking script
</script>
{% endif %}
Tilgjengelige API-er
Du kan bruke JavaScript-globaler for å gi sporingsskript tilgang til dataene de trenger. Tilgjengelige data er tilgjengelig under window.Shopify
.
Spore kjøp gjort på etterkjøpssiden
For å spore ytterligere kjøp som gjøres gjennom etterkjøpssiden, kan du abonnere på hendelsen Shopify.on
.
Etter at du abonnerer skjer følgende hendelser når det legges til et endringssett for etterkjøp:
- Behandleren kalles med to argumenter av
Bestilling
-type:order
ogoutdated order
. - Globalene under
window.Shopify
oppdateres slik at skriptene kan bruke de oppdaterte dataene.
Behandlere som abonnerer på denne hendelsen kan ha så lite som 500 ms på å kjøre. Sørg for å laste inn nødvendige avhengigheter på forhånd.
Legg til skriptet på etterkjøpssiden
- Fra Shopify-administrator går du til Innstillinger > Kasse.
- Angi skriptet i feltet Ytterligere skript for etterkjøp.
- Klikk på Lagre.
Eksempelskript
Du kan bruke følgende grunnleggende skriptmal som en hjelp til å bygge egne skript for etterkjøpssiden. Dette eksempelskriptet bruker Google Analytics til å spore den innledende konverteringen, og forklarer hvordan du sporer ytterligere kjøp. Dette eksempelet er svært enkelt, og det endelige skriptet vil sannsynligvis avvike fra dette.
Eksempel på skriptfiler
Eksempelskript for statussiden:
<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>
Eksempelskript for etterkjøpssiden:
<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>
Referanser
Den følgende tabellen inneholder typedefinisjoner for attributtene som eksponeres for ytterligere skript for etterkjøp gjennom window.Shopify
:
Felt | Definisjon |
---|---|
window.Shopify | |
shop | Detaljene for butikken der bestillingen ble lagt inn. |
order | Detaljene for bestillingen. |
pageUrl | URL-adressen til den gjeldende siden. |
wasPostPurchasePageSeen | Hvorvidt kunden har sett etterkjøpssiden i denne betalingsprosessen. Den vil være usann hvis siden vises for første gang, og ellers sann , som hvis siden lastes inn på nytt. |
on(event: string, handler: function): void | Abonnerer på en hendelse . For øyeblikket støttes bare CheckoutAmended -hendelsen. |
off(event: string, handler: function): void | Avslutter abonnementet på handler fra oppgitt event . For øyeblikket støttes bare CheckoutAmended -hendelsen. |
Shop | |
id | Butikkens ID. |
currency | Butikkens valuta i ISO 4217-format. For eksempel USD. For mer informasjon kan du se shop.currency. |
Order | |
id | Bestillingens interne identifikator. |
number | Heltallsrepresentasjonen av bestillingsnavnet. For eksempel 1025. |
checkoutToken | Kassens interne identifikator. |
customer | Kunden som er tilknyttet bestillingen. |
lineItem | Varelinjene i bestillingen. |
subtotalPrice | Delsumsprisen for alle varene i bestillingen etter at rabatter for både varelinjer og handlekurven er trukket fra. Delsummen inkluderer ikke avgifter (med mindre avgifter er inkludert i prisene), fraktkostnader eller tips. |
totalPrice | Totalprisen for bestillingen. |
currency | ISO 4217-koden for bestillingens valuta. |
discounts | Summen av rabattbeløpene som er lagt til i bestillingen. |
Customer | |
id | Kundens ID. |
Kundens e-postadresse. | |
acceptsMarketing | Hvorvidt kunden har godtatt markedsføring. Den er sann hvis kunden godtar markedsføring, og usann hvis ikke. |
hasAccount | Hvorvidt kundens e-postadresse er knyttet til en kundekonto. Den vil være sann hvis e-posten er oppført i en kundekonto, og usann hvis ikke. For mer informasjon kan du se customer.has_account. |
firstName | Fornavnet til kunden. |
lastName | Etternavnet til kunden. |
ordersCount | Det totale antallet bestillinger kunden har lagt inn. |
totalSpent | Det totale beløpet kunden har brukt på alle bestillinger. |
LineItem | |
finalLinePrice | Den kombinerte prisen for alle varer i varelinjen. Dette tilsvarer line_item.final_price multiplisert med line_item.quantity . |
finalPrice | Prisen for varelinjen, inkludert alle rabattbeløp på varelinjenivå. |
lineLevelTotalDiscount | Totalbeløpet for alle rabatter som er lagt til på den bestemte varelinjen. Dette inkluderer ikke rabatter som er lagt til i handlekurven. |
optionsWithValues | En matrise med valgte verdier fra varens produktalternativer. For mer informasjon kan du se line_item.options_with_values. |
originalLinePrice | Den kombinerte prisen for antall varer inkludert i linjen, før rabatter er lagt til. Dette tilsvarer line_item.original_price multiplisert med line_item.quantity . |
originalPrice | Den opprinnelige prisen på varelinjen før rabatter er lagt til. |
price | Enhetsprisen for varelinjen. Prisen reflekterer eventuelle rabatter som er lagt til varelinjen. Gjelder bare for butikker lokalisert i Tyskland eller Frankrike. |
product | Produktet tilhørende varelinjen. |
properties | En matrise med egendefinert informasjon for en vare som er lagt til i handlekurven. For mer informasjon kan du se line_item.properties. |
quantity | Antallet av varelinjen. |
title | Tittelen på varelinjen. For mer informasjon kan du se line_item.title. |
variant | Varelinjens variant. |
Product | |
id | Produktets ID. |
type | Produkttypen. |
ProductVariant | |
id | Variantens ID. |
sku | Variantens SKU |
CartDiscount | |
id | Den interne identifikatoren for rabattapplikasjonen. |
code | Koden til rabatten, hvis den finnes. |
type | Rabattypen. Mulige verdier er: automatic , discount_code , manual og script . |
amount | Totalbeløpet som prisen for en bestilling reduseres med av rabatten. |