> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference for AftersellQL (AQL)

> Reference for forespørgselssproget AftersellQL: tilgængelige metrics og dimensioner, syntaks for AQL-klausuler med eksempler samt tidszoneregler for Exploreren.

Hver forespørgsel, du bygger i [Exploreren](/da/aftersell/reports_explorer), er en **AftersellQL (AQL)**-sætning. Det meste af tiden bygger du forespørgsler visuelt og skriver aldrig AQL i hånden; denne side er referencen for de metrics og dimensioner, du kan vælge, AQL-tekstformen og tidszonereglerne.

<div id="available-metrics">
  ## Tilgængelige metrics
</div>

Dette er de metrics, du kan vælge, grupperet på samme måde som i metric-vælgeren.

<div id="revenue-profit">
  ### Omsætning og profit
</div>

| Metric | Beskrivelse |
| - | - |
| **Revenue** | Upsell-omsætning i din butiks egen valuta. |
| **Revenue (USD)** | Upsell-omsætning normaliseret til USD til sammenligninger på tværs af valutaer. |
| **Revenue Per Visit** | Upsell-omsætning pr. visningssession. Kan ikke opdeles efter produkt, placering, funnel eller enhed. |
| **Avg. Conversion Value** | Omsætning pr. accepteret tilbud. Kaldes også Average Upsell Value. |
| **Upsell Revenue Per Order** | Upsell-omsætning (USD) divideret med det samlede antal ordrer. Kun på butiksniveau. |
| **Product Profit** | Omsætning minus vareomkostninger (COGS) for produkter solgt via upsell. Afhænger af COGS konfigureret af forhandleren, så betragt det som et estimat: produkter uden registreret kostpris rapporterer omsætning som profit, og kostprisdækningen varierer fra butik til butik. Kun på produktniveau; kan ikke opdeles efter funnel, placering eller enhed. |

<div id="conversions">
  ### Konverteringer
</div>

| Metric | Beskrivelse |
| - | - |
| **Conversions** | Antallet af hændelser med accepterede tilbud. Ét accepteret tilbud er én konvertering, så en session, der accepterer to tilbud, tæller to gange. |
| **Accept Rate** | Sessionsbaseret: andelen af sessioner, der så et tilbud og accepterede mindst ét. Beregnes uafhængigt af Conversions ud fra et andet rollup, så det er ikke Conversions ÷ Impressions. |
| **Units Sold** | Samlet antal enheder solgt via upsell-tilbud. |
| **Decline Rate** | Procentdel af post-purchase-tilbud, der eksplicit blev afvist. Kun post-purchase. |

<div id="engagement">
  ### Engagement
</div>

| Metric | Beskrivelse |
| - | - |
| **Impressions** | Unikke sessioner, der så et tilbud. |
| **Show Rate** | Procentdel af beslutninger, der resulterede i en visning. |

<div id="store-performance">
  ### Butiksperformance
</div>

| Metric | Beskrivelse |
| - | - |
| **Total Store Revenue** | Samlet omsætning fra betalte Shopify-ordrer. Kun på butiksniveau; kan ikke opdeles efter surface, funnel, placering eller enhed. |
| **Orders** | Samlet antal betalte Shopify-ordrer. Kun på butiksniveau. |
| **Average Total Order Value** | Butiksomsætning divideret med ordrer. Gennemsnitlig ordreværdi på butiksniveau. |

<div id="rokt-network">
  ### Rokt-netværk
</div>

| Metric | Beskrivelse |
| - | - |
| **Rokt Revenue** | Rokt-netværksomsætning tilskrevet din butik. |
| **Rokt Transactions** | Antal Rokt-netværkstransaktioner for din butik. |
| **Rokt Revenue / Transaction** | Rokt-omsætning divideret med transaktioner pr. tidsinterval. |
| **Rokt Impressions** | Samlede Rokt-netværksvisninger på tværs af din butiks placeringer. Adskiller sig fra upsell-**Impressions**. |
| **Rokt Referrals** | Rokt-netværkshenvisninger, positive engagementer, der sendte kunden videre til en Rokt-partner. |

<div id="dimensions">
  ## Dimensioner
</div>

Dimensioner opdeler en metric efter en attribut. Ikke alle dimensioner er kompatible med alle metrics; Exploreren forhindrer automatisk inkompatible kombinationer (for eksempel kan **Decline rate** og **Show rate** ikke opdeles efter **Currency**).

<div id="available-dimensions">
  ### Tilgængelige dimensioner
</div>

| Dimension | Beskrivelse |
| - | - |
| **Date** | Grupperer resultater efter dag, uge eller måned. |
| **Surface** | Upsell-overfladen: PPU (post-purchase), Checkout, Thank You Page eller Cart. |
| **Funnel** | Den specifikke funnel, tilbuddet hører til. |
| **Product** | Det produkt, der blev tilbudt som upsell. |
| **Placement** | Placeringen inden for en funnel. |
| **Device** | Enhedstypen: Mobile, Desktop eller Unknown. Der findes ingen separat tablet-værdi. |
| **Currency** | ISO-valutakoden (for eksempel USD, EUR, GBP). Nyttig for butikker med flere valutaer. |

<div id="unavailable-dimensions">
  ### Utilgængelige dimensioner
</div>

Følgende er under udvikling. De vises i vælgeren, men vises som 'Not compatible' for alle metrics, indtil de er implementeret.

| Dimension | Beskrivelse |
| - | - |
| **Flow type** | Typen af upsell-flow. |
| **Experiment** | A/B-testen eller eksperimentvarianten. |
| **Outcome** | Beslutningsresultatet (for eksempel eligible, out of stock). |
| **Reason code** | Årsagen til et beslutningsresultat. |
| **Scope** | Beslutningens omfang (Flow, Experience, Placement eller ItemSlot). |
| **Response type** | Tilbudssvaret (Accepted, Declined eller Timeout). |

<div id="aql-statement-syntax">
  ## Syntaks for AQL-sætninger
</div>

En AQL-sætning er et enkelt spørgsmål bestående af klausuler. Kun `SELECT` og et tidsinterval (`SINCE`) er påkrævet; alt andet er valgfrit. Når du inkluderer valgfrie klausuler, skal de stå i denne rækkefølge:

```text theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT    <metrics>                    -- what to measure (required)
WHERE     <filters>                    -- narrow the data
GROUP BY  <dimensions>                 -- break the numbers down
SINCE     <time range>                 -- the period to cover (required)
GRAIN     <time grain>                 -- bucket size for time series
COMPARE   <comparison>                 -- compare against another period
CHART     <visualization>              -- how to display the result
TIMEZONE  "<timezone>"                 -- timezone for date buckets
ORDER BY  <field> <direction>          -- sort the results
LIMIT     <number>                     -- cap the number of rows
```

Et minimalt eksempel, daglig upsell-omsætning og acceptrate for de sidste 30 dage:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT revenue, accept_rate
GROUP BY date
SINCE last_30d
GRAIN day
```

<Note>
  Nøgleord skelner ikke mellem store og små bogstaver (`SELECT` og `select` virker begge), og sætninger afsluttes ikke med semikolon. Strengværdier omgives af dobbelte anførselstegn; tal og lister gør ikke.
</Note>

<div id="select-and-group-by">
  ### SELECT og GROUP BY
</div>

* **`SELECT`** angiver de metrics, der skal måles, adskilt af kommaer, for eksempel `SELECT revenue, impressions, accept_rate`.
* **`GROUP BY`** opdeler disse metrics efter en eller flere dimensioner, såsom `date`, `device`, `surface` eller `funnel`. Uden `GROUP BY` får du en enkelt total for hele perioden.

<div id="filtering-with-where">
  ### Filtrering med WHERE
</div>

`WHERE` indsnævrer dataene, før de måles. Kombiner betingelser med `AND`.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT revenue
WHERE device = "mobile"
GROUP BY date
SINCE last_month
GRAIN day
```

<Warning>
  `impressions`, `accept_rate` og `rpv` kan **ikke** filtreres eller grupperes efter enhed, funnel, placering eller produkt; deres kilde-rollup har ingen sådan kolonne. Tilføjelse af `WHERE device = "mobile"` til en forespørgsel, der vælger en af dem, afvises med `metric "impressions" cannot be filtered by "device"`.
</Warning>

Understøttede sammenligninger er `=`, `!=`, `IN`, `NOT IN`, `>`, `<`, `>=` og `<=`. Brug en liste med `IN` for at matche flere værdier:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
WHERE surface IN ["PPU", "Checkout"]
```

`experiment` er **ikke** et filtrerbart felt; det har ingen rollup-kilde, så `WHERE experiment IN [...]` afvises med `filters on "experiment" are not supported.`

**Funnel**-filteret understøtter multi-select: **is one of** (`IN`) inkluderer kun de valgte funnels, **is not one of** (`NOT IN`) udelukker dem. Når du grupperer efter **Funnel** og anvender et **is one of**-filter, viser diagrammet én linje pr. valgt funnel, uden at noget samles i "Other".

<div id="time-ranges-and-comparisons">
  ### Tidsintervaller og sammenligninger
</div>

Hver forespørgsel har brug for et tidsinterval, som sættes med `SINCE`:

| Form | Eksempel | Betydning |
| - | - | - |
| Forudindstillet | `SINCE last_30d` | Et rullende vindue, der slutter **i går** (UTC). Den igangværende dag udelades bevidst, så `last_1d` betyder kun i går, og `this_month` løber fra den 1. til i går. |
| Brugerdefineret vindue | `SINCE 2026-07-02 UNTIL 2026-07-05` | Et fast interval med ISO-datoer (`YYYY-MM-DD`). |

Tilgængelige forudindstillinger: `last_1d`, `last_7d`, `last_30d`, `last_90d`, `this_month`, `last_month` og `this_year`.

* **`GRAIN`** sætter intervallets størrelse for tidsserier: `day`, `week` eller `month`. (`hour` kan parses, men intet rollup leverer timedata, så sådan en forespørgsel afvises med `group_by / time_grain combination is not supported.`)
* **`COMPARE`** lægger en anden periode ovenpå. Brug `previous_period`, vinduet af samme længde umiddelbart før. `previous_year` er skjult fra Compare-vælgeren, fordi datavarehuset ikke indeholder data fra før februar 2026; den kan stadig kun skrives i AQL, så tidligere gemte forespørgsler fortsat kan parses.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- A four-day sale vs the four days immediately before it
SELECT revenue, impressions, accept_rate
GROUP BY date
SINCE 2026-07-02 UNTIL 2026-07-05
GRAIN day
COMPARE previous_period
```

<Note>
  Rapporteringsdata begynder i **februar 2026**, så et vindue tidligere end det returnerer tomt for begge perioder.
</Note>

<div id="choosing-a-chart">
  ### Valg af diagram
</div>

* **`CHART`** angiver, hvordan resultatet vises: `scorecard`, `line_chart`, `bar_chart`, `area_chart`, `funnel_chart` eller `table`.
* **`TIMEZONE`** angiver den tidszone, der bruges til at inddele datoer, som et IANA-navn i anførselstegn, for eksempel `TIMEZONE "America/New_York"`. Standard er UTC (se [Tidszoner](#timezones)).

Diagramtypen `funnel_chart` har specifikke krav:

* **Placeringstilstand.** Gruppér efter `placement`, og vælg én metric. Trinene ordnes efter den kanoniske placeringssekvens (upsell default, derefter downsell, derefter yderligere upsells). Kun den første metric plottes; yderligere metrics noteres i en fodnote.
* **Metric-tilstand.** Vælg to eller flere metrics uden `GROUP BY`. Hver metric bliver et tragttrin i forespørgselsrækkefølgen (for eksempel viser `SELECT impressions, conversions` et frafald fra impressions til conversions). Alle metrics skal have samme enhed.

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Placement funnel: conversion drop-off across placements
SELECT conversions
GROUP BY placement
SINCE last_30d
CHART funnel_chart
```

<Warning>
  Placeringstilstand kræver en metric, der kan opdeles efter placering. Det kan `impressions`, `accept_rate` og `rpv` ikke; tragtdiagrammet viser "These metrics can't be grouped by placement" for dem.
</Warning>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Metric funnel: impressions to conversions drop-off
SELECT impressions, conversions
SINCE last_30d
CHART funnel_chart
```

<div id="sorting-and-limiting">
  ### Sortering og begrænsning
</div>

* **`ORDER BY`** sorterer resultater efter en metric eller dimension med `ASC` eller `DESC`.
* **`LIMIT`** begrænser antallet af returnerede rækker, nyttigt til spørgsmål af typen "top N".

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Top 20 products by upsell revenue this month
SELECT revenue, conversions, avg_conversion_value
GROUP BY product
SINCE this_month
ORDER BY revenue DESC
LIMIT 20
```

<div id="more-examples">
  ### Flere eksempler
</div>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Daily performance vs the previous period
SELECT revenue, impressions, conversions, accept_rate
GROUP BY date
SINCE last_30d
GRAIN day
COMPARE previous_period
```

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Mobile vs desktop revenue over the last 90 days
SELECT revenue
GROUP BY device
SINCE last_90d
ORDER BY revenue DESC
```

<Note>
  `impressions`, `accept_rate` og `rpv` kan ikke opdeles efter enhed; deres rollup er shop × surface × dag uden nogen enhedskolonne. Brug `revenue` (eller en anden konverteringsbaseret metric) til enhedssammenligninger.
</Note>

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
-- Which surface is driving the most revenue?
SELECT revenue, impressions, accept_rate
GROUP BY surface
SINCE last_30d
ORDER BY revenue DESC
```

<div id="timezones">
  ## Tidszoner
</div>

Som standard kører forespørgsler i UTC. Du kan tilsidesætte tidszonen, så datoopdelte resultater afspejler lokal tid (se [Indstil en tidszone](/da/aftersell/reports_explorer#setting-a-timezone) for trinene i værktøjslinjen).

<Note>
  Forespørgsler, der inkluderer **Impressions**, **Accept Rate** eller **Revenue Per Visit**, inddeler altid datoer i UTC, uanset hvilken tidszone du vælger, fordi de stammer fra et dagligt rollup, der rapporteres i UTC-dage. Hvis en forespørgsel blander en af disse med andre metrics, falder hele resultatsættet tilbage til UTC, så datointervallerne forbliver justerede.
</Note>

<div id="the-timezone-clause">
  ### TIMEZONE-klausulen
</div>

Angiv en tidszone direkte i AQL med `TIMEZONE`-klausulen, som står mellem `CHART` og `ORDER BY`:

```aql theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
SELECT ...
CHART ...
TIMEZONE "Asia/Tokyo"
ORDER BY ...
```

Når klausulen er til stede, tilsidesætter den værktøjslinjevalget for den pågældende forespørgsel og bevares, når du gemmer og genindlæser.

<div id="available-timezones">
  ### Tilgængelige tidszoner
</div>

Vælgeren (og `TIMEZONE`-klausulen) accepterer et lukket sæt på ti zoner. Enhver anden IANA-tidszone afvises som ikke understøttet.

| Tidszone | Eksempel på lokation |
| - | - |
| UTC | Universal Coordinated Time |
| America/New\_York | New York (ET) |
| America/Chicago | Chicago (CT) |
| America/Denver | Denver (MT) |
| America/Los\_Angeles | Los Angeles (PT) |
| Europe/London | London (GMT/BST) |
| Europe/Paris | Paris (CET/CEST) |
| Asia/Tokyo | Tokyo (JST) |
| Asia/Singapore | Singapore (SGT) |
| Australia/Sydney | Sydney (AEST/AEDT) |

<div id="account-default-and-how-timezone-affects-results">
  ### Kontoens standard, og hvordan tidszonen påvirker resultater
</div>

Hvis **Lock reporting timezone** er aktiveret i dine analyseindstillinger, bruger valget **Account default** den låste tidszone (værktøjslinjen viser den resulterende zone, for eksempel **Timezone: Account default (Paris (CET))**). Siden med analyseindstillinger accepterer den fulde IANA-liste, men Reports respekterer kun de ti zoner ovenfor; hvis din låste zone ikke er en af dem, oversættes **Account default** stiltiende til UTC. Hvis **Lock reporting timezone** ikke er aktiveret, falder **Account default** tilbage til UTC.

Når en tidszone er indstillet, bruger datoinddelingen lokal tid i stedet for UTC. For eksempel falder en hændelse kl. `2026-03-29T01:30:00Z` på den 28. marts i New York (ET), men på den 29. marts i Paris (CET). Forespørgsler uden tidszone, inklusive tidligere gemte, kører fortsat i UTC.
