Gutscheincode-Tracking

Gutscheincode-Tracking

🔹 Ziel

Diese Dokumentation beschreibt, wie Rabattgutscheine (Voucher Codes) korrekt ins Tracking von easy.affiliate integriert werden. Der Gutschein wird als eigenes „Produkt“ mit negativem Preis erfasst – clientseitig und serverseitig. Dabei gilt immer: erst Conversion-Tracking, dann Basket-Tracking.

Das Vouchercode-Tracking kann sowohl zu statistischen Zwecken als auch zur Attribution verwendet werden. Bei der Attribution ist der Vouchercode im Administrationssystem zu einem Publisher zugeordnet. Löst ein User den Vouchercode ein und wird dieser am Trackingcode übergeben, dann wird der Sale automatisch dem definierten Publisher zugewiesen.

🔹 Kurzfassung

Für alle Trackingarten – egal ob clientseitig oder serverseitig, ob Conversion- oder Basket-Tracking – wird der Gutscheincode immer über den Parameter vc übergeben. Dieser wird im Conversiontracking per GET-Parameter (&vc=VOUCHERCODE) und im Baskettracking im jeweiligen Trackingobjekt im Feld additional mitgegeben, z. B. {'vc': 'VOUCHERCODE'}. Die Platzierung und Benennung ist immer identisch und verpflichtend für die korrekte Erfassung und ggfs Attribution exklusiver Gutscheine.


🔸 1. Clientseitiges Voucher-Tracking (JavaScript im Browser)

📌 Einsatzzweck

Erfasst eine Conversion (Bestellung) und die verwendeten Produkte inkl. Gutschein im Browser – ideal für klassische E-Commerce-Setups.


🧾 1.1 Conversion-Tracking (clientseitig)

(function() {
  var campaign_id = '1';
  var trigger_id = '1';
  var token = 'ORDER123';
  var turnover = '325.29'; // Netto-Gesamtbetrag nach Abzug des Gutscheins
  var descr = 'Bestellung';
  var currency = 'EUR';
  var attribution = '1';
  var storageKey = 'emid';
  var trackingDomain = 'pvn.beispiel.de';
  var emid = null;
  var trackingUrl = 'https://' + trackingDomain + '/trck/etrack/?campaign_id=' + campaign_id + '&trigger_id=' + trigger_id + '&token=' + token + '&descr=' + descr + '&currency=' + currency + '&turnover=' + turnover + '&attribution=' + attribution + '&t=js';
  emid = emid || window.localStorage[storageKey];
  if (emid) trackingUrl += '&emid=' + emid;
  var req = new XMLHttpRequest;
  req.withCredentials = true;
  req.open("GET", trackingUrl);
  req.send();
  req.onreadystatechange = function () {
    if (req.readyState === 4) eval(req.response);
  };
})();

🧾 1.2 Basket-Tracking mit Gutschein (clientseitig)

<script src="https://pvn.beispiel.de/trck/ebasket/ebasket.js"></script>
<script language="javascript">
  eamTrckAddBasketItem('1', 'ORDER123', '1', '002973000902', '1', '335.29', 'EMID', 'Samsung Fernseher', 'Elektronik', {'Farbe': 'Grau'});
  // Gutschein
  eamTrckAddBasketItem('1', 'ORDER123', '1', 'WINTER2025', '1', '-10.00', 'EMID', 'VOUCHER', 'Gutschein', {'vc': 'WINTER2025'});
  eamTrckSubmitBasket();
</script>

🔸 2. Serverseitiges Voucher-Tracking (API-Aufrufe vom Shopserver)

📌 Einsatzzweck

Wird genutzt, wenn das Tracking nicht im Browser erfolgt oder zusätzliche Sicherheit / Flexibilität benötigt wird. Ideal für SaaS, Mobile Apps oder Headless-Shops.


🧾 2.1 Conversion-Tracking (serverseitig)

Endpoint:

https://SUB-DOMAIN/trck/etrack/

Beispielaufruf:


GET https://pvn.beispiel.de/trck/etrack/?campaign_id=1&trigger_id=1&token=ORDER123&descr=Bestellung&currency=EUR&turnover=325.29&attribution=1&emid=abc123&t=json

Antwort:


{
  "order_inserted": true,
  "order_id": "ORDER123"
}

🧾 2.2 Basket-Tracking mit Gutschein (serverseitig)

Endpoint:


https://SUB-DOMAIN/trck/ebasket/

Beispielaufruf mit JSON im GET:


GET https://pvn.beispiel.de/trck/ebasket/?json=[{"campaign_id":"1","trigger_id":"1","token":"ORDER123","emid":"abc123","amount":"1","price":"335.29","article_number":"002973000902","productname":"Samsung Fernseher","category":"Elektronik","additional":{"Farbe":"Grau"}},{"campaign_id":"1","trigger_id":"1","token":"ORDER123","emid":"abc123","amount":"1","price":"-10.00","article_number":"WINTER2025","productname":"VOUCHER","category":"Gutschein","additional":{"vc":"WINTER2025"}}]

✅ Zusammenfassung

Methode Wann nutzen? Gutschein als Item Besondere Anforderung
JS-Conversion Client-Sided Conversiontracking ❌ (nur Umsatz) emid aus LocalStorage
JS-Basket Client-Sided Baskettracking eamTrckAddBasketItem, vc
Server-Conversion Server-Sided Conversiontracking ❌ (nur Umsatz) emid zwingend
Server-Basket Server-Sided Baskettracking JSON mit negativem price