# First-Party-Tracking

# Übersicht und Voraussetzungen

## Notwendigkeit des First-Party-Trackings

Datenschutz- und Cookieregulierungen der Browser haben aktuell wichtige Einflüsse auf das Tracking im Affiliate Marketing. Dieses Dokument beschreibt das Best Practice Trackingkonzept der easy.MARKETING für alle Softwaremodule in Bezug zu Einzelkampagnen und Netzwerksysteme.

So ist Third-Party-Tracking technisch sowie rechtlich ein Auslaufmodell, dem man mit der Umstellung auf ein First-Party-Tracking mit einer Shop-Subdomain effektiv begegnen kann. Nur mit der Umstellung auf ein First-Party-Trackingkonzept sind weiterhin hohe Trackingquoten erzielbar.

Ohne die Umstellung auf das hier beschriebene First-Party-Tracking werden kurz- bis mittelfristig Performance-Messverluste von bis zu 70% die Folge sein. Diese Verluste tragen schon heute zu einem immens erhöhten Aufwand und einem Verlust der Partnerprogramm-Attraktivität bei. Viele Publisher gehen mittlerweile dazu über, nur noch Partnerprogramme einzubinden, die ein First-Party-Tracking implementiert haben. First-Party-Tracking über eigene Subdomains werden hierbei sehr positiv bewertet.

## Voraussetzungen im Datenschutz

Die Anforderung an ein datenschutzkonformes Tracking ist, dass User für die Verarbeitung von personenbezogenen Daten, wozu auch das Setzen und Auslesen von Cookies gehören, vorab ihr Einverständnis geben, wenn die Daten zur Bildung von Nutzerprofilen für Zwecke der Werbung oder Marktforschung erhoben werden.

Im easy.MARKETING System betrifft dies das Tracken der Customer Journey und der Multiattribution, also alle Prozesse, für die mehrere Touchpoints der User gemessen und vorgehalten werden müssen.

Für die “einfache” Zuordnung von Transaktionen auf Basis des Last Clicks ist bis zum 1.12.2021 und dem damit einhergehenden Inkrafttreten des TTDSG kein Einverständnis des Users notwendig, da hier kein Nutzerprofil aufgebaut wird. Das Tracking erfolgt nach dem Data Light Ansatz des Affiliate Marketings, bei dem nur die nötigsten Informationen erhoben und verarbeitet werden. Als rechtliche Grundlage für die Verarbeitung von personenbezogenen Daten kann das überwiegend berechtigte Interesse angenommen werden. (siehe hierzu auch: [https://www.easy-m.de/post/bvdw-whitepaper-zur-datenschutzrechtlichen-einordnung-des-affiliate-marketings](https://www.easy-m.de/post/bvdw-whitepaper-zur-datenschutzrechtlichen-einordnung-des-affiliate-marketings)

Ab dem 1.12.2021 ist auch für diese Trackingform eine Einverständnis erfolderlich, wenn hierdurch Cookies auf dem Endgerät des Nutzers gespeichert werden.

(siehe hierzu auch: [https://easy-m.de/blog/datenschutz/ttdsg-datenschutzgesetz-kommt-im-dezember-2021](https://easy-m.de/blog/datenschutz/ttdsg-datenschutzgesetz-kommt-im-dezember-2021))

## Umsetzung Datenschutz

Die technische Umsetzung der Anforderungen des Datenschutzes erfolgt bei der easy.AFFILIATE Software durch die Verwendung von zwei unterschiedlichen Cookies.

### 1. Data Light Cookie (TRSCJ)

Beim ersten Cookie, welches nach dem Click auf das Werbemittel vom Server der easy.AFFILIATE gesetzt wird, handelt es sich um einen Data Light Cookie, in dem nur die notwendigsten Informationen gespeichert werden (A). Dieses Cookie wird bei einem erneuten Click überschrieben. Es wird kein Nutzerprofil aufgebaut.

### 2. Profil Cookie (TRS)

Das zweite Cookie wird erst geschrieben, wenn der User sein Einverständnis im Consent Layer auf der jeweiligen Shopseite gegeben hat (X). Hierzu wird durch den Tagmanager des Shops nach einer positiven Consenteinstellung ein Trackingcontainer oder ein Scriptcode des Affiliate Systems nachgeladen (B1/2), welcher/s das Cookie schreibt. Durch ihn können Userprofile aufgebaut und ausgewertet werden.

Um die Einwilligungen auf Shopseite rechtskonform umzusetzen bietet sich eine Consent Management Plattform (CMP) an, die das Transparency &amp; Consent Framework (TCF) in der Version 2 des IAB Europe [https://iabeurope.eu/transparency-consent-framework/](https://iabeurope.eu/transparency-consent-framework/) unterstützt. Damit alle datenverantwortlichen Systeme kompatibel miteinander sind, empfehlen wir außerdem, dass auch Trackingweiche und das Tag-Management TCF2 registriert sind und mit dem Standard umgehen können.

Unser System ist bereits TCF2.0 kompatibel, kann aber auch mit anderen Verfahren umgehen. Sollte unser System bei euch auch als Tag-Manager für das Nachladen von weiteren Codes verantwortlich sein, so teilt uns bitte mit, welches Verfahren ihr einsetzt.

Damit die easy-MARKETING Software datenschutzkonform betrieben werden kann, ist sie in der Datenschutzerklärung und der CMP zwei Mal aufzuführen.

1. Unter der Rubrik “Abrechnung” unter dem legitimen Interesse, mit Opt-Out für Data Light Cookie
2. Unter der Rubrik “Analyse” nach dem Consent des Users, mit Opt-In für profilbildende Maßnahmen

## Voraussetzungen für First Party Tracking

Safari, Firefox, Google und Co. haben mit ihren Änderungen in den Browsern dem Third-Party Cookie den Kampf angesagt. Mit der Intelligent Tracking Prevention (ITP), dem Enhanced Tracking Protection (ETP) und den SameSite Cookie Policies erkennen und blockieren die Browser Drittanbieter Cookies und verhindern somit die Weitergabe von personenbezogenen Daten an externe Systeme und Dienstleister. Egal welche Datenschutzeinstellungen der User auf der jeweiligen Website tätigt. Um dies zu umgehen und ein für das Affiliate Marketing notwendiges, einwandfreies Tracking zu ermöglichen, ist es notwendig, das Tracking auf First-Party zu betreiben.

Ohne dieses einwandfreie Tracking ist ein erheblicher Mehraufwand durch Nachbuchungen auf der einen Seite und ein immenser Verlust der Attraktivität des Partnerprogramms für Affiliates bereits in der Gegenwart aber noch ausgeprägter in der kurz- bis mittelfristigen Zukunft zu erwarten.

## Umsetzung des First Party Trackings

Um den Browserregulierungen zu begegnen, sind verschiedene Anpassungen an unterschiedlichen Stellen des Systems und der Prozesse möglich. Um höchstmögliche Trackinggenauigkeit zu gewährleisten, sind alle Punkte umzusetzen.

### 1. First-Party Domain des Affiliate Systems

Das Affiliate System wird auf, von easy.MARKETING angemieteten, Servern gehostet. Um das System auf einer First-Party Domain (www.shop.de) zu betreiben, muss eine Sub-Domain des Shops auf die IP-Adresse der Affiliate Software geroutet werden. Der Name der Sub-Domain kann theoretisch beliebig gewählt werden. Es ist jedoch darauf zu achten, dass sie nicht von Adblockern als werberelevant eingestuft und geblockt wird. Wir empfehlen die Sub-Domain pvn.shop.de.

### 2. Click-ID (emid) Tracking

Die Click-ID (emid) ist eine dynamische Zeichenfolge, welche beim Click des Users auf ein Werbemittel generiert wird. Diese wird als URL-Parameter an den Shop und dessen Trackingweiche weitergegeben. Die Trackingweiche speichert diese ID zum jeweiligen User in seiner Datenbank oder seinem eigenen Cookie ab und gibt sie nach erfolgreicher Transaktion wieder an das Affiliate System zurück.

### 3. Conversion-Tracking

Erfolgreiche Transaktionen werden über einen clientseitigen Trackingcode sowie im Idealfall ergänzend serverseitig vom Shop an die Affiliate Software übergeben. Bedingung hierfür ist das Click-ID (emid) Tracking, da serverseitig kein Aufruf des Cookies und somit auch keine Zuordnung erfolgen kann.

## Übersicht der technischen Maßnahmen seitens des Betreibers

### 1. Einrichtung der Sub-Domain

a) Weiterleitung dieser auf die IP-Adresse des Affiliate Systems (Die IP-Adresse wird Ihnen durch die easy.MARKETING bereitgestellt)

b) (optional) Anlegen von zwei TXT-Records um den Mailversand zu ermöglichen (Diese TXT-Records erhalten Sie während des SetUps)

### 2. Zweimaliger Einbau des easy.MARKETING Systems in die Datenschutzerklärung sowie in die Routinen der Consent Management Plattform

a) unter der Rubrik Abrechnung unter dem legitimen Interesse, mit Opt-Out für Data Light Cookie

b) unter der Rubrik Analyse nach dem Consent des Users, mit Opt-In für profilbildende Maßnahmen

### 3. Einbau General-Tag

a) Tracking-Container auf allen Seiten des Shops

oder

b) Scriptcode auf allen Seiten des Shops

### 4. Einbau des Trackingcodes

a) Trackingcode für Einzeltransaktionen im Bestellabschlussprozess des Shops

oder

b) Basketcode für Warenkörbe im Bestellabschlussprozess des Shops

### 4.1 (optional) Einbau des Serversided Tracking Codes

Um die Genauigkeit des Trackings weiter zu erhöhen und nicht auf die Callbacks der Browser-Clients angewiesen zu sein, kann das Serversided Tracking implementiert werden.

## Prozess

[![Best Practice Trackingprozess easyM  (1).png](https://docs.easy-m.de/uploads/images/gallery/2026-04/scaled-1680-/best-practice-trackingprozess-easym-1.png)](https://docs.easy-m.de/uploads/images/gallery/2026-04/best-practice-trackingprozess-easym-1.png)

# First-Party-Tracking Konzept

## Einleitung

First-Party Tracking wird zunehmend wichtiger, da sonst die Gefahr besteht, Trackingrelevante Parameter durch Browserregulierungen zu verlieren. Besonders wichtig ist hierbei, dass Daten beim Austausch zwischen zwei Seiten erhalten bleiben, da sonst Sales den Publishern nicht korrekt zugeordnet werden können.

## Wie wird First-Party Tracking realisiert?

Hierfür werden zwei entscheidende Dinge benötigt. Einerseits die “EMID” welche über das Partnerprogramm an die Landingpage übergeben wird. Zusätzlich eine Sub-Domain, welche dazu genutzt wird, um die Trackingrelevanten Cookies auf First-Party-Ebene zu setzen und anschließend wieder auszulesen.

**Technisch:**

Die easy MARKETING Suite wird auf einem Server der easy MARKETING installiert, der durch die Sub-Domain der Advertiser-Website erreichbar ist. Werden nun Cookies auf der Hauptseite gesetzt, können diese Informationen in den Cookies von der Sub-Domain ausgelesen werden. Die EMID wird über das Partnerprogramm an die Domain des Advertisers übergeben und dort über eine Script-Variante in ein Cookie gespeichert. Welche Script-Varianten es gibt, wird weiter unten im Detail erläutert.

**Fallbeispiel:**

Ein Publisher wirbt für ein Produkt und stellt einen Klicklink zur Verfügung. Ein User klickt auf diesen Link, wird über die Sub-Domain geleitet und es wird ein Cookie gesetzt. Anschließend wird die Landingpage aufgerufen. Als Zielparamter wird an die Lanmigpage der Wert “?emid=” angehangen und über ein Script in ein Cookie des Nutzers gespeichert. Der User hält sich nun auf der Website auf und schließt nach einiger Zeit seinen Browser ohne etwas zu kaufen. Nach 10 Tagen besucht der User die Website erneut, ohne diesmal über ein Klicklinks genutzt zu haben, und kauf diesmal ein Produkt. Da der Cookie beim User noch existiert, durch die Sub-Domain ausgelesen und dem Publisher zugeordnet werden kann, erhält dieser hierfür seine Provision.

Im Third Party Kontext wäre der Cookie des Nutzers nicht durch das Affiliate Netzwerk auslesbar gewesen und der Sale hätte dem Publisher nicht zugeordnet werden können, was seine Moral, Werbung für das Produkt zu machen, gesenkt hätte.

In diesem Dokument werden nachfolgend drei Codesnippets aufgeführt:

- Tracking Tag: Dieser wird dazu genutzt, um die Publisher bezogene Klick-Referenz beim Nutzer zu setzen, damit dieser später wiedererkannt werden kann. Dieser soll, im besten Fall, auf allen Seiten des Onlineshops verbaut werden.
- Conversion Trackingcode: Dieser wird im Onlineshop auf der Bestellabschlusseite verbaut und dient der Erfassung von Transaktionen (nicht des Baskets).
- Baskettrackingcode: Dieser wird im Onlineshop auf der Bestellabschlusseite verbaut und dient zur Erfassung des Warenkorbes. Somit könnten für bestimmte Artikel andere Vergütungslogiken angewendet werden.

**Es muss vorab festgelegt werden, welche der beiden Trackingvarianten (Conversion- oder Baskettracking) zum Einsatz kommt. Es ist nicht möglich, beide parallel zu nutzen.**

## Eatms-Container

### Einleitung

Zur Identifizierung und Wiedererkennung des Nutzers und Einbindung von weiteren dynamischen Code, kann der eatms-Container verbaut werden. Hierfür muss der entsprechende JavaScript-Code auf jeder Seite verbaut werden. Wenn der eatms-Container verbaut wird, muss der Tracking-Tag Script-Code nicht verbaut werden.

> Das eatms.js Script sollte, um eine Reibungslose Funktionalität der Website zu gewährleisten, an das Ende des “
> 
> ” - Elements und nicht Innerhalb des “” Elements geschrieben werden.

Wenn der eatm-Container zusätzlich dazu genutzt werden soll, um Tags auszuspielen, ist es wichtig diesen mit den nötigen Zusatzinformationen anzureichen. Beispiele hierfür wären die Kampagnen-ID, das Produkt, die Landingpage oder auch die Bestätigung des Consent beim User.

- Kampagne -&gt; “&amp;campaign\_id=”
- Produkt -&gt; “&amp;product=”
- Seite -&gt; “&amp;pagetype=”
- Kategorie → “&amp;category=”
- Nachladen von Tags verhindern -&gt; “&amp;disable\_tags=true”

### JavasScript-Code

```text
<script src="//SUB-DOMAIN*/trck/etms/eatms.js"></script>

```

\*der Platzhalter “SUB-DOMAIN” muss durch die korrekte Domain des Partnerprogramms ersetzt werden.

**Beispiel**Ein verbauter eatm-Container mit Zusatzinformationen:

```text
<script src="//SUB-DOMAIN/trck/etms/eatms.js?campaign_id=1&product=product123&pagetype=landingpage&disable_tags=true"></script>

```

## Wie kann der Consent an den eatms Container übergeben werden?

Der eatms-Container kann auf verschiedene Weisen den Consent erhalten, um sicherzustellen, dass keine Cookies oder Tags durch den Container gealden werden, ohne dass der Benutzer seine Zustimmung gegeben hat. Es gibt grundsätzlich zwei verschiedene Möglichkeiten, dies umzusetzen.

## GDPR und GDPR\_CONSENT Parameter

Der eatms-Container kann die Standards “GDPR” und “GDPR\_CONSENT” interpretieren, die als Signale für den Consent dienen. Hierfür muss die entsprechende Vendor\_id in den Systemeinstellungen des Programms hinterlegt werden. Falls keine spezifische Vendor\_id hinterlegt wurde, greift der Container auf die Vendor\_id der easy Marketing GmbH zurück. Auf diese Weise reagiert der Container entsprechend auf das vorliegende Consent-Signal und handelt entsprechend der hinterlegten Einstellungen.

Beispiel:

&amp;gdrp=1&amp;gdrp\_consent=COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw

## Aufruf nach Consent

Es ist möglich, den eatms-Container erst dann aufzurufen, wenn der Benutzer seine Einwilligung dazu gegeben hat. In diesem Fall wird der Container nur geladen, wenn der Benutzer beispielsweise seine Zustimmung zum Marketing gegeben hat.

## Wie kann ich verhindern, dass Tags des Tag-Managers nachgeladen werden, wenn beispielsweise kein Consent dafür vorliegt?

**DISABLE\_TAGS PARAMETER**

Der eatms-Container kann die Variable "disable\_tags=true" verarbeiten. Wenn diese Variable übergeben wird, werden keine Tags ausgeführt. Falls entsprechender Consent vorliegt, kann die Variable entweder mit "disable\_tags=false" übergeben oder komplett entfernt werden, um das Ausführen von Tags zu ermöglichen.

# Tracking-Tag

## Einleitung

Dieser Code ist für die identifizierung und wiedererkennung des Nutzers zuständig. Hierfür wird ein entsprechendes Cookie gesetzt. Dieser Code sollte im besten Fall auf allen Seiten verbaut werden. Wird der eatms Container verbaut, muss dieser Tag nicht verbaut werden.

## JavaScript-Code

```text
(function() {

    var getKey = 'emid';

    var storageKey = 'emid';

    var emidCookieExpirationDays = 60;

    var emidCookieKey = 'emid';

    var emidCookieDomain = 'Subdomain';

    var getValue = getParameterByName(getKey);

    if(getValue) {

        window.localStorage.setItem(storageKey, getValue);

        setEmidCookie(emidCookieKey, getValue, emidCookieExpirationDays,  emidCookieDomain);

    }




    function setEmidCookie(cname, cvalue, exdays, cdomain) {

      var d = new Date();

      d.setTime(d.getTime() + (exdays * 24*60*60*1000));

      var expires = "Expires="+ d.toUTCString();

      document.cookie = cname + "=" + cvalue + ";" + expires + ";Path=/;SameSite=none;Domain=" + cdomain + ";Secure";

    }




    function getParameterByName(e,n){n||(n=window.location.href),e=e.replace(/[[]]/g,"\$&");var r=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(n);return r?r[2]?decodeURIComponent(r[2].replace(/\+/g," ")):"":null}

})();


```

## Beschreibung

Die Variable “emidCookieDomain” wird entsprechend der Sub-Domain initialisiert, muss aber für das entsprechende Partnerprogramm angepasst werden.

Nach der Definition der Funktion werden die Variablen initialisiert. Die Variable “getKey” und “storageKey” werden beide mit dem Wert “emid” initialisiert. Um die Variable “getValue” zu befüllen, wird die Funktion “getParameterByName” aufgerufen. Diese liest die URL des Browsers, sowie den Wert eines übergebenen Parameters aus.

Dies bedeutet, dass in diesem Fall im Click der Parameter “?emid=” mit dem Wert “\[24-Stellige action\_id\]” übergeben und dieser in die Variable “getValue” geschrieben wird. In der nächsten Zeile wird geprüft, ob die Variable “getValue” befüllt ist. Wenn dies der Fall ist, wird an die “emid” im localStorage des Browsers der Wert geschrieben.

Zusätzlich zum LocalStorage-Tracking wird ein Cookie auf die Domain, welche in der Variable “emidCookieDomain” definiert wurde, gesetzt. In dem Cookie wird der Wert des Parameters “?emid=” geschrieben. Der Cookie wird, wie in “emidCookieExpirationDays” definiert, standardmäßig auf 60-Tage gesetzt. Dies beeinflusst nicht die Provisionierung der Partner.

# Conversion-Trackingcode

## Einleitung

Dieser Trackingcode ist für die Erfassung der Conversion / Bestellung zuständig und ist auf der Bestellabschlussseite auszugeben.

```text
(function() { 

    var campaign_id = 'CAMPAIGN_ID';

    var trigger_id = 'TRIGGER_ID';

    var token = 'ORDERTOKEN'; 

    var turnover = 'TURNOVER';

    var descr = 'DESCRIPTION';

    var currency = 'EUR';

    var storageKey = 'emid';

    var trackingDomain = 'SUB-DOMAIN';

    /* please insert the EMID here which was previously transfered to you via GET-Parameter to the landingpage */

    /* if you are not able to store and insert the EMID here, please leave this line as it is */

    var emid = null;

    var attribution = '1';


   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 () { (req.readyState === 4) ?

eval(req.response) : null };

})();

```

### Wichtiger Hinweis zur emid:

Der Kunde ist dafür verantwortlich, die emid zu speichern (z.B. über LocalStorage oder einen anderen Mechanismus). Die emid wird als GET-Parameter (z.B. ?emid=12345) an die Landingpage übermittelt. Der Tracking-Code greift auf diese gespeicherte emid zu und verwendet sie auf der Bestellabschlussseite. Falls die emid nicht gespeichert wurde, kann sie nicht im Tracking verwendet werden und die Transaktion wird nicht korrekt erfasst.

## Variablenbeschreibung

Zu Beginn des Codes werden die Variablen initialisiert. Die rot hinterlegten Werte müssen durch die entsprechenden Werte ausgetauscht werden. Die Variablen werden entsprechend der Tabelle befüllt:

<table id="bkmrk-variable-beschreibun"><thead><tr><th align="left">VARIABLE</th><th align="left">BESCHREIBUNG</th></tr></thead><tbody><tr><td align="left">**CAMPAIGN\_ID**</td><td align="left">Hier wird die Kampagnen ID hinterlegt.</td></tr><tr><td align="left">**TRIGGER\_ID**</td><td align="left">Hier wird die Trigger ID hinterlegt.</td></tr><tr><td align="left">**TOKEN**</td><td align="left">Hier wird die Bestellnummer / Order ID hinterlegt.</td></tr><tr><td align="left">**TURNOVER**</td><td align="left">Hier wird der Netto- Bestellwert hinterlegt. Hieraus resultiert ggf. die Provision für den Publisher.</td></tr><tr><td align="left">**DESC**</td><td align="left">Hier kann eine Beschreibung hinterlegt werden.</td></tr><tr><td align="left">**CURRENCY**</td><td align="left">Hier wird die aktuelle Währung hinterlegt. Dies findet bspw. dann Anwendung, wenn ein Shop in der Schweiz betrieben wird, aber seine Waren in € verkauft. Wird das Feld leer gelassen wird die Währungseinstellung des Partnerprogramms übernommen.</td></tr><tr><td align="left">**STORAGEKEY**</td><td align="left">Hier wird der Localstorage Key hinterlegt in dem sich die EMID befindet.</td></tr><tr><td align="left">**TRACKINGDOMAIN**</td><td align="left">Hier wird die Domain der Partnerplattform hinterlegt.</td></tr><tr><td align="left">**ATTRIBUTION**</td><td align="left">Hier wird die Attribution der Order hinterlegt. Der Wert wird im Dezimalformat und einem Punkt als Trennzeichen übergeben. (50% = 0.50)</td></tr><tr><td align="left">**EMID**</td><td align="left">Wird mit dem Wert des Parameters emid befüllt, welcher von easy.affiliate über den Clicklink an die Landingpage übergeben wird.</td></tr></tbody></table>

# Ebasket Trackingcode

## Einleitung

Dieser Trackingcode dient der Erfassung des Warenkorbes und muss im

-Tag der Bestellabschlussseite des Shops eingebaut werden. Die Variablen der Funktion “eamTrackAddBasketItem()” müssen mit den entsprechenden Werten befüllt werden. ## Implementierung

```text
<script src="https://SUB-DOMAIN/trck/ebasket/ebasket.js"></script>

<script language="javascript">

    /* muss für jeden Artikel im Warenkorb erstellt werden */

        eamTrckAddBasketItem(KAMPAGNEN-ID, TOKEN, TRIGGER_ID, ARTICLE_NUMBER, AMOUNT, PRICE, EMID, PRODUCTNAME, CATEGORY, { 'variable' : 'VARIABLENINHALT', 'variable_2' : 'VARIABLENINHALT_2' })

    /* Ende: muss für jeden Artikel im Warenkorb erstellt werden */

    eamTrckSubmitBasket();

</script>

```

**Beispiel**

```text
<script src="https://pvn.beispiel.de/trck/ebasket/ebasket.js"></script>

<script language="javascript">

    eamTrckAddBasketItem('1', '12345', '1', '002973000902', '1', '335.29', '5eeb0e0dabf7ad282b28c4a2', 'Samsung Fernseher', 'Unterhaltungselektronik', {Farbe' : 'Hellgrau'});

    eamTrckAddBasketItem('1', ‘12345', '1', '000657001803', '1’, 25.13, 5eeb0e0dabf7ad282b28c4a2, 'TV-WANDHALTER’, `Wohnzimmer`, {Farbe' : 'Schwarz', 'Unterkategorie' : 'Tv Halterung'});

    eamTrckSubmitBasket();

</script>

```

## Variablenbeschreibung

Die Funktion wird mit Parametern, entsprechend der Tabelle befüllt:

<table id="bkmrk-variable-beschreibun-1"><thead><tr><th align="left">VARIABLE</th><th align="left">BESCHREIBUNG</th></tr></thead><tbody><tr><td align="left">**CAMPAIGN\_ID**</td><td align="left">Hier wird die Kampagnen ID hinterlegt.</td></tr><tr><td align="left">**TOKEN**</td><td align="left">Hier wird die Bestellnummer / Order ID hinterlegt.</td></tr><tr><td align="left">**TRIGGER\_ID**</td><td align="left">Hier wird der Trigger ID hinterlegt.</td></tr><tr><td align="left">**ARTICLE\_NUMBER**</td><td align="left">Wird mit der jeweilige Produkt-ID befüllt.</td></tr><tr><td align="left">**AMOUNT**</td><td align="left">Wird mit der Anzahl ersetzt, wie oft das entsprechende Produkt gekauft wurde.</td></tr><tr><td align="left">**PRICE**</td><td align="left">Wird mit dem NETTO Preis des einzelnen Produkts befüllt.</td></tr><tr><td align="left">**EMID**</td><td align="left">Wird mit dem Wert des Parameters emid befüllt, welcher von easy.affiliate über den Clicklink an die Landingpage übergeben wird.</td></tr><tr><td align="left">**PRODUCTNAME**</td><td align="left">Wird mit dem Produktnamen befüllt.</td></tr><tr><td align="left">**CATEGORY**</td><td align="left">Hier wird die Produktkategorie hinterlegt.</td></tr></tbody></table>

**Additional Parameter:**

Für die Aufnahme weiterer Parameter, müssen diese im Code, in die geschwungenen Klammern, kommasepariert aufgenommen werden. Der frei wählbare Name der Variable wird mit Apostrophe eingeleitet. Es folgt ein Doppelpunkt und anschließend der Wert der Variable als String, ebenfalls in Apostrophe.

<table id="bkmrk-variable-beschreibun-2"><thead><tr><th align="left">VARIABLE</th><th align="left">BESCHREIBUNG</th></tr></thead><tbody><tr><td align="left">**Deklaration**</td><td align="left">`{'key' : 'VALUE'}`</td></tr><tr><td align="left">**Beispiel**</td><td align="left">`{'Farbe' : 'blau', 'Brand' : 'Samsung'}`</td></tr></tbody></table>

## Gutscheinimplementierung

Bei vielen Shops werden den Usern Gutscheine angeboten um Rabatte zu gewähren. Oftmals werden diese Gutscheine mit in die Berechnung von Vergütungen eingerechnet.

### Rabattgutscheine:

Für Rabattgutscheine wird ein zusätzliches Basketitem mit der Funktion eamTrckAddBasketItem(); hinzugefügt. Der abzuziehende Betrag wird als negativer turnover hinterlegt.

**Beispiel:**

```text

<script src="https://pvn.beispiel.de/trck/ebasket/ebasket.js"></script>

<script language="javascript">

    eamTrckAddBasketItem('1', ‘12345’, ‘1', ‘002973000902’, '1’, '335.29', '5eeb0e0dabf7ad282b28c4a2', 'Samsung Fernseher', 'Unterhaltungselektronik', {'Farbe' : 'Hellgrau'});

    eamTrckAddBasketItem('1', ‘12345’, ‘1', 'VOUCHERCODE', '1’, '-10.00', '5eeb0e0dabf7ad282b28c4a2', 'VOUCHER', 'Winteraktion',{“vc”: “VOUCHERCODE”});

    eamTrckSubmitBasket();

</script>

```