Teknik og sporing

API-integration

Også kaldet API integration, API, programmeringsgrænseflade.

Kort svar

API-integration er en programmatisk forbindelse, hvor to systemer udveksler data direkte over HTTP i stedet for gennem et brugerinterface. I affiliate-marketing bruges den til at hente rapporter, sende konverteringer og opdatere produktfeeds automatisk.

Definition af API-integration.

En API-integration består af tre dele: et endpoint, en autentificering og et dataformat. Klienten kalder en URL med en nøgle eller et token i headeren, og serveren svarer med struktureret data – næsten altid JSON. Til forskel fra en manuel eksport kører kaldet på maskinens vilkår: hver nat klokken 04, hver time eller i samme sekund som en ordre falder.

Data løber i to retninger. Træk (pull) er når affiliaten eller butikken henter noget: statistik, programlister, produktfeeds, udbetalingshistorik. Skub (push) er når butikkens system sender noget ind – typisk en gennemført ordre, der registreres som konvertering server-til-server. Skub er den robuste retning, fordi den ikke afhænger af, om et script nåede at køre i kundens browser.

Tre ting afgør, om en API-integration holder i drift. Autentificering: nøglen skal have færrest mulige rettigheder. Rate limits: hvor mange kald er tilladt pr. minut, og hvad sker der, når loftet rammes. Idempotens: samme ordre skal kunne sendes to gange uden at tælle to gange. Springes idempotens over, opdages det først, når en netværksfejl har udløst et gensend.

Hvad en API-integration bruges til

For affiliaten: samle klik, salg og provision fra flere programmer i et regneark eller dashboard, hente produktfeeds til prissammenligning og trække nye kampagner og satser ned automatisk. Rapport-endpoints er dem, der kaldes oftest – en affiliate med 20 programmer sparer 20 logins om dagen.

For butikken: sende konverteringer ind server-til-server, melde en refundering tilbage, opdatere et produktfeed dagligt og hente skyldig provision til bogføringen. En e-commerce-platform med en færdig app skjuler API'et bag en installation. Det er stadig en API-integration – blot en, en anden har skrevet.

API-nøgler og adgang

En API-nøgle er et password i tekstform. Den hører hjemme i serverens miljøvariabler – aldrig i frontend-kode, aldrig i git og aldrig i en chat. En nøgle, der kun skal læse rapporter, skal ikke også kunne oprette konverteringer.

Signerede webhooks er alternativet i den retning, hvor et system sender til dig. I stedet for at du opbevarer en hemmelighed hos afsenderen, sender afsenderen en signatur, du kan verificere. Modtageren kan bekræfte afsenderen uden nogensinde at kunne handle på dennes vegne.

API-integration vs. webhook

AspektAPI-integrationWebhook
Hvem starter kaldetdig – du spørger, når du vil have dataafsenderen – den kalder dig, når noget sker
Timingefter tidsplan eller på forespørgseli samme øjeblik hændelsen sker
Typisk brugrapporter, produktfeeds, opslagordre gennemført, ordre refunderet, abonnement fornyet
Når modtageren er nededu prøver igen, når du er klarafsenderen gensender – og du skal kunne tåle dubletter

Brug et API, når du selv skal bruge data på et tidspunkt du bestemmer, og en webhook, når noget skal ske i samme sekund som hændelsen.

Sådan går det galt

  • 01

    Nøglen ligger i frontend

    En API-nøgle i JavaScript, der køres i browseren, er offentlig. Alle med udviklerværktøjer kan læse den og kalde API'et som dig. Kald altid API'et fra din egen server.

  • 02

    Ingen idempotensnøgle

    Sendes samme ordre to gange efter en timeout eller en genstart, tæller den to gange, hvis modtageren ikke deduplikerer. Send et stabilt ordre-id med hver gang, og lad modtageren afvise gengangeren.

  • 03

    429 og 503 behandles som fejl

    Et API, der svarer 429 eller 503, siger prøv igen senere – ikke salget findes ikke. Uden backoff og en retry-kø forsvinder præcis de konverteringer, der ramte et uheldigt tidspunkt.

Hos Affilyflow

API-integration i praksis

Affilyflow tager imod konverteringer server-til-server, og samme ordre kan aldrig tælle to gange: der dedupliceres på ordre- eller faktura-id pr. program, så et gensend efter en timeout ikke skaber dobbelt provision.

En butiks webhook kan kun kreditere butikkens eget program – kommer der en hændelse ind, der peger et andet sted hen, afvises den. Til Stripe beder vi aldrig om din API-nøgle, kun om en webhook signing-secret, som udelukkende kan bruges til at verificere, at hændelsen kom fra dig.

Ofte stillede spørgsmål

Hvad er forskellen på en API-integration og en sporingspixel?

En sporingspixel kører i kundens browser og kan blokeres af annonceblokering, browserindstillinger eller en fejl i et andet script. En API-integration sender ordren fra butikkens server til netværkets server og er upåvirket af browseren. Mange butikker kører begge dele og lader deduplikering på ordre-id fjerne dubletterne.

Skal jeg kunne programmere for at bruge en API-integration?

Til en færdig app eller et plugin, nej – installationen kalder API'et for dig. Til alt andet ja: du eller din udvikler skal kunne lave et HTTP-kald med en nøgle, læse JSON og håndtere fejl. For en udvikler, der kender butikkens backend, er det få timers arbejde.

Hvor ofte må jeg kalde et affiliate-API?

Det afgøres af netværkets rate limit, som oplyses i dokumentationen og håndhæves med HTTP-status 429. Rapportdata ændrer sig sjældent oftere end en gang i timen, så et kald i timen pr. rapport rækker til de fleste formål. Konverteringer sendes derimod i det øjeblik ordren falder.

Hvad gør jeg, hvis API-kaldet fejler midt i en ordre?

Læg kaldet i en kø og prøv igen med stigende ventetid i stedet for at fejle ordren. Kundens køb må aldrig afhænge af, at et eksternt API svarer. Send altid ordre-id med, så et gensend genkendes som en dublet frem for som et nyt salg.