
# Annonsklicksattribuering för WhatsApp

Om du kör Meta- eller Google-annonser till en sida på din egen webbplats, och den sidan har en WhatsApp-knapp, kan <span data-t="appName">DM Champ</span> berätta för dig vilket annonsklick varje WhatsApp-konversation kom ifrån. Du klistrar in ett litet skript på din webbplats. När en besökare trycker på din WhatsApp-knapp sparas klicket och matchas med det första meddelandet de skickar till dig. Kontakten visar sedan vilken kampanj den kom ifrån, och klickdatan följer med kontakten in i webhooks, API:et och, om du vill, tillbaka till Meta.

Detta fungerar för alla sidor med en WhatsApp-knapp: en målsida, en bokningssida, en prissida eller ett frågeformulär som avslutas med "Skicka mina svar på WhatsApp".

> Den här sidan handlar om annonser som skickar folk till **din webbplats** först. Om dina annonser öppnar WhatsApp direkt (Metas "Klicka för att chatta på WhatsApp"-annonser), täcks det automatiskt, utan ett skript, i [Attribuering för Klicka för att chatta på WhatsApp-annonser](click-to-whatsapp-attribution.md).

---

## Konfigurera

1. Gå till **Inställningar → Annonsklickspårning** (Integrationsgruppen).
2. Klicka på **Aktivera och hämta mitt skript**. Ditt konto får sin egen webbplatsnyckel och ett skript på en rad.
3. Kopiera skriptet och klistra in det precis före den avslutande `</body>`-taggen på varje sida som har en WhatsApp-knapp:

{% code overflow="wrap" %}
```html
<script src="https://api.dmchamp.com/v1/ad-visit/YOUR_SITE_KEY.js" async></script>
```
{% endcode %}

4. Valfritt: under **WhatsApp-nummer**, skriv in numret som dina knappar länkar till. Endast länkar till det numret spåras då. Lämna det tomt för att spåra varje WhatsApp-länk på webbplatsen.
5. Välj formuleringen för förfrågningsnumret (se nedan) och klicka på **Spara**. Du behöver inte ändra skriptet på din webbplats efter en inställningsändring.
6. Testa det: öppna din sida från en länk med en kampanjtagg på, till exempel `https://yoursite.com/?utm_source=test&utm_campaign=setup-check`, tryck på din egen WhatsApp-knapp och skicka meddelandet. Öppna den kontakten i Chattar: kontaktpanelen visar **Kom från ett annonsklick** med kampanjen.

Webbplatsnyckeln finns redan i skriptet. Det är inte ett lösenord, så det är helt säkert att ha på en offentlig sida.

::: master-only
**Byråer:** varje klientkonto har sin egen webbplatsnyckel och sitt eget skript, så varje klients webbplats rapporterar till sitt eget konto. Du kan dölja sektionen för en klient med menyvisning, precis som alla andra inställningssektioner.
:::

---

## Vad skriptet gör

- **När sidan laddas**, sparar det annonsklick-ID:n och kampanjtaggar ( `utm_` -parametrarna) från sidans adress i webbläsarflikens sessionslagring, så att de finns kvar om besökaren tittar på en annan sida först. Det sätter ingen cookie, laddar inget annat och skickar ingenting.
- **När besökaren trycker på en WhatsApp-länk** (`wa.me`, `api.whatsapp.com/send` eller `whatsapp://send`), lägger det till förfrågningsnumret i meddelandet, registrerar besöket och låter trycket fortsätta till WhatsApp som vanligt.

Ingenting skickas till <span data-t="appName">DM Champ</span> före trycket.

---

## Förfrågningsnumret

Ett kort nummer, likt referensen en butik eller klinik ger dig, läggs till i besökarens WhatsApp-meddelande. Det är så <span data-t="appName">DM Champ</span> vet exakt vilket annonsklick som hör till vilken konversation. Ett meddelande ser ut så här:

```
Hi, I would like to know more.
Enquiry no. 4827
```

- **Formulering:** "Förfrågningsnr" är standard. Du kan använda vilken textrad som helst som låter naturlig för din verksamhet, till exempel "Bokningsref" eller "Ref". Inga siffror.
- **Var:** **På en egen sista rad** (standard) eller **I slutet av texten**. Inställningssidan visar en förhandsgranskning i realtid.
- **Längd:** 4 siffror, eller 5 när din webbplats är mycket välbesökt.
- **Din AI-agent ser det aldrig** och upprepar det aldrig. Inkorgen visar hela meddelandet, inklusive numret.

Du kan stänga av förfrågningsnumret. Matchning fungerar då endast baserat på meddelandets text, vilket innebär att två besökare som skickar exakt samma text (till exempel samma frågesportssvar) inte kan särskiljas, och vissa klick kommer inte att matchas.

---

## Din egen kod för frågesport eller knapp

Om din sida bygger WhatsApp-meddelandet själv (en frågesport som lägger in svaren i texten, eller din egen knappkod), lägg till `data-manual` i script-taggen:

{% code overflow="wrap" %}
```html
<script src="https://api.dmchamp.com/v1/ad-visit/YOUR_SITE_KEY.js" data-manual async></script>
```
{% endcode %}

Med `data-manual` ändrar skriptet inte längre WhatsApp-länkar på egen hand. Din egen kod anropar det precis innan WhatsApp öppnas, så att varje besök registreras en gång:

- `window.ChatAttribution.text(finalText, number)` returnerar din text med förfrågningsnumret tillagt och registrerar besöket. Använd den returnerade texten i din WhatsApp-länk.
- `window.ChatAttribution.link(finalText, number)` gör samma sak och returnerar en färdig `wa.me`-länk med den texten. Utelämna numret för att använda det som står under **WhatsApp-nummer** i inställningarna.

{% code overflow="wrap" %}
```html
<script>
  function sendAnswers(answers) {
    var text = "Hi, my answers: " + answers.join(", ");
    if (window.ChatAttribution) {
      window.location.href = window.ChatAttribution.link(text, "+15551234567");
    } else {
      window.location.href = "https://wa.me/15551234567?text=" + encodeURIComponent(text);
    }
  }
</script>
```
{% endcode %}

Grenen `else` ser till att knappen fungerar även om skriptet inte har laddats, till exempel om ett webbläsartillägg blockerar det. En text som redan innehåller ett nummer som skriptet utfärdat ändras aldrig en andra gång.

---

## Vad som registreras

Vid klicket innehåller besöksloggen:

- annonsklick-id:n i sidans adress, såsom `fbclid` (Meta) och `gclid` (Google)
- `_fbc`- och `_fbp`-cookies, om din egen Meta-pixel har satt dem på din webbplats (skriptet läser dem, det sätter dem aldrig)
- kampanjtaggar (`utm_source`, `utm_medium`, `utm_campaign`, `utm_content`, `utm_term`)
- målsidan, sidan besökaren kom ifrån, webbläsaren och meddelandetexten
- IP-adressen och tiden, som läggs till av <span data-t="appName">DM Champ</span> när besöket anländer

Besöksloggar sparas i **90 dagar**. När ett besök matchas lagras en kopia av dess klickdata på kontakten och stannar kvar hos kontakten tills du tar bort den.

**Din integritetspolicy:** skriptet körs på din webbplats, så din webbplats integritetspolicy bör nämna det: vad det registrerar (listan ovan) och att det gör det när en besökare trycker på en WhatsApp-knapp.

---

## Hur matchning fungerar

När en kontakts första meddelande anländer letar <span data-t="appName">DM Champ</span> efter ett besök från de **15 minuter** som föregick det:

1. **I första hand via förfrågningsnummer.** Ett meddelande som innehåller ett nummer som skriptet utfärdat matchas mot det besöket.
2. **Annars via identisk text.** Ett meddelande med exakt samma text som ett besök matchas mot det. När två olika besökare skickar samma text inom tidsfönstret matchas ingen av dem, avsiktligt, så att en kontakt aldrig tillskrivs fel annons.

Ett senare meddelande som innehåller förfrågningsnumret matchas också, så länge kontakten inte har någon matchning ännu.

Begränsningar:

- **Första matchningen vinner.** När en kontakt väl har en matchning skrivs den aldrig över.
- **Endast WhatsApp:** kanalerna WhatsApp Business API och WhatsApp Web.
- **15 minuter:** en besökare som trycker på knappen men skickar meddelandet långt senare matchas inte.
- **Endast framåtriktat:** kontakter från tiden innan du installerade skriptet har ingen matchning.

---

## Var du ser det

- **Kontaktpanel:** **Kom från ett annonsklick** med kampanj eller källa samt datum. Håll muspekaren över för detaljer.
- **Webhooks:** `contact.ad_attribution` i [agenttagg-webhooks](webhooks.md#contact-tags-updated-webhook) och i varje webhook-prenumerationshändelse som innehåller en kontakt.
- **API:** `ad_attribution` i kontaktlistan och `adAttribution` för en enskild kontakt, i avsnittet Kontakter i API-referensen.
- **MCP-verktyg:** samma objekt på varje kontakt som de returnerar.

Värdet är `null` när kontakten inte har någon matchning.

| Fält | Vad det är |
|---|---|
| `visit_at` | När besökaren tryckte på WhatsApp-knappen. |
| `matched_at` | När besöket matchades med kontakten. |
| `match_method` | `reference` (matchad via förfrågningsnummer) eller `text` (matchad via identisk meddelandetext). |
| `reference` | Förfrågningsnumret, eller `null` när det var avstängt. |
| `fbc` / `fbp` | Meta-klicket och webbläsarcookies från din egen Meta-pixel, om de finns. |
| `fbclid` | Meta-annonsklick-id från sidans adress. |
| `gclid` / `gbraid` / `wbraid` | Google-annonsklick-id från sidans adress. |
| `utm_source` / `utm_medium` / `utm_campaign` / `utm_content` / `utm_term` | Kampanjtaggar från sidans adress. |
| `landing_url` | Sidan besökaren landade på. |
| `referrer` | Sidan besökaren kom ifrån. |
| `client_ip` | Besökarens IP-adress. |
| `user_agent` | Besökarens webbläsare. |
| `site_key` | Webbplatsnyckeln för skriptet som registrerade besöket. |
| `visit_id` | Id för besöksloggen. |

---

## Skicka resultat till Meta (valfritt)

Du kan låta <span data-t="appName">DM Champ</span> rapportera utfall tillbaka till ditt Meta-annonskonto, så att Meta lär sig vilka annonser som ger faktiska leads och försäljningar och optimerar mot dem. Detta använder dina egna uppgifter för Meta Conversions API.

1. I Meta Events Manager, hitta ditt pixel-id (kallas även dataset-id) under Datakällor, och skapa en åtkomsttoken under Inställningar, Conversions API, **Generera åtkomsttoken**.
2. Under **Inställningar → Annonsklickspårning**, i avsnittet **Skicka resultat till Meta (valfritt)**, anger du **Pixel- / dataset-id** och **Åtkomsttoken**. Vid testning kan du lägga till **Test-eventkod** från Metas flik för test-event; rensa den när du är klar. Klicka på **Spara Meta-detaljer**.
3. Öppna agentredigeraren, gå till fliken **Taggar** och öppna en tagg. Under **Skicka till Meta**, välj händelse: **Lead**, **Kontakt**, **Bokning**, **Köp** eller ett anpassat namn. Lägg eventuellt till ett värde och en valuta.

Från och med då, varje gång den taggen appliceras på en kontakt (av AI:n, manuellt, via API:et eller genom en automatisering), skickar <span data-t="appName">DM Champ</span> händelsen till Meta med kontaktens lagrade klickdata (`fbc`, `fbp`, IP-adress, webbläsare, landningssida) plus deras telefonnummer, e-post och namn, hashade, så att Meta kan koppla det till annonsen. En kontakt utan matchning skickar fortfarande händelsen, men endast med hashade telefonnummer, e-post och namn.

- **Ingen dubbelräkning:** varje händelse har ett fast id som består av kontakt-id och taggnamn. Om ditt CRM skickar samma händelse till Meta med samma id behåller Meta bara en.
- **Metas attributionsfönster:** Meta krediterar endast en händelse till en annons inom sitt attributionsfönster, vilket som standard är 7 dagar efter klicket. En affär som avslutas veckor senare räknas inte av sig själv, så skicka även en tidigare händelse, till exempel en tagg för den bokade eller betalda konsultationen.

---

## Vanliga frågor

**Fungerar detta om min annons öppnar WhatsApp direkt?**
De annonserna går inte via din webbplats, så skriptet körs aldrig. Meta skickar annonsdetaljerna med det första meddelandet istället, se [Click-to-WhatsApp Ad Attribution](click-to-whatsapp-attribution.md).

**Gör skriptet min webbplats långsammare eller sätter det cookies?**
Det laddas i bakgrunden (`async`), sätter inga cookies och laddar inget annat. Det skickar bara information när en besökare trycker på en WhatsApp-knapp.

**Kan jag spåra Google Ads utöver Meta-annonser?**
Ja. Google-klick-id:n (`gclid`, `gbraid`, `wbraid`) och alla kampanjtaggar registreras och visas på kontakten. Att skicka tillbaka resultat är endast tillgängligt för Meta.

**Varför fick en kontakt ingen matchning?**
De vanligaste orsakerna: meddelandet anlände mer än 15 minuter efter trycket, förfrågningsnumret togs bort från meddelandet, förfrågningsnumret är avstängt och en annan besökare skickade samma text, eller så saknar sidan skriptet.

**Min webbplats länkar till två WhatsApp-nummer. Kan jag spåra bara ett?**
Ja. Skriv in det numret under **WhatsApp-nummer** i inställningarna. Lämna det tomt för att spåra alla WhatsApp-länkar.

**Kan jag ändra formuleringen senare?**
Ja. Ändringar tillämpas på din webbplats omedelbart; du behöver inte klistra in skriptet igen.
