Pixelspårning på sidan för efterköp
Om din butik har installerat en app som lägger till en sida för efterköp i din butiks kassa kanske eventuell anpassad pixelspårning som du använder i din butik inte hämtar vissa spårningshändelser. Anpassade spårningspixlar som läggs till i din butiks ruta för Ytterligare skript spårar endast händelser på orderstatussidan, som kommer efter sidan för efterköp i kassan. Om en kund lämnar din butik på sidan för efterköp spåras inga händelser på orderstatussidan.
För att säkerställa att du hämtar konverteringshändelser korrekt kan du lägga till ett skript som spårar händelser på sidan för efterköp. Detta skript kan även spåra ytterligare inköp som görs från sidan för efterköp, till exempel merförsäljning. När du har lagt till ett skript för sidan för efterköp måste du justera ditt skript för orderstatussidan för att ignorera händelser som redan hämtats av skriptet för sidan för efterköp.
Du behöver bara ändra hur din butik spårar händelser om du använder en anpassad spårningspixel. Om du till exempel ställer in Google Analytics via Webbutik > Inställningar hämtar det redan händelser korrekt på din sida för efterköp.
På den här sidan
Överväganden
Ytterligare skript på sidan för efterköp liknar ytterligare skript på orderstatussidan, men har några viktiga skillnader:
- Skriptet läggs till på sidan för efterköp, inte på orderstatussidan.
- Fältet tillåter endast JavaScript. Liquid-kod accepteras inte.
- Den enda HTML-taggen som tillåts är
<script>
. - Skriptet körs i en sandbox och ingår inte på huvudsidan.
- Du kan endast lägga till ett skript för sidan för efterköp om din butik har installerat en app som lägger till en sida för efterköp i din kassa.
Om du kör skriptet i en sandbox säkerställer du att skriptet är säkert och används för sitt avsedda ändamål.
Shopify-supporten kan inte hjälpa till med skript för sidor för efterköp. Om du behöver hjälp kan du lägga till ett inlägg i Shopifys community eller anlita en Shopify-expert.
Kompatibilitet med skript på orderstatussidan
Konfigurera spårningsskript på både sidan för efterköp och orderstatussidan för att säkerställa att dina pixlar spårar alla konverteringshändelser korrekt. Du kan använda Liquid-variabeln post_purchase_page_accessed
i skript som körs på orderstatussidan för att undvika att konverteringshändelser räknas två gånger.
Om en kund landar på sidan för efterköp och sedan navigerar till orderstatussidan returneras variabeln post_purchase_page_accessed
som sann
. Variabeln returneras som falsk
om en kund inte kommer fram till sidan för efterköp.
Du kan till exempel använda följande format för dina skript på orderstatussidan:
{% if first_time_accessed == true and post_purchase_page_accessed == false %}
<script>
// insert your tracking script
</script>
{% endif %}
Tillgängliga API:er
Du kan använda globala JavaScript för att ge spårningsskript åtkomst till de uppgifter som de behöver. Tillgängliga uppgifter finns tillgängliga under window.Shopify
.
Spåra inköp som gjorts på sidan för efterköp
För att spåra ytterligare inköp som görs via sidan för efterköp kan du prenumerera på händelsen Shopify.on
.
När du prenumererar sker följande åtgärder när en ändring för efterköp har tillämpats:
- Din hanterare anropas med två
Order
-typargument:order
ochoutdated order
. - De globala filerna under
window.Shopify
uppdateras så att skripten kan använda de uppdaterade uppgifterna.
Hanterare som prenumererar på denna händelse kan ha så lite som 500 ms för utförandet. Se till att du läser in alla beroenden som du behöver i tid.
Lägg till skript för sidan för efterköp
- Från din Shopify-administratör går du till inställningar > kassa.
- Ange ditt skript i fältet Ytterligare skript för efterköp.
- Klicka på Spara.
Skriptexempel
Du kan använda följande grundläggande skriptmall för att få hjälp att bygga ditt eget skript för sidan för efterköp. Det här skriptexemplet använder Google Analytics för att spåra den ursprungliga konverteringen och förklarar hur du spårar ytterligare inköp. Det här exemplet är väldigt enkelt och ditt slutgiltiga skript kommer troligtvis skilja sig från det.
Exempel på skriptfiler
Exempelskript för orderstatussidan:
<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>
Exempelskript för sidan för efterköp:
<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>
Referenser
Följande tabell innehåller typdefinitioner för de attribut som exponeras för ytterligare skript för efterköp via window.Shopify
:
Fält | Definition |
---|---|
window.Shopify | |
shop | uppgifter om butiken där ordern lades. |
order | orderuppgifterna. |
pageUrl | URL:en för den aktuella sidan. |
wasPostPurchasePageSeen | Huruvida kunden tittade på sidan efter köp i kassan. Det är falskt vid den första återgivningen och sant i annat fall, till exempel om sidan laddas om. |
on(event: string, handler: function): void | Prenumererar på en händelse . För närvarande stöds endast händelsen CheckoutAmended . |
off(event: string, handler: function): void | Avregistrerar hanterare från given händelse . För närvarande stöds endast händelsen CheckoutAmended . |
Shop | |
id | Butikens ID. |
currency | Butikens valuta i ISO 4217-format. Till exempel USD. Se shop.currency för mer information. |
Order | |
id | Orderns interna identifierare. |
number | Heltalsrepresentationen av ordernamnet. Till exempel 1025. |
checkoutToken | Kassans interna identifierare. |
customer | Den kund som är kopplad till ordern. |
lineItem | Posterna för ordern. |
subtotalPrice | Delsumman för alla artiklar i ordern efter att både post- och varukorgsrabatter har tillämpats. Delsumman inkluderar inte skatter (om inte skatt ingår i priserna), leveranskostnader eller dricks. |
totalPrice | Orderns totalsumma. |
currency | ISO 4217-koden för orderns valuta. |
discounts | Summan av rabatterna som tillämpats på ordern. |
Customer | |
id | Kundens ID. |
Kundens e-postadress. | |
acceptsMarketing | Huruvida kunden har accepterat marknadsföring. Detta kommer att vara sant om kunden accepterar marknadsföring och falskt om kunden inte accepterar. |
hasAccount | Huruvida kundens e-postadress är kopplad till ett kundkonto. Detta kommer att vara sant om e-postadressen är listad på ett kundkonto och falskt om den inte är listad. Se customer.has_account för mer information. |
firstName | Kundens förnamn. |
lastName | Kundens efternamn. |
ordersCount | Det totala antalet ordrar som kunden har lagt. |
totalSpent | Det totala belopp som kunden har spenderat på alla ordrar. |
LineItem | |
finalLinePrice | Det kombinerade priset för alla artiklar i posten. Detta är lika med line_item.final_price multiplicerat med line_item.quantity . |
finalPrice | Priset för radartikeln, inklusive alla rabattbelopp på radnivå. |
lineLevelTotalDiscount | Det totala beloppet för alla rabatter som tillämpats specifikt på posten. Detta inkluderar inte rabatter som läggs till i varukorgen. |
optionsWithValues | En rad valda värden från artikelns produktalternativ. Se line_item.options_with_values för mer information. |
originalLinePrice | Det sammanlagda priset för antalet artiklar som ingår i raden, innan rabatter tillämpats. Detta är lika med line_item.original_price multiplicerat med line_item.quantity . |
originalPrice | Det ursprungliga priset för posten innan rabatter tillämpats. |
price | Enhetspriset för posten. Priset återspeglar alla rabatter som tillämpas på posten. Endast tillgängligt för butiker i Tyskland eller Frankrike. |
product | Postens produkt. |
properties | En rad anpassad information för en artikel som har lagts till i varukorgen. Se line_item.properties för mer information. |
quantity | Postens kvantitet. |
title | Postens namn. Se line_item.title för mer information. |
variant | Postens variant. |
Product | |
id | Produktens ID. |
type | Typ av produkt. |
ProductVariant | |
id | Variantens ID. |
sku | Variantens SKU. |
CartDiscount | |
id | Rabattillämpningens interna identifierare. |
code | Rabattens kod, om den har en. |
type | Typ av rabatt. Möjliga värden är: automatic , discount_code , manual och script . |
amount | Det totala beloppet som priset för ordern minskas med av rabatten. |