1. Kies je advertentietype
Maak een productcampagne voor één product of aanbieding, een bannercampagne voor beeldmateriaal of een Social Ads-campagne voor deelbare promoties. Vul de echte productpagina in, niet alleen je homepage.
Deze interactieve handleiding laat zien welke campagnetypen je kunt aanbieden, hoe affiliates jouw materiaal plaatsen en hoe je tracking en conversies veilig aansluit. Volg de stappen in volgorde.
Kies het campagnedoel dat bij je webshop past. De benodigde techniek verschilt per doel.
Maak een productcampagne voor één product of aanbieding, een bannercampagne voor beeldmateriaal of een Social Ads-campagne voor deelbare promoties. Vul de echte productpagina in, niet alleen je homepage.
Klik: MUNK registreert de trackingklik. Verkoop: je webshop stuurt na een definitief betaalde order een server-side conversie. Registratie: stuur na een bevestigde registratie een conversie met bedrag 0. Verkoop en registratie vereisen geverifieerde website- en API-integratie.
Upload een banner of productafbeelding en geef een duidelijke titel, beschrijving en voorwaarden. Affiliates gebruiken hun eigen persoonlijke MUNK-link als klikbestemming. Plaats nooit je API-sleutel in materiaal, HTML of een link.
Open Website & API-verificatie in je dashboard. Kies de HTML-bestandsmethode of metatag-methode, plaats de unieke verificatie op je eigen domein en laat MUNK de website controleren.
Website verifiëren →Maak in API-sleutels een sleutel met de scope conversion:write. Kopieer hem direct en bewaar hem als geheim op je webshopserver, bijvoorbeeld als environment variable of in een bestand buiten de publieke webroot. MUNK toont de volledige sleutel later niet opnieuw.
API keys →De landingspagina bewaart munk_click_id server-side bij de sessie, winkelwagen of order. De orderbackend stuurt pas na definitieve betaalbevestiging een ondertekende postback naar MUNK. Gebruik voor registraties de bevestigde registratie-hook. Plaats dit niet in browser-JavaScript.
Test met een eigen campagne, testklik en testorder. Controleer of de klik-ID aan de order gekoppeld blijft, de API HTTP 201 teruggeeft en de conversie als In beoordeling verschijnt. Laat een beheerder de order controleren.
Dit zijn voorbeeldweergaven van advertentieformaten die een affiliate op zijn website kan plaatsen. De uiteindelijke stijl hangt af van de website van de affiliate. De klikbestemming is altijd de persoonlijke MUNK-trackinglink.
Voorbeeld van plaatsing: Bannerblok
Draadloze audio met helder geluid, lange batterijduur en compact oplaaddoosje.
Bekijk aanbieding ↗Voorbeeld van plaatsing: Inhoud / mobiele feed
Voorbeeld van plaatsing: editorial text block
Social Ads creative + personal MUNK tracking link
ⓘ Affiliate-link: de websitebeheerder kan een vergoeding ontvangen als je via deze link koopt.
API-sleutel, HMAC-handtekening en postbackcode horen uitsluitend in de server-side backend. Nooit in de browser, broncode, publieke repository, afbeelding of affiliate-link.
API-sleutel, HMAC-handtekening en postbackcode horen uitsluitend in de server-side backend. Nooit in de browser, broncode, publieke repository, afbeelding of affiliate-link.
Gebruik bij voorkeur hosting environment variables. Als je een configuratiebestand gebruikt, plaats het buiten public_html, www of httpdocs en beperk leesrechten.
MUNK_API_KEY=munk_YOUR_PRIVATE_API_KEYDe bezoeker komt via de MUNK-link binnen met munk_click_id. Valideer het formaat en bewaar de waarde server-side. Koppel hem bij voorkeur aan de winkelwagen/order zodat hij niet verloren gaat tijdens het afrekenen.
<?php
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
$clickId = (string) ($_GET['munk_click_id'] ?? '');
if (preg_match('/^[a-f0-9]{32}$/', $clickId)) {
$_SESSION['munk_click_id'] = $clickId;
}Onderstaand voorbeeld toont de kern van de ondertekening. Integreer dit in de orderstatus-hook van je webshop. De exacte hook verschilt per webshopsoftware. Verzend nooit bij een mislukte, geannuleerde of alleen aangemaakte bestelling.
<?php
$apiKey = getenv('MUNK_API_KEY');
$timestamp = (string) time();
$payload = json_encode([
'click_id' => $storedClickId, // stored server-side
'conversion_ref' => $uniqueOrderId, // unique order ID
'conversion_type' => 'sale', // or 'registration'
'gross_amount' => $verifiedTotal // registration: 0
], JSON_UNESCAPED_SLASHES);
$signature = hash_hmac('sha256', $timestamp . '.' . $payload, $apiKey);
$ch = curl_init('/api/v1/conversion.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Munk-Key: ' . $apiKey,
'X-Munk-Timestamp: ' . $timestamp,
'X-Munk-Signature: ' . $signature
]
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) { error_log('MUNK postback transport failed'); }
curl_close($ch);
// Store the result; retry with the SAME conversion_ref on timeout.POST /api/v1/conversion.phpHeaders: X-Munk-Key, X-Munk-Timestamp, X-Munk-Signature · Scope: conversion:write · HMAC-SHA256 of timestamp.raw_json_body
201 201 — ontvangen; conversie staat op In beoordeling. Dit is nog geen definitieve commissie.
401 401 — controleer API-sleutel, timestamp en HMAC-handtekening.
404 404 — klik-ID niet gevonden of hoort niet bij jouw adverteerdersaccount.
409 409 — campagne niet geschikt, budget niet beschikbaar of dubbele orderreferentie.
422 422 — controleer de velden en het conversietype.
429 429 — API-limiet bereikt; probeer later opnieuw met dezelfde unieke orderreferentie.
API-sleutel alleen op de backend; nooit in HTML of JavaScript.
Gebruik HTTPS en valideer de 32-tekens click-ID.
Sla click-ID server-side op en vertrouw geen omzetbedrag uit de browser.
Gebruik een unieke, stabiele orderreferentie en voorkom dubbele postbacks.
Stuur alleen na betaalbevestiging of bevestigde registratie.
Log nooit API-sleutels, handtekeningen of volledige klantgegevens.
Trek een gelekte sleutel direct in en maak een nieuwe.
Een API-postback is een melding van jouw webshopserver. MUNK kan zonder onafhankelijke betaalproviderkoppeling niet zelfstandig bewijzen dat het geld is ontvangen. Conversies worden daarom eerst als In beoordeling geregistreerd. De campagnevergoeding bepaalt de affiliatecommissie; gross_amount is orderinformatie en stelt de commissie niet automatisch vast.
Domein geverifieerd, API getest en een testorder gecontroleerd? Dan kun je je campagne ter beoordeling aanbieden.