For brands
How we track the results of a UGC film
The creator earns commission on sales she helped create. That means you and she must see the same numbers. Here is exactly what we measure, what we cannot measure, and what you need to do.
Three levels. Start with the one you have the appetite for.
Level 0, no technology at all
Vi skapar en rabattkod per kreatör. Ni rapporterar försäljningen i er dashboard en gång i månaden. Det fungerar från dag ett, och det fungerar även när klicket sker inuti Instagrams webbläsare där länkparametrar ofta tappas bort. Nackdelen står i klartext för kreatören: siffran är märkt Uppgivet eftersom vi inte kunnat kontrollera den.
Level 1, a webhook from your checkout
Ni skickar en signerad rad till oss varje gång en order betalas. Då blir siffran Verifierat, och det är den nivån vi rekommenderar: det är inte analys, det är fakturaunderlag. Beskrivningen står längre ner.
When you post the film yourselves
That is the normal case, and everything above still applies. But the click path changes owner: if the creator posts, our link sits in her bio; if you post, there is no such place. The link then has to sit with you, and there are three places it can sit, best first:
- Annonsens destination.If you run the film as an ad on Meta or TikTok, you set the destination yourselves. Paste the tracking link there and every click is measured. That actually gives cleaner numbers than a link in a bio.
- Your own link sticker or "link in bio" under kampanjen.
- Bara rabattkoden.Works even when nobody clicked anything, for example when someone sees the film and looks you up themselves.
Om ni inte vill skicka trafik genom oss
Fair objection, and it has an answer. Keep your own address and add?ugc=<koden>. Then read the parameter out in the checkout and send it ascodein the webhook, and the sale is attributed exactly as usual. On Shopify this happens automatically, we read the landing page out of the order.
The price is the clicks: they never pass through us and cannot be measured. ChooseThe company's own link när ni skapar spårlänken, så visar kreatörens sida "Mäts inte" på klicken i stället för en nolla. Det är ingen detalj. En nolla bredvid fem ordrar ser ut som ett fel, och då är det er kampanj som ser trasig ut.
En sak som kostar er ingenting
If you run the film aspartnership ad hos Meta eller spark ad hos TikTok, från kreatörens eget handtag, får hon åtkomst till en del av annonssiffrorna direkt. Det löser halva synlighetsfrågan utan att ni behöver koppla något konto.
Level 2, you connect your accounts
Instagram, TikTok och Meta Ads släpper in oss om ni ger oss läsrättighet till era egna konton. Först då kan visningar på era inlägg visas som Från plattformen. Utan den kopplingen finns ingen laglig eller teknisk väg för oss att läsa statistik på ett inlägg som ligger hos er, och den som påstår annat säljer er gissningar.
What you need to do
- Register the company and pick a creator on a brief.
- Create a tracking link under Results. Set where the visitor goes and what commission applies.
- Set up a discount code with the same name in your shop. It catches the purchases where nobody clicked the link.
- Koppla kassan enligt beskrivningen nedan.
Webhooken
SendPOST till er egen adress:
https://ugcguiden.se/api/konvertering/<ert-namn>
The body is JSON. Only four fields are needed:
{
"order_id": "1001",
"amount": "499.50",
"currency": "SEK",
"code": "anna-host",
"occurred_at": "2026-08-21T10:04:00Z"
}
codeis the tracking link code, the discount code or the value you read out of?ugc=on the landing page. All three work. Send"status": "refund"on the sameorder_idon a return, and the commission is clawed back.
Signaturen
Compute HMAC-SHA256 over the raw body using the signing key from your results page, and send it in the headerX-UGC-Signature. Hex or base64, both are accepted.
const body = JSON.stringify(order);
const sig = crypto.createHmac("sha256", NYCKELN).update(body).digest("hex");
await fetch("https://ugcguiden.se/api/konvertering/ert-namn", {
method: "POST",
headers: { "content-type": "application/json", "X-UGC-Signature": sig },
body,
});
Sign exactly the string you send. If you re-serialise the object after computing the signature it no longer matches, and that is the only error we see in practice.
Shopify
Point a webhook forOrder paymentat the address above. No code needed: we recognise Shopify's ownX-Shopify-Hmac-Sha256and read the discount code out of the order. Put your app secret on the results page so we can verify it.
Svaren
okthe order is recordedingen-kodthe order carried no creator code, we stored nothingokand-kodthe code is not yoursutanfor-fonsterkoden har passerat sitt slutdatumavslutad-lankthe collaboration has ended- HTTP 401 the signature does not match
The two middle ones mean no commission is due and nothing was stored. Returns always go through, even after the end date: otherwise you could avoid repaying commission by waiting it out.
We answer 200 even oningen-kod. Det är med flit: ett 4xx
lägger ordern i er omförsökskö och den kommer tillbaka i evighet.
Vad vi sparar, och inte
Only orders carrying a creator code reach us. Every other order is discarded the second we have read the body. We store order number, amount, currency and time. We do not store customer names, addresses, emails or line items, even when they are in the body you send.
On the click side we store no IP address. The visitor becomes a hash of IP, browser and today's date, which lets us tell a unique visitor from a reload within a day but not follow anyone over time.
Vad vi inte kan
We cannot see views on a post that sits on your account until you connect the account. We do not see purchases in a physical shop, or purchases where neither link nor code was used.
One more thing, and it matters to use the right words for it. We measure which orderscarried the creator's code, and that is what commission is calculated on. We do not measure whether the same customer would have bought anyway. That answer is not in any order feed, ours or any affiliate network's: it takes a test where part of the audience does not see the film, and the difference between the groups is the effect.
The distinction is worth keeping straight on your side too. "The film generated 200,000 kronor" is a claim someone can dispute. "200,000 kronor in orders carried the creator's code" is a fact, and it is what you are invoiced on.