Integrations- und Conversion-Tracking-Leitfaden
Vollständiger Leitfaden zur Integration von Simple TDS mit Ihren Traffic-Quellen und Affiliate-Netzwerken, einschließlich aller Conversion-Tracking-Methoden.
Inhaltsverzeichnis
Traffic-URL-Struktur
Basis-URL-Format
Alle Traffic zu Simple TDS-Kampagnen folgt diesem URL-Muster:
https://ihredomain.com/{campaign_token}/
Beispiel:
https://track.example.com/abc123def456/
Wobei:
ihredomain.com- Ihre Simple TDS-Domainabc123def456- Eindeutiger Kampagnen-Token (in den Kampagneneinstellungen zu finden)
Parameter an Ziel-URL übergeben
Sie können beliebige Query-Parameter über die Traffic-URL übergeben, und diese werden automatisch an die Ziel-URL zusammen mit der systemgenerierten click_id weitergeleitet.
Beispiel:
https://track.example.com/abc123def456/?utm_source=facebook&utm_campaign=sommer2025&sub1=adset123
Alle Parameter (utm_source, utm_campaign, sub1) werden an die finale Ziel-URL übergeben.
Verfügbare Makros in Ziel-URLs
Bei der Konfiguration von Ziel-URLs in Simple TDS können Sie Makros verwenden, die dynamisch durch tatsächliche Werte ersetzt werden:
System-Makros
| Makro | Beschreibung | Beispielwert |
|---|---|---|
{click_id} |
Eindeutige Klick-ID (für Conversion-Tracking) | a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5 |
{timestamp} |
Aktueller Unix-Zeitstempel in Millisekunden | 1704067200000 |
{random} |
Zufallszahl (0-999999) | 742839 |
{date} |
Aktuelles Datum (Format YYYY-MM-DD) | 2025-01-01 |
{time} |
Aktuelle Zeit (Format HH:MM:SS) | 14:30:45 |
{CLICK_ID} |
Eindeutige Klick-ID (Alias für {click_id}, für Advertiser-URLs) |
a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5 |
{SOURCES} |
Referrer-Domain — Traffic-Quell-Domain (leer bei Direktzugriff) | facebook.com |
{GEO} |
Ländercode des Besuchers (ISO 3166-1 alpha-2) | US |
{CAMPAIGN_ID} |
Numerische ID der aktuellen Kampagne | 42 |
{referrer} |
Vollständige Referrer-URL (leerer String bei Direkttraffic) | https://facebook.com/ads/123 |
Query-Parameter-Makros
Jeder in der Traffic-URL übergebene Parameter kann als Makro verwendet werden:
| Makro | Beschreibung | Beispiel |
|---|---|---|
{utm_source} |
Traffic-Quelle aus URL | Von ?utm_source=facebook → facebook |
{utm_campaign} |
Kampagnenname aus URL | Von ?utm_campaign=sommer → sommer |
{sub1} - {sub9} |
Benutzerdefinierte Sub-IDs | Von ?sub1=123 → 123 |
Beispiel-Ziel-URL mit Makros:
https://offer.example.com/lp?source={utm_source}&campaign={utm_campaign}&clickid={click_id}&ts={timestamp}
Ergebnis (wenn Traffic mit ?utm_source=google&utm_campaign=promo ankommt):
https://offer.example.com/lp?source=google&campaign=promo&clickid=a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5&ts=1704067200000
Benutzerdefinierte Sub-ID-Parameter (std1-std9)
Simple TDS verfolgt automatisch 9 benutzerdefinierte Sub-ID-Parameter: std1, std2, std3, ... std9
Diese sind nützlich für die Verfolgung benutzerdefinierter Daten:
Beispiel:
https://track.example.com/abc123def456/?std1=platzierung_A&std2=kreativ_001&std3=zielgruppe_25-34
Diese Werte werden:
- Im Klick-Datensatz gespeichert
- Zur Filterung in Flows verfügbar
- An die Ziel-URL übergeben
- In Statistikberichten sichtbar
Conversion-Tracking-Methoden
Simple TDS unterstützt drei Conversion-Tracking-Methoden. Alle Methoden benötigen eine click_id, die automatisch zu Ziel-URLs hinzugefügt wird.
Methode 1: Postback-URL (Server-zu-Server)
Empfohlen für: Affiliate-Netzwerke, direkte Angebote mit serverseitigem Tracking
URL-Format
GET https://ihredomain.com/c/postback
Parameter
| Parameter | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
click_id |
Ja* | String | Eindeutige Klick-ID (UUID-Format) |
campaign_id |
Ja* | Integer | Kampagnen-ID (falls click_id nicht verfügbar) |
conversion_type |
Nein | String | Conversion-Typ (Standard: confirmed) |
conversion_value |
Nein | Number | Umsatz-/Auszahlungsbetrag |
external_id |
Nein | String | Externe Transaktions-/Conversion-ID |
*Entweder click_id oder campaign_id ist erforderlich. Die Verwendung von click_id wird dringend für genaues Tracking empfohlen.
Beispiel-Postback-URLs
Basis-Conversion:
https://track.example.com/c/postback?click_id={clickid}
Conversion mit Umsatz:
https://track.example.com/c/postback?click_id={clickid}&conversion_value=25.50
Conversion mit Typ und externer ID:
https://track.example.com/c/postback?click_id={clickid}&conversion_type=sale&conversion_value=99.99&external_id=ORDER-12345
Integration gängiger Affiliate-Netzwerke
MaxBounty:
https://track.example.com/c/postback?click_id=[SUBID]&conversion_value=[PAYOUT]
CrakRevenue:
https://track.example.com/c/postback?click_id=[s1]&conversion_value=[payout]&external_id=[transaction_id]
ClickDealer:
https://track.example.com/c/postback?click_id={clickid}&conversion_value={payout}
CPALead:
https://track.example.com/c/postback?click_id=[subid]&conversion_value=[payout]
Hinweis: Ersetzen Sie die Makro-Platzhalter (z.B. [SUBID], {clickid}) durch die tatsächlichen Makros Ihres Affiliate-Netzwerks.
Antwort
Erfolg:
{
"success": true,
"conversion_id": 12345
}
Bestehende Conversion aktualisiert:
{
"success": true,
"conversion_id": 12345,
"updated": true
}
Fehler:
{
"success": false,
"message": "Click not found"
}
Methode 2: Pixel-Tracking (Bild)
Empfohlen für: Landing Pages, Danke-Seiten, Bestätigungsseiten
URL-Format
<img src="https://ihredomain.com/c/pixel.gif?click_id={clickid}" width="1" height="1" />
Parameter
Wie bei der Postback-Methode, unterstützt aber Legacy-Parameternamen:
| Parameter | Alias | Typ | Beschreibung |
|---|---|---|---|
click_id |
- | String | Eindeutige Klick-ID |
conversion_value |
amount |
Number | Umsatzbetrag |
conversion_type |
status |
String | Conversion-Status |
external_id |
transaction_id |
String | Externe ID |
Implementierungsbeispiel
Basis-Pixel (1x1 transparentes Bild):
<!DOCTYPE html>
<html>
<head>
<title>Vielen Dank!</title>
</head>
<body>
<h1>Vielen Dank für Ihren Kauf!</h1>
<p>Ihre Bestellung wurde bestätigt.</p>
<!-- Conversion-Tracking-Pixel -->
<img src="https://track.example.com/c/pixel.gif?click_id=a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5"
width="1" height="1" style="display:none;" />
</body>
</html>
Pixel mit Umsatz-Tracking:
<img src="https://track.example.com/c/pixel.gif?click_id=a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5&conversion_value=49.99&conversion_type=sale"
width="1" height="1" style="display:none;" />
Wann Pixel-Tracking verwenden
- Landing Pages: Conversions verfolgen, wenn Benutzer ein Formular ausfüllen
- Danke-Seiten: Käufe oder Anmeldungen bestätigen
- E-Mail-Bestätigungen: E-Mail-Öffnungen mit Conversions verfolgen
- Kein Server-Zugriff: Wenn Sie nur HTML-Code hinzufügen können
Vorteile:
- Einfache Implementierung (nur ein Bild-Tag hinzufügen)
- Funktioniert ohne JavaScript
- Keine CORS-Probleme
Einschränkungen:
- Weniger zuverlässig als Server-zu-Server (kann von Werbeblockern blockiert werden)
- Kein Response-Feedback
- Browser-abhängig
Methode 3: JavaScript-Tracker
Empfohlen für: Erweitertes Tracking, dynamische Conversion-Werte, clientseitige Anwendungen
URL-Format
<script src="https://ihredomain.com/c/js?click_id={clickid}"></script>
Basis-Implementierung
<!DOCTYPE html>
<html>
<head>
<title>Bestätigung</title>
</head>
<body>
<h1>Vielen Dank!</h1>
<!-- JavaScript-Conversion-Tracker -->
<script>
var clickId = 'a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5'; // Von URL oder Cookie abgerufen
var conversionValue = 29.99;
var conversionType = 'sale';
var script = document.createElement('script');
script.src = 'https://track.example.com/c/js?click_id=' + clickId +
'&conversion_value=' + conversionValue +
'&conversion_type=' + conversionType;
document.head.appendChild(script);
</script>
</body>
</html>
Erweiterte Verwendung: Dynamisches Conversion-Tracking
<script>
// click_id aus URL-Parameter abrufen
function getClickId() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('click_id');
}
// Conversion mit dynamischem Wert verfolgen
function trackConversion(value, type, externalId) {
const clickId = getClickId();
if (!clickId) {
console.error('Click ID not found');
return;
}
const params = new URLSearchParams({
click_id: clickId,
conversion_value: value,
conversion_type: type || 'confirmed',
external_id: externalId || ''
});
const script = document.createElement('script');
script.src = 'https://track.example.com/c/js?' + params.toString();
document.head.appendChild(script);
}
// Beispiel: Bei Formular-Übermittlung verfolgen
document.getElementById('purchaseForm').addEventListener('submit', function(e) {
e.preventDefault();
const amount = document.getElementById('amount').value;
const orderId = document.getElementById('orderId').value;
trackConversion(amount, 'sale', orderId);
// Mit Formular-Übermittlung fortfahren
this.submit();
});
</script>
Wann JavaScript-Tracker verwenden
- Dynamische Werte: Conversion-Wert wird clientseitig berechnet
- Event-Tracking: Spezifische Benutzeraktionen verfolgen
- SPA-Anwendungen: Single-Page-Anwendungen mit clientseitigem Routing
Click-ID-Verwaltung
Was ist eine Click-ID?
Die click_id ist eine eindeutige Kennung (UUID v4-Format), die von Simple TDS automatisch für jeden Klick generiert wird. Sie ist für das Conversion-Tracking unerlässlich.
Beispiel click_id:
a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5
Warum ist die Click-ID wichtig?
- Eindeutige Identifikation: Verknüpft Conversions mit bestimmten Klicks
- Genaue Zuordnung: Verfolgt, welche Kampagne/Flow/Ziel die Conversion generiert hat
- Verhindert Duplikate: Stellt sicher, dass Conversions nicht mehrfach gezählt werden
- Statistiken: Ermöglicht detaillierte Conversion-Berichte
Click-ID an Landing Pages übergeben
Simple TDS fügt automatisch click_id zu Ziel-URLs hinzu. Sie müssen nichts tun, wenn Sie das Standardverhalten verwenden.
Traffic-Ablauf:
Benutzer klickt → https://track.example.com/abc123def456/?utm_source=facebook
↓
Simple TDS verarbeitet Filter und wählt Ziel aus
↓
Weiterleitung zu → https://landing.example.com/?click_id=a3f8b2c1d4&utm_source=facebook
Wenn Sie Makros in der Ziel-URL-Konfiguration verwenden:
Ziel-URL: https://landing.example.com/?id={click_id}&source={utm_source}
Ergebnis: https://landing.example.com/?id=a3f8b2c1d4&source=facebook
Click-ID für Conversion-Tracking speichern
Methode 1: URL-Parameter (Empfohlen)
Speichern Sie die click_id aus der URL und verwenden Sie sie später für das Conversion-Tracking.
JavaScript-Beispiel:
// click_id aus URL abrufen
function getClickId() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('click_id');
}
// In sessionStorage speichern
const clickId = getClickId();
if (clickId) {
sessionStorage.setItem('tds_click_id', clickId);
}
// Später: Für Conversion-Tracking abrufen
const storedClickId = sessionStorage.getItem('tds_click_id');
Methode 2: Cookie-Speicherung
In einem Cookie für mehrseitiges Tracking speichern.
JavaScript-Beispiel:
// Cookie mit click_id setzen
function setClickIdCookie(clickId) {
const expiryDays = 30;
const date = new Date();
date.setTime(date.getTime() + (expiryDays * 24 * 60 * 60 * 1000));
const expires = "expires=" + date.toUTCString();
document.cookie = "tds_click_id=" + clickId + ";" + expires + ";path=/";
}
// click_id aus URL abrufen und im Cookie speichern
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('click_id');
if (clickId) {
setClickIdCookie(clickId);
}
// Aus Cookie abrufen
function getClickIdFromCookie() {
const name = "tds_click_id=";
const decodedCookie = decodeURIComponent(document.cookie);
const ca = decodedCookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return null;
}
Methode 3: Verstecktes Formularfeld
click_id über Formulare übergeben.
HTML-Beispiel:
<form id="signupForm" action="/process" method="POST">
<input type="text" name="email" placeholder="E-Mail" required>
<input type="password" name="password" placeholder="Passwort" required>
<!-- Verstecktes Feld mit click_id -->
<input type="hidden" name="click_id" id="clickIdField" value="">
<button type="submit">Anmelden</button>
</form>
<script>
// Verstecktes Feld mit click_id aus URL füllen
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('click_id');
if (clickId) {
document.getElementById('clickIdField').value = clickId;
}
</script>
Häufige Integrationsszenarien
Szenario 1: Direktverlinkung (Keine Landing Page)
Setup:
Traffic-Quelle → Simple TDS → Affiliate-Angebot
Konfiguration:
- Kampagne in Simple TDS erstellen
- Flow mit geeigneten Filtern hinzufügen
- Ziel mit Affiliate-Angebots-URL hinzufügen
Ziel-URL-Beispiel:
https://affiliate-network.com/offer?affid=12345&clickid={click_id}
Postback-URL (im Affiliate-Netzwerk konfigurieren):
https://track.example.com/c/postback?click_id=[SUBID]&conversion_value=[PAYOUT]
Ersetzen Sie [SUBID] und [PAYOUT] durch die Makros des Netzwerks.
Szenario 2: Landing-Page-Setup
Setup:
Traffic-Quelle → Simple TDS → Ihre Landing Page → Angebot
Konfiguration:
Kampagne und Flow in Simple TDS erstellen
Ziel-URL zu Ihrer Landing Page konfigurieren:
https://ihrelanding.com/?offer_id=123&click_id={click_id}&source={utm_source}
Auf Ihrer Landing Page die click_id speichern:
<script>
// click_id aus URL speichern
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('click_id');
if (clickId) {
sessionStorage.setItem('tds_click_id', clickId);
}
</script>
Wenn Benutzer Formular absendet, Conversion verfolgen:
<script>
document.getElementById('leadForm').addEventListener('submit', function(e) {
e.preventDefault();
const clickId = sessionStorage.getItem('tds_click_id');
if (clickId) {
// Conversion mit Pixel verfolgen
const pixel = new Image();
pixel.src = 'https://track.example.com/c/pixel.gif?click_id=' + clickId +
'&conversion_type=lead';
pixel.onload = function() {
// Nach Tracking zum Angebot weiterleiten
window.location.href = 'https://offer.example.com/?subid=' + clickId;
};
}
});
</script>
Szenario 3: Mehrstufiger Funnel
Setup:
Traffic → Simple TDS → Landing Page → Pre-Lander → Angebot
Implementierung:
<!-- click_id in sessionStorage speichern -->
<script>
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('click_id');
if (clickId) {
sessionStorage.setItem('tds_click_id', clickId);
}
// Zum nächsten Schritt weitergeben
function goToNextStep() {
const clickId = sessionStorage.getItem('tds_click_id');
window.location.href = '/prelander?click_id=' + clickId;
}
</script>
<!-- click_id abrufen und speichern -->
<script>
const urlParams = new URLSearchParams(window.location.search);
let clickId = urlParams.get('click_id');
// Fallback zu sessionStorage, falls nicht in URL
if (!clickId) {
clickId = sessionStorage.getItem('tds_click_id');
} else {
sessionStorage.setItem('tds_click_id', clickId);
}
function goToOffer() {
const clickId = sessionStorage.getItem('tds_click_id');
window.location.href = 'https://offer.example.com/?subid=' + clickId;
}
</script>
<!-- Conversion verfolgen -->
<script>
const clickId = sessionStorage.getItem('tds_click_id');
if (clickId) {
const pixel = new Image();
pixel.src = 'https://track.example.com/c/pixel.gif?click_id=' + clickId +
'&conversion_value=25.00&conversion_type=sale';
}
</script>
Szenario 4: Affiliate-Netzwerk-Integration
Setup:
Postback im Affiliate-Netzwerk konfigurieren, um Conversions zurück zu Simple TDS zu verfolgen
Schritte:
Ihre click_id zum Affiliate-Netzwerk bringen:
In Simple TDS-Ziel-URL:
https://network.com/click?affid=12345&subid={click_id}
Postback im Affiliate-Netzwerk konfigurieren:
Die meisten Netzwerke haben eine "Postback-URL"- oder "Conversion-Callback"-Einstellung. Konfigurieren Sie sie als:
https://track.example.com/c/postback?click_id=[SUBID]&conversion_value=[PAYOUT]&conversion_type=[STATUS]&external_id=[TRANSACTION_ID]
Ersetzen Sie die Platzhalter durch netzwerkspezifische Makros:
| Netzwerk | SubID-Makro | Payout-Makro | Status-Makro |
|---|---|---|---|
| MaxBounty | [SUBID] |
[PAYOUT] |
[STATUS] |
| CrakRevenue | [s1] |
[payout] |
[status] |
| ClickDealer | {clickid} |
{payout} |
{status} |
| A4D | {s1} |
{payout} |
N/A |
Integration testen:
Die meisten Netzwerke bieten eine Test-Postback-Funktion. Verwenden Sie diese, um zu überprüfen, ob Conversions korrekt verfolgt werden.
Szenario 5: S2S Postback an Traffic-Quelle (RTB-Netzwerke)
Anwendungsfall: Sie kaufen Traffic von einem RTB-Netzwerk (RTB Panda, ClickBaza, PropellerAds usw.), das einen Conversion-Postback auf seinen Server benötigt, wenn eine Offer-Conversion erfasst wird.
Vollständiger Datenfluss
RTB-Netzwerk ──[Besucher + ?clickid=XYZ]──→ TDS Kampagnen-URL
│
TDS speichert XYZ in click.query_params
│
TDS leitet zum Offer weiter
│
Offer ──[GET /c/postback?click_id={tds_uuid}]──→ TDS
│
TDS zeichnet Conversion auf UND sendet upstream S2S:
TDS ──[GET https://postback.rtbpanda.com/postback?clickid=XYZ&payout=25.00&status=confirmed]──→ RTB-Netzwerk
Schritt 1: Postback-URL-Vorlage von der Traffic-Quelle holen
Im RTB Panda / ClickBaza Dashboard den Bereich "S2S Postback" suchen. Die Vorlage sieht so aus:
https://postback.rtbpanda.com/postback?clickid={CLICK_ID}&payout={PAYOUT}&status={STATUS}
Schritt 2: Makronamen in TDS-Makros übersetzen
| Traffic-Quelle | Ihr Click-ID-Parameter | TDS-Makro |
|---|---|---|
| RTB Panda | clickid | {clickid} |
| ClickBaza | clickid | {clickid} |
| PropellerAds | click_id | {click_id} |
Ergebnis für RTB Panda:
https://postback.rtbpanda.com/postback?clickid={clickid}&payout={payout}&status={status}
Schritt 3: URL in Kampagneneinstellungen → S2S Postback URL einfügen
Schritt 4: Kampagnen-URL im RTB-Netzwerk einrichten
https://yourdomain.com/{campaign_token}/?clickid={CLICK_ID}
Ersetzen Sie {CLICK_ID} durch das tatsächliche Makro des Netzwerks.
Schritt 5: Vollständige Kette testen
- Test-URL öffnen:
https://yourdomain.com/{token}/?clickid=test123 - TDS
click_id(UUID) aus Click-Logs notieren - Test-Conversion senden:
GET /c/postback?click_id={uuid}&conversion_value=10 - Server-Logs prüfen — es sollte die Zeile
[S2S] Postback firederscheinen
Fehlerbehebung
Conversion wird nicht verfolgt
Problem: Postback gesendet, aber keine Conversion aufgezeichnet
Mögliche Ursachen:
- Überprüfen Sie, ob die click_id eine gültige UUID ist
- Prüfen Sie auf zusätzliche Zeichen oder Kürzungen
Lösung: Testen Sie mit einer bekannten click_id aus Ihren Klick-Berichten
- Der Klick könnte zu alt sein (Datenbank-Aufbewahrungsrichtlinie)
- Klick wurde nie aufgezeichnet (Bot-Traffic gefiltert)
Lösung: Überprüfen Sie Klick-Berichte, um zu verifizieren, dass die click_id existiert
- Falsche Domain
- Fehlende erforderliche Parameter
Lösung: Postback manuell testen:
curl "https://track.example.com/c/postback?click_id=IHRE_CLICK_ID&conversion_value=10"
Erwartete Antwort:
{"success": true, "conversion_id": 12345}
- Einige Server blockieren ausgehende Verbindungen
Lösung: Überprüfen Sie Server-Logs, setzen Sie Simple TDS-IP auf Whitelist falls nötig
Problem: Pixel wird nicht geladen
Mögliche Ursachen:
Viele Werbeblocker blockieren Tracking-Pixel
Lösung: Verwenden Sie Server-zu-Server-Postback für zuverlässiges Tracking
HTTP-Pixel auf HTTPS-Seite laden
Lösung: Verwenden Sie immer HTTPS für Pixel-URLs
Lösung: Überprüfen Sie Browser-Konsole auf Fehler
Click-ID fehlt
Problem: click_id nicht in Ziel-URL vorhanden
Mögliche Ursachen:
Falsche Makro-Syntax verwendet
Lösung: Verwenden Sie {click_id}-Makro in Ziel-URL oder verlassen Sie sich auf automatische Parameter-Übergabe
Simple TDS fügt keine doppelten Parameter hinzu
Lösung: Entfernen Sie click_id aus Ziel-URL-Vorlage, lassen Sie Simple TDS sie hinzufügen
Zwischenweiterleitungen können Parameter entfernen
Lösung: Testen Sie die gesamte Weiterleitungskette, stellen Sie sicher, dass alle Weiterleitungen Query-Parameter beibehalten
Problem: click_id geht während mehrseitigem Flow verloren
Lösung:
Verwenden Sie sessionStorage oder Cookies, um click_id über Seiten hinweg zu persistieren:
// Auf erster Seite speichern
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('click_id');
if (clickId) {
sessionStorage.setItem('tds_click_id', clickId);
}
// Auf beliebiger Seite abrufen
const storedClickId = sessionStorage.getItem('tds_click_id');
Häufige Fehler
Fehler: "Either click_id or campaign_id is required"
Ursache: Postback ohne erforderliche Parameter gesendet
Lösung: click_id-Parameter einschließen:
https://track.example.com/c/postback?click_id=IHRE_CLICK_ID
Fehler: "Click not found"
Ursache: Die click_id existiert nicht in der Datenbank
Mögliche Gründe:
- Click_id ist falsch oder beschädigt
- Klick ist älter als Aufbewahrungszeitraum
- Klick war von Bot-Traffic (nicht aufgezeichnet)
Lösung:
- Überprüfen Sie click_id-Format und -Wert
- Prüfen Sie, ob Klick in Statistiken existiert
- Verwenden Sie aktuelle click_id zum Testen
Fehler: "Invalid conversion"
Ursache: Conversion-Validierung fehlgeschlagen
Mögliche Gründe:
- conversion_value ist keine Zahl
- conversion_type ist kein String
- Anfrage von verdächtiger IP
Lösung:
- Überprüfen Sie Parameter-Typen
- Testen Sie mit gültigen Werten
- Überprüfen Sie Conversion-Validator-Einstellungen
Fehler: "Campaign not found"
Ursache: Verwendung des campaign_id-Parameters, aber Kampagne existiert nicht oder ist inaktiv
Lösung:
- Überprüfen Sie, ob Kampagnen-ID korrekt ist
- Prüfen Sie, ob Kampagne aktiv ist
- Verwenden Sie stattdessen
click_idfür bessere Genauigkeit
Conversions testen
Manuelles Testen
Test-Klick generieren:
- Besuchen Sie Ihre Kampagnen-URL:
https://track.example.com/IHR_KAMPAGNEN_TOKEN/ - Notieren Sie die
click_idaus der weitergeleiteten URL
Postback testen:
curl "https://track.example.com/c/postback?click_id=IHRE_CLICK_ID&conversion_value=10"
In Simple TDS überprüfen:
- Gehen Sie zur Conversions-Seite
- Prüfen Sie, ob Conversion aufgezeichnet wurde
- Überprüfen Sie Conversion-Wert und click_id
Automatisiertes Testen
Erstellen Sie ein Test-Skript zur Überprüfung des Conversion-Trackings:
// test-conversion.js
const fetch = require('node-fetch');
async function testConversion(clickId) {
const url = `https://track.example.com/c/postback?click_id=${clickId}&conversion_value=25.50&conversion_type=test`;
const response = await fetch(url);
const data = await response.json();
if (data.success) {
console.log('✓ Conversion erfolgreich verfolgt');
console.log(' Conversion ID:', data.conversion_id);
} else {
console.error('✗ Conversion-Tracking fehlgeschlagen');
console.error(' Fehler:', data.message);
}
}
// Testen Sie mit Ihrer click_id
testConversion('a3f8b2c1d4e5f6g7h8i9j0k1l2m3n4o5');
Best Practices
- Verwenden Sie immer HTTPS für alle Tracking-URLs
- Bevorzugen Sie Server-zu-Server-Postbacks gegenüber Pixel-Tracking, wenn möglich
- Speichern Sie click_id persistent in sessionStorage oder Cookies für mehrseitige Flows
- Testen Sie gründlich vor dem Senden von Live-Traffic
- Überwachen Sie Conversion-Raten um Tracking-Probleme früh zu erkennen
- Verwenden Sie external_id zur Querverweisen mit Ihren eigenen Transaktions-IDs
- Implementieren Sie Fallback-Tracking (z.B. sowohl Postback als auch Pixel)
- Dokumentieren Sie Ihre Integration für zukünftige Referenz
Support
Bei Problemen oder Fragen:
- Überprüfen Sie den Abschnitt Fehlerbehebung
- Überprüfen Sie Ihre Kampagnen- und Flow-Konfiguration
- Testen Sie manuell mit den oben genannten Schritten
- Kontaktieren Sie den Support mit spezifischen Fehlermeldungen und click_ids