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.

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 og outdated 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

  1. Gå til Indstillinger > Betaling i din Shopify-administrator.
  2. Angiv dit script i feltet Yderligere scripts for efterkøb.
  3. 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.
email 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.

Er du klar til at begynde at sælge med Shopify?

Prøv det gratis