Technische Implementierung Technische Implementierung: Schritt für Schritt Diese Seite dient als Roadmap für die Einrichtung deines Private Networks mit easy.Affiliate. Sämtliche Trackingrelevanten Dokus sind in unserem Dokusystem über die Suche zu erreichen. 1. Grundkonfiguration: Kampagnen anlegen Eine Kampagne ist das logische Gefäß für dein Partnerprogramm. In der Regel entspricht eine Kampagne einem Webshop oder einer spezifischen Ländereinheit. Legen Sie den Namen, die Ziel-URL und die grundlegenden Laufzeiten fest. Hier definierst du, welcher Shop für die Zuordnung der Sales verantwortlich ist. 2. Werbemittel (Creatives) bereitstellen Ohne Material können deine Partner nicht arbeiten. Hinterlege innerhalb der Kampagne: Banner: Klassische Image-Anzeigen in gängigen Formaten. Textlinks: Vorformulierte Links für Blogs oder Social Media. Product Feeds: (Optional) Falls deine Publisher Produktdaten (XML/CSV) benötigen. 3. Provisionslogik: Trigger definieren Hier legst du fest, wie viel Geld ein Publisher verdient. Ein Trigger erkennt das Attribut eines Sales und weist die passende Provision zu. Beispiel Neukunde vs. Bestandskunde: Unterschiedliche Prozentsätze basierend auf dem Kundenstatus. Aktionsbasierte Trigger: Höhere Provisionen für bestimmte Produktkategorien. 4. Onboarding: Publisher-Management Ein Netzwerk lebt von seinen Partnern. Einladung: Lade Publisher direkt über das System ein oder nutze die öffentliche Registrierungsseite. Verbindung: Publisher müssen mit der jeweiligen Kampagne verbunden (freigeschaltet) werden, damit sie Zugriff auf Links und Tracking haben. 5. Shop-Integration: Tracking-Code verbauen Damit easy.Affiliate weiß, wann ein Kauf stattgefunden hat, muss der Tracking-Code auf der "Danke-Seite" (Order Confirmation Page) deines Shops integriert werden. Er erfasst die Order-ID, den Warenkorbwert und ggf. die Trigger-Informationen. First-Party-Vorteil: Durch die Integration auf deiner Domain ist das Tracking extrem präzise. 6. Der eatms-Container (Tag-Management) Zusätzlich zum Tracking-Code integrierst du den eatms-Container im Shop. Funktion: Dieser fungiert als Container für Third-Party-Trackingcodes. Vorteil: Du kannst Skripte von Drittanbietern oder Partnern bequem über das easy.Affiliate Backend steuern, ohne den Quellcode deines Shops erneut bearbeiten zu müssen. Checkliste für den Go-Live Kampagne ist aktiv geschaltet? Mindestens ein Textlink/Banner ist hinterlegt? Provisions-Trigger sind getestet (greift der Neukunden-Bonus)? Testbestellung durchgeführt: Erscheint der Sale im Dashboard? eatms-Container feuert korrekt? Attribution & Tracking-Logik In diesem Kapitel erfährst du, wie easy.Affiliate Klicks und Sales einander zuordnet. Dank unseres First-Party-ID-Trackings sind wir unabhängig von unsicheren Third-Party-Cookies und bieten maximale Datengenauigkeit. 1. Das Herzstück: Die EMID Unser Tracking basiert auf einer eindeutigen Kennung, der EMID . Funktionsweise: Klickt ein User auf ein Werbemittel eines Publishers, wird er zum Zielshop weitergeleitet. Dabei wird die EMID automatisch als URL-Parameter an die Ziel-URL angehängt. Übergabe: Diese ID muss vom Shop-System aufgenommen und beim Abschluss des Kaufs an den Conversioncode übergeben werden. 2. Standard-Attribution: Last-Click Standardmäßig arbeitet easy.Affiliate nach dem Last-Click-Prinzip : Wird eine EMID beim Aufruf der Seite mitgeliefert, wird diese für die Attribution des Sales priorisiert. Der Publisher, dessen EMID zuletzt "geliefert" wurde, erhält die Provision. 3. Erweitertes Tracking via eatms-Container Ist der eatms-Container in deinem Shop verbaut, wird das Tracking noch robuster. Das System setzt dann automatisch zwei wichtige First-Party-Cookies: EMID-Cookie: Speichert die ID direkt in deiner Domain als First-Party-Cookie. TRS-Cookie: Speichert die aktuelle Session-Information des Nutzers. Der Vorteil des Cookie-Backups: Sollte ein Nutzer den Shop später ohne direkten Affiliate-Link erneut besuchen (z. B. durch Direkteinstieg am nächsten Tag), greift unser System auf das EMID-Cookie zurück. So stellen wir sicher, dass Sales auch dann korrekt zugeordnet werden, wenn im Moment der Conversion keine EMID mehr in der URL steht. 4. Individuelle Attributions-Modelle Dank der EMID-Logik hast du als Advertiser theoretisch die volle Freiheit: Du könntest technisch gesehen auch eigene Attributions-Logiken umsetzen (z. B. First-Click ), indem du die erste EMID eines Nutzers dauerhaft speicherst und Folgende ignorierst. Da unser System die EMID transparent übergibt, behältst du die volle Kontrolle über deine Datenstrategie. 🆘 Sonderwünsche & Support Du planst ein spezielles Attributions-Modell (z. B. Customer Journey Multi-Touch) oder hast Fragen zu komplexen Setups? Wende dich bitte direkt an unsere Experten unter: 📧 support@easy-m.de Trackingeinrichtung einer Kampagne in easy.AFFILIATE mit Basket-Tracking Um das Tracking in easy.AFFILIATE zu gewährleisten, sind lediglich zwei Einbauschritte notwendig. Das System generiert beim Redirect von der Publisher-Seite auf Ihren Shop eine ID, mit der der Sale später erfasst werden kann. Diese ID (nachfolgende EMID genannt) wird shopseitig von einem Code-Snippet aufgenommen und im Local Storage sowie in einem Cookie gespeichert. Bei der Conversion-Erfassung wird diese EMID über ein anderes Code-Snippet zurück an das Trackingsystem gespielt. 1. Code-Snippet (einzubauen auf jede Seite) Dieser Code nimmt die EMID auf, die im Redirect erzeugt wird, und schreibt sie in den LocalStorage sowie in einen Cookie (jeweils mit dem Key emid ). Einbauort: Auf sämtlichen Seiten des Shops (am einfachsten im Footer-Template). (function() { // The expiration time of the cookie (normally 60 days) // Die Laufzeit des Cookies (im Regelfall 60 Tage) var emidCookieExpirationDays = 60; // Please do not change below here! // Ab hier bitte nicht verändern! var getKey = 'emid'; var getValue = getParameterByName(getKey); var storageKey = 'emid'; var emidCookieKey = 'emid'; var emidCookieDomain = window.location.hostname; 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} })(); 2. Basket-Conversion-Code (einzubauen auf die Checkout-Successful-Seite) Dieser Code erfasst die Bestellung und übergibt sie an das Trackingsystem. Einbauort: Ausschließlich auf der Bestellbestätigungsseite. (function () { // please insert the campaign_id here - you received it by your account manager var campaign_id = 'CAMPAIGN_ID'; // please insert the unique ordernumber of the purchase here var token = 'ORDERTOKEN'; // insert EVERY purchased item into the basket variable "basket" var basket = [ { article_number: "ARTICLE_NUMBER_1", amount: "ARTICLE_AMOUNT_1", price: "SINGLE_ARTICLE_TURNOVER_1", productname: "ARTICLE_NAME_1", category: "ARTICLE_CATEGORY_1" }, { article_number: "ARTICLE_NUMBER_2", amount: "ARTICLE_AMOUNT_2", price: "SINGLE_ARTICLE_TURNOVER_2", productname: "ARTICLE_NAME_2", category: "ARTICLE_CATEGORY_2" }, { article_number: "ARTICLE_NUMBER_N", amount: "ARTICLE_AMOUNT_N", price: "SINGLE_ARTICLE_TURNOVER_N", productname: "ARTICLE_NAME_N", category: "ARTICLE_CATEGORY_N" } ]; // Please insert the URL / Domain des Systems var trackingDomain = 'DOMAIN-DES-SYSTEMS'; // Please do not change below here! var storageKey = 'emid'; var trigger_id = '1'; var basketUrl = 'https://' + trackingDomain + '/trck/ebasket/ebasket.js'; emid = window.localStorage[storageKey]; if (typeof emid !== 'undefined') { var req = new XMLHttpRequest; req.withCredentials = true; req.open("GET", basketUrl), req.send(), req.onreadystatechange = function () { (req.readyState === 4) ? function () { eval(req.response); basket.forEach(function(elem) { eamTrckAddBasketItem( campaign_id,token,trigger_id,encodeURIComponent(elem.article_number),elem.amount,elem.price,emid,encodeURIComponent(elem.productname),encodeURIComponent(elem.category),{} ); }); eamTrckSubmitBasket(); }() : null }; } })(); Wichtige Hinweise zum Conversion-Code: Platzhalter ersetzen: Ersetzen Sie CAMPAIGN_ID , ORDERTOKEN und DOMAIN-DES-SYSTEMS durch Ihre spezifischen Daten. Dynamische Inhalte: Die Variable basket muss dynamisch mit allen Artikeln der Bestellung befüllt werden. Mengensteuerung: Jedes Produkt sollte nur einmal im Array erscheinen; die Anzahl wird über ARTICLE_AMOUNT gesteuert. Netto-Werte: Der Umsatz ( price ) muss als Netto-Einzelpreis (ohne Steuern und Versandkosten) übergeben werden. Erläuterung der Platzhalter: Platzhalter Beschreibung CAMPAIGN_ID Fester Wert von Ihrem Account-Manager. ORDERTOKEN Die dynamische Bestellnummer aus Ihrem Shop. DOMAIN-DES-SYSTEMS Die Domain Ihres easy.AFFILIATE-Systems. ARTICLE_NUMBER_N Artikelnummer des jeweiligen Produkts. ARTICLE_AMOUNT_N Anzahl des jeweiligen Produkts im Warenkorb. SINGLE_ARTICLE_TURNOVER_N Netto-Umsatz des Einzelprodukts. ARTICLE_NAME_N Name des Produkts. ARTICLE_CATEGORY_N Kategorie des Produkts.