Einstellungen des WordPress-Plugins
Die Reiter unter „affilinode“ → „Einstellungen“: Cache, Darstellung, Hinweis, Länder, Geolocation, Klick-Tracking an Analytics und mehr.
In WordPress findest du die Einstellungen unter „affilinode“ → „Einstellungen“, aufgeteilt in Reiter. Im Multisite gibt es sie zusätzlich in der Netzwerkverwaltung; jede Unterseite kann einzelne Werte mit „Netzwerk-Wert verwenden“ übernehmen oder überschreiben.
Die Reiter
- „API-Zugang“: „API-Schlüssel“, „Webhook-Secret“, „Demo-Modus“ (lokale Beispieldaten statt der API) und „Standard-Land“.
- „Cache & Performance“: „Cache-Dauer (Minuten)“ – danach werden Daten weiter ausgeliefert und im Hintergrund aktualisiert. „Maximales Preisalter (Stunden)“ – ältere Preise werden ausgeblendet, stattdessen erscheint „Aktuellen Preis ansehen“; Amazon-Preise nie älter als 24 Stunden, je Box Attribut max_age. „Seiten-Caches nach Produktänderungen leeren“ und „Cloudflare-API-Token (optional)“, darunter die erkannten Seiten-Caches und „Seiten-Caches jetzt leeren“ (siehe unten).
- „Darstellung“: „Ersatzprodukt anzeigen“, „Farbschema“, „Akzentfarbe“, „Button-Farbe“, „Button-Farbe beim Überfahren“, „Button-Größe“, „Eckenradius (px)“, die Badge-Farben, „Eigener Button-Text“ (mit Platzhalter {shop}), „Produkttitel in Boxen“, „Preissignale anzeigen“, „Amazon-Verkaufsrang anzeigen“, „Amazon-Buttons: direkt in den Amazon-Warenkorb“, „Alternativen unter Produktboxen zeigen“, „‚Auf einen Blick‘ unter Produktboxen zeigen“, „Mini-Karte über Textlinks“, „Strompreis für Folgekosten (ct/kWh)“, „Wasserpreis für Folgekosten (€/m³ inkl. Abwasser)“, „Deals als RSS-Feed“, „Strukturierte Daten (schema.org) ausgeben“, „Klicks je Box-Art zählen“, „Links in neuem Tab öffnen“, „Platznummern in Listen-Grids“ und „Eigenes CSS“.
- „Affiliate-Hinweis“: „Affiliate-Hinweis anzeigen“, eigenes Label statt „Anzeige“, eigener „Hinweistext“, „Position“, „Link zur Transparenzseite“, „Amazon-Partnerhinweis“, „Hinweis auch bei Buttons“ sowie „Zeitpunkt der Preisaktualisierung“ („Preis aktualisiert vor 2 Std.“ je Angebot: relativ, Datum und Uhrzeit oder aus) und „Position der Aktualisierungszeit“ (unter dem Preis oder nur im Preishinweis).
- „Sprachen & Länder“: „Land je Sprache“ – gilt nur ohne Geolocation (siehe „Mehrsprachige Websites“).
- „Laden & Geolocation“: „Darstellungsmodus“ (Hybrid, Server, Ajax), „Erlaubte Länder“, „Länderumschalter im Preisvergleich“ und „Länder-Header des CDN“.
- „MaxMind GeoLite2“: „MaxMind-Datenbank verwenden“, „MaxMind Account-ID“ und „MaxMind Lizenzschlüssel“.
- „Klick-Tracking an Analytics“: Klicks auf Affiliate-Links an Matomo (samt Event-Kategorie, -Aktion, -Name und -Wert), Google Analytics 4, den Google Tag Manager und Umami melden – jedes Ziel einzeln, mit eigenem Ereignisnamen.
- „A/B-Test“, „Eigene Weiterleitungen“ (Links über /go/… auf deiner Website), „Beitrags-Check & Wochenbericht“, „Produktseiten“ und „Kompatibilität“ (Affiliate-Toolkit-Shortcodes).
Eigene Weiterleitungen (/go/…)
Mit „Affiliate-Links über die eigene Website leiten“ zeigen Boxen, Buttons und Textlinks auf eine Adresse deiner Website wie /go/samsung-galaxy-s25-otto. Ein Klick darauf wird auf deinem Server gezählt und per Weiterleitung zum Affiliate-Link geschickt – mit derselben Zuordnung zu Beitrag und Box-Art wie der direkte Link. Unter „Adresse der Weiterleitungen“ wählst du „Lesbar“ oder „Kurz“ (/go/k3); beide Formen bleiben gültig. Die Klicks stehen unter „Auswertung“ → „Weiterleitungen“.
- Amazon-Links laufen nie über die Weiterleitung: Amazon vergütet Käufe über Weiterleitungen nicht und verlangt, dass Links erkennbar zu Amazon führen. Sie bleiben immer direkt.
- Auch einzelne Advertiser anderer Netzwerke untersagen Weiterleitungen – prüfe die Bedingungen deiner Programme.
- Nicht gezählt werden Bots, Link-Vorschauen und das Vorab-Laden des Browsers. Gespeichert werden nur Tagessummen je Link und Beitrag – keine IP, keine Cookies, nichts geht an affilinode.
- Die /go/-Adressen sind für Suchmaschinen gesperrt (noindex, robots.txt) und werden nie gecacht. Liegt eine eigene robots.txt-Datei im Webroot, trage „Disallow: /go/“ dort selbst ein; cacht ein CDN alles (z. B. Cloudflare „Cache Everything“), nimm /go/* aus.
- Nach dem Einschalten den Seiten-Cache leeren, damit gecachte Seiten die neuen Links bekommen. Schaltest du wieder aus, leiten vorhandene /go/-Adressen weiter.
Aussehen anpassen
Unter „Darstellung“ stellst du Button-Größe (klein, mittel, groß), Eckenradius, Hover-Farbe der Buttons und die Badge-Farben ein. Die Vorschau unter den Feldern zeigt Beispielprodukte mit deinen Werten, bevor du speicherst; mit der Maus über einem Button siehst du die Hover-Farbe. Textfarben von Buttons, Hover und Badges wählt das Plugin automatisch so, dass der Kontrast reicht.
- Badge-Farben gibt es je Art: „Testsieger“ (Texte mit Testsieger, Test winner, Sieger, Winner), „Preis-Leistung“ (Preis-Leistung, Preistipp, Spartipp, Best value) und alle übrigen. „Preis-Leistungs-Sieger“ zählt als Preis-Leistung. „Automatisch“ heißt: wie die übrigen Badges bzw. Akzentfarbe. Dieselben Farben gelten für die hervorgehobene Spalte in Vergleichstabellen.
- Ein freies Feld für eigenes CSS gibt es nicht. Eigene Stile trägst du unter „Design“ → „Customizer“ → „Zusätzliches CSS“ ein (im Site-Editor: „Stile“ → „Zusätzliches CSS“). CSS, das du bisher in den Einstellungen eingetragen hattest, zeigt das Plugin nach dem Update einmalig zum Kopieren an; es wird nicht mehr ausgegeben.
- Am einfachsten passt du das Aussehen über CSS-Variablen auf .acp an, z. B. .acp{--acp-radius:4px;--acp-btn-h:48px} – in „Zusätzliches CSS“.
--acp-accent, --acp-cta, --acp-cta-text, --acp-cta-hover, --acp-cta-hover-text (Farben, auf :root)
--acp-badge, --acp-badge-text, --acp-badge-winner, --acp-badge-winner-text, --acp-badge-value, --acp-badge-value-text
--acp-radius (Box), --acp-radius-sm (innen), --acp-btn-radius, --acp-btn-h (Höhe), --acp-btn-fs (Schriftgröße), --acp-btn-px (Innenabstand)
--acp-bg, --acp-surface, --acp-text, --acp-muted, --acp-border, --acp-pad (je Farbschema auf .acp)
Die Einbettung für Ghost, Discourse und HTML (embed.js) hat eigene Variablen (--bg, --cta …, siehe „Einbetten“) und übernimmt diese Plugin-Einstellungen nicht.
Geolocation
Das Land des Besuchers wird nur in WordPress ermittelt: zuerst aus einem CDN-Header (z. B. Cloudflare), sonst aus der MaxMind-Datenbank, sonst gilt das Standard-Land. Die Geolocation steht dabei immer über der Sprache – die Sprache des Beitrags bestimmt nur die Texte. Die IP geht nicht an affilinode und wird nicht gespeichert. Die MaxMind-Datenbank aktualisiert sich wöchentlich; „MaxMind-Datenbank jetzt aktualisieren“ lädt sie sofort. Nur „Erlaubte Länder“ werden verwendet.
Welche Shops ein Land zeigt und welcher Partner vorgeht, stellst du im Dashboard bei der Website ein (siehe „Angebote je Besucherland“). Je Box überschreiben shops="amazon,awin", prefer="amazon" und countries="DE,AT" diese Regeln bzw. die erlaubten Länder.
Mehrsprachige Websites
Boxen erscheinen in der Sprache der Seite: Box-Texte, Buttons und Hinweise, Datenblatt-Bezeichnungen, Produkttitel und Beschreibungen. Die Sprache kommt aus Polylang oder WPML (Sprache des Beitrags bzw. der Anfrage), aus TranslatePress (Sprache der Adresse, z. B. /en/) oder sonst aus der Sprache der Website – im Multisite je Unterseite. Die Sprache deines Benutzerprofils spielt keine Rolle, auch nicht in der Vorschau im Editor. Nachgeladene Boxen behalten die Sprache der Seite, auf der sie stehen.
- Die Sprache bestimmt nur die Texte, nie das Land. Das Land kommt aus der Geolocation; ohne sie gilt „Land je Sprache“ (wenn eingetragen), sonst das Standard-Land, und erst ganz zuletzt die Region der Sprache.
- Fehlt eine Übersetzung, kommt der Text in der Grundsprache Deutsch – mit passendem lang-Attribut, damit Screenreader und Suchmaschinen ihn richtig lesen. Texte werden nie gemischt.
- Eigene Texte (Button-Text, Affiliate-Hinweis, Amazon-Hinweis) übersetzt du unter „Sprachen“ → „Übersetzungen“ (Polylang) bzw. mit WPML String Translation.
- Produktseiten: Mit Polylang oder WPML legt der automatische Abgleich je Sprache eine Produktseite an (Titel und Auszug in dieser Sprache) und verknüpft sie als Übersetzungen – hreflang und Sprachumschalter kommen vom Sprach-Plugin. Vorhandene Seiten ohne Sprache zählen für die Standardsprache.
- Kategorie-Hubs: Übersetze die Seite der Hubs mit Polylang oder WPML; jede Sprache nutzt ihre Übersetzung, hreflang und Sprachumschalter zeigen auf denselben Hub in der anderen Sprache.
Klick-Tracking an Analytics
Das Plugin meldet Klicks auf Affiliate-Links an den Analytics-Dienst, den deine Seite schon einbindet – alle Ziele sind ab Werk aus und einzeln schaltbar. Es lädt keinen Tracker selbst, setzt keine Cookies und sendet nichts, solange der Tracker fehlt (z. B. weil der Besucher nicht eingewilligt hat). Die Daten gehen an deinen Analytics-Dienst, nicht an affilinode.
- Matomo: Event über window._paq bzw. window._mtm (Tag Manager, Ereignis acp_affiliate_click), wie bisher.
- Google Analytics 4: gtag("event", "affiliate_click", …) mit transport_type "beacon" – die Navigation wartet nicht.
- Google Tag Manager: dataLayer.push({ event: "affiliate_click", … }). Im Tag Manager einen Trigger „Benutzerdefiniertes Ereignis“ mit diesem Namen anlegen und die Werte als Datenschichtvariablen an das GA4-Ereignis-Tag geben. Läuft GA4 über den Tag Manager, nur diese Option einschalten, nicht zusätzlich GA4 – sonst zählt jeder Klick doppelt.
- Umami: umami.track("affiliate_click", …).
- Mitgeschickt werden shop, product (affilinode-ID), product_name (gekürzt), box_kind (Darstellung), position (in Listen), post_id, link_domain (nur die Domain des Links, nie die Affiliate-URL) und mit „Event-Wert: Preis“ auch value und currency.
- Alle Boxen, Textlinks ([affilinode_link]) und Felder ([affilinode_field]) zählen, auch nachgeladene; Mittelklick und Strg-Klick ebenfalls, ein Doppelklick nur einmal.
Consent Mode bei GA4: Das Plugin ruft nur gtag auf. Ob und wie GA4 ohne Einwilligung misst, entscheiden deine Consent-Mode-Einstellungen bzw. dein Consent-Tool.
Werkzeuge
Unten auf der Seite stehen „Verbindung testen“ (zeigt Mandant und Website), „Cache leeren“ (Daten werden beim nächsten Aufruf neu geladen) und – mit MaxMind – „MaxMind-Datenbank jetzt aktualisieren“.
Mit Seiten-Caches wie WP Rocket oder LiteSpeed Cache die Adresse /wp-json/affilinode/v1/render vom Caching ausnehmen. Die Seiten selbst dürfen vollständig gecacht werden.
Seiten-Caches (LiteSpeed, WP Rocket, Cloudflare …)
Meldet affilinode per Webhook geänderte Produkte, Listen oder Vergleichstabellen, leert das Plugin die Beiträge mit diesen Boxen in den Seiten-Caches: LiteSpeed Cache, WP Rocket, W3 Total Cache, WP Super Cache, WP Fastest Cache, SiteGround Optimizer, Breeze, Nginx Helper und Cloudflare. Das läuft im Hintergrund: Erst lädt das Plugin die Produktdaten neu, zwei Minuten später leert es die Seiten. Reine Preisänderungen leeren einen Beitrag höchstens einmal pro Stunde.
- Welche Beiträge welche Produkte zeigen, merkt sich das Plugin beim Speichern und beim Aufruf der Seiten; den Bestand liest es nach dem Update einmal im Hintergrund ein.
- Ist ein Produkt noch nicht da (z. B. gerade beantragt oder im Import), sehen Besucher an der Stelle nichts. Solche Seiten bleiben nur 5 Minuten in Seiten-Caches (Cache-Control s-maxage, LiteSpeed), und sobald das Produkt da ist, leert das Plugin die Seite. Fehlt ein Produkt länger als 7 Tage, gilt wieder die normale Cache-Dauer.
- Cloudflare: Mit dem Cloudflare-Plugin nutzt affilinode dessen Leeren. Ohne Plugin einen API-Token mit „Zone → Zone → Lesen“ und „Zone → Cache Purge → Purge“ unter „Cloudflare-API-Token (optional)“ eintragen – die Zone wird über die Domain gefunden, geleert wird je Adresse (30 je Aufruf, mit Pause bei Cloudflares Limit). Mit Token leert das Plugin auch einen gespeicherten Beitrag bei Cloudflare.
- „Seiten-Caches jetzt leeren“ leert die Caches dieser Website: die Cache-Plugins komplett, Cloudflare die Startseite und die Beiträge mit Boxen. Im Multisite gilt das je Unterseite.
- Für eigene Schichten (Varnish, anderes CDN) gibt es die Action affilinode_purge_urls mit den Adressen und Beitrags-IDs.
Einstellungen exportieren und importieren
Ganz unten unter „Einstellungen exportieren und importieren“ lädt „Einstellungen herunterladen“ alle Einstellungen der Website als JSON-Datei herunter – samt automatischer Verlinkung und Tarifrechnern. So richtest du eine weitere Website genauso ein oder hast eine Sicherung.
- Auf der ersten Website „Einstellungen herunterladen“ anklicken.
- Auf der anderen Website die Datei auswählen und „Datei prüfen“ anklicken. Die Vorschau zeigt jede Einstellung, die sich ändern würde, mit aktuellem und neuem Wert – gespeichert ist noch nichts.
- „Änderungen übernehmen“ speichert sie, „Abbrechen“ verwirft die Datei.
- Geheime Schlüssel (API-Schlüssel, Webhook-Secret, Cloudflare-Token, MaxMind-Lizenzschlüssel) bleiben standardmäßig draußen, außer du hakst „Geheime Schlüssel mitnehmen“ an. Dann stehen sie im Klartext in der Datei – bewahre sie sicher auf und gib sie nie weiter.
- Jeder Wert wird geprüft wie im Formular (ungültige Farben und Zahlen außerhalb der Grenzen fallen weg). Werte, die nicht in der Datei stehen, bleiben; ein leerer Schlüssel überschreibt nie einen gespeicherten. Eigenes CSS ist nicht Teil der Datei.
- Multisite: In der Netzwerkverwaltung exportierst und importierst du die Netzwerk-Werte (samt MaxMind). Eine Unterseite exportiert nur ihre Abweichungen vom Netzwerk und übernimmt nie Einstellungen, die nur im Netzwerk gelten.
- Nur Administratoren können exportieren und importieren (Recht manage_options, im Netzwerk manage_network_options).