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.

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:

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=facebookfacebook
{utm_campaign} Kampagnenname aus URL Von ?utm_campaign=sommersommer
{sub1} - {sub9} Benutzerdefinierte Sub-IDs Von ?sub1=123123

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:

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

Vorteile:

Einschränkungen:

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

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?

  1. Eindeutige Identifikation: Verknüpft Conversions mit bestimmten Klicks
  2. Genaue Zuordnung: Verfolgt, welche Kampagne/Flow/Ziel die Conversion generiert hat
  3. Verhindert Duplikate: Stellt sicher, dass Conversions nicht mehrfach gezählt werden
  4. 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:

  1. Kampagne in Simple TDS erstellen
  2. Flow mit geeigneten Filtern hinzufügen
  3. 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:

Landing Page (Schritt 1):
<!-- 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>
Pre-Lander (Schritt 2):
<!-- 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>
Danke-Seite (nach Conversion):
<!-- 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-QuelleIhr Click-ID-ParameterTDS-Makro
RTB Pandaclickid{clickid}
ClickBazaclickid{clickid}
PropellerAdsclick_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

  1. Test-URL öffnen: https://yourdomain.com/{token}/?clickid=test123
  2. TDS click_id (UUID) aus Click-Logs notieren
  3. Test-Conversion senden: GET /c/postback?click_id={uuid}&conversion_value=10
  4. Server-Logs prüfen — es sollte die Zeile [S2S] Postback fired erscheinen

Fehlerbehebung

Conversion wird nicht verfolgt

Problem: Postback gesendet, aber keine Conversion aufgezeichnet

Mögliche Ursachen:

1. Falsches click_id-Format
  • Ü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

2. Click_id nicht in Datenbank gefunden
  • 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

3. Postback-URL falsch konfiguriert
  • 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}
4. Netzwerk-Firewall blockiert Postback
  • 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:

1. Werbeblocker

Viele Werbeblocker blockieren Tracking-Pixel

Lösung: Verwenden Sie Server-zu-Server-Postback für zuverlässiges Tracking

2. HTTPS/HTTP gemischter Inhalt

HTTP-Pixel auf HTTPS-Seite laden

Lösung: Verwenden Sie immer HTTPS für Pixel-URLs

3. JavaScript-Fehler verhindert Pixel-Laden

Lösung: Überprüfen Sie Browser-Konsole auf Fehler

Click-ID fehlt

Problem: click_id nicht in Ziel-URL vorhanden

Mögliche Ursachen:

1. Makro nicht korrekt konfiguriert

Falsche Makro-Syntax verwendet

Lösung: Verwenden Sie {click_id}-Makro in Ziel-URL oder verlassen Sie sich auf automatische Parameter-Übergabe

2. Ziel-URL hat bereits click_id-Parameter

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

3. Parameter wird durch Weiterleitung entfernt

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_id fü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_id aus 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

  1. Verwenden Sie immer HTTPS für alle Tracking-URLs
  2. Bevorzugen Sie Server-zu-Server-Postbacks gegenüber Pixel-Tracking, wenn möglich
  3. Speichern Sie click_id persistent in sessionStorage oder Cookies für mehrseitige Flows
  4. Testen Sie gründlich vor dem Senden von Live-Traffic
  5. Überwachen Sie Conversion-Raten um Tracking-Probleme früh zu erkennen
  6. Verwenden Sie external_id zur Querverweisen mit Ihren eigenen Transaktions-IDs
  7. Implementieren Sie Fallback-Tracking (z.B. sowohl Postback als auch Pixel)
  8. Dokumentieren Sie Ihre Integration für zukünftige Referenz

Support

Bei Problemen oder Fragen: