So funktioniert das Matching
datataste matcht importierte Ad-Plattform-Campaigns über die UTM-Parameter, die beide Systeme teilen, mit deinen First-Party-Sessions. Der Join passiert auf bis zu drei Ebenen:
- Campaign-Ebene — utm_campaign entspricht dem Campaign-Namen. Spend, Sessions und Conversions liegen pro Campaign nebeneinander; CPA und ROAS werden verfügbar.
- Ad-Set-Ebene — utm_term trägt den Ad-Set-Namen. Sessions und Conversions schlüsseln sich pro Ad Set innerhalb der Campaign auf.
- Ad-Ebene — utm_content trägt den Ad-Namen. Die tiefste Sicht: jedes Creative zeigt die Sessions und Conversions, die es tatsächlich gebracht hat.
Die Campaign-Matching-Tabelle zeigt die erreichte Ebene jeder Campaign als Badge; eine gematchte Campaign lässt sich aufklappen und zeigt ihre Ad Sets und Ads mit einem Gemappt-Indikator pro Zeile.
Das Meta-Template (empfohlen)
Meta füllt die Platzhalter in doppelten geschweiften Klammern bei der Auslieferung — ein Template funktioniert für jede Campaign, jedes Ad Set und jede Ad, ohne manuelles Editieren pro Ad. Einmal auf Ad-Ebene hinterlegen unter Ad → Tracking → URL-Parameter, oder als Standard in den Einstellungen des Ad-Accounts:
utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}Das ist das gesamte Setup. Nach dem nächsten Sync (automatisch alle ~3 Stunden, oder über Sync in Verbindungen) matchen deine Campaigns auf Ad-Ebene.
Von Hand gesetzte UTM-Werte laufen auseinander: jemand benennt eine Campaign um, dupliziert ein Ad Set oder vertippt sich — und der Join bricht still. Die {{...}}-Platzhalter geben immer den aktuellen Namen aus, Umbenennungen kommen mit dem nächsten Sync an.
Was die Parameter bewirken
| Parameter | Wert | Funktion |
|---|---|---|
utm_source | {{site_source_name}} | Identifiziert das Placement, auf dem die Ad lief (fb / ig / an / msg). Pflicht-Join-Key. |
utm_medium | paid_social | Der Channel. Pflicht-Join-Key — stabil halten (paid_social). |
utm_campaign | {{campaign.name}} | Der primäre Join-Key: matcht die importierte Campaign über den Namen. |
utm_term | {{adset.name}} | Ermöglicht Matching auf Ad-Set-Ebene (Name des Ad Sets). |
utm_content | {{ad.name}} | Ermöglicht Matching auf Ad-Ebene (Name der Ad). |
Zusätzliche Parameter (eigene Tracking-IDs, Placement-Makros, Click-IDs) sind unproblematisch — datataste liest die fünf utm_*-Keys und ignoriert den Rest.
Google Ads
Googles ValueTrack-Makros liefern IDs, keine Namen — namensbasierte Platzhalter wie bei Meta gibt es nicht. Setze die UTM-Werte statisch im Tracking-Template der Campaign und halte utm_campaign identisch zum Campaign-Namen:
utm_source=google&utm_medium=cpc&utm_campaign=YOUR_CAMPAIGN_NAME
Auto-Tagging (gclid) kann parallel zu manuellen UTMs aktiv bleiben — datataste matcht über die UTMs und behandelt gclid-only Traffic als teilweise gematcht. Ad-Set- und Ad-Ebene für Google stehen auf der Roadmap.
Keine UTMs? Namenskonventionen
Wenn deine Links gar keine UTM-Parameter tragen, kann datataste stattdessen strukturierte Campaign-Namen parsen — z. B. wird meta_paid-social_summer-sale zu Source, Medium und Campaign. Trennzeichen und Token-Reihenfolge konfigurierst du im Feld-Mapping des Campaign-Daten-Bereichs; eine Live-Preview zeigt, wie deine importierten Campaign-Namen geparst werden.
Namenskonventionen matchen nur auf Campaign-Ebene. Für Joins auf Ad-Set- und Ad-Ebene nutzt du das URL-Template oben.
Troubleshooting
Campaign umbenannt? Sessions, die vor der Umbenennung getaggt wurden, tragen den alten Namen. Die Matching-Tabelle markiert umbenannte Campaigns; das Platzhalter-Template übernimmt den neuen Namen mit dem nächsten Sync.
- Ad-Set-Ebene zeigt weniger Sessions als die Ads? Meta kürzt sehr lange URL-Parameter-Blöcke auf manchen Placements und schneidet Parameter am Ende des Templates ab (oft utm_term). datataste gleicht das aus, indem gekürzte Werte als eindeutige Namens-Präfixe gematcht werden — halte Campaign- und Ad-Set-Namen trotzdem möglichst kurz und vermeide doppelte Parameter, damit das Template unter dem Limit bleibt.
- Groß-/Kleinschreibung oder Trennzeichen weichen ab? Summer-Sale ist standardmäßig nicht gleich summer_sale. Aktiviere im Feld-Mapping die Optionen für Groß-/Kleinschreibung und Trennzeichen — ohne etwas umzubenennen.
- Spend importiert, aber keine Sessions? Prüfe, ob die Ads wirklich auf eine Seite mit dem datataste-Tracker verlinken und das Template auf Ad-Ebene liegt (nicht nur auf einzelnen Ads). Die Zeile im Campaign-Matching erklärt genau, welche Felder gematcht haben und welche fehlen.
- Gerade erst verbunden? Imports laufen beim Verbinden und danach alle ~3 Stunden. Sessions matchen erst ab dem Moment, in dem deine Ads das Template tragen — historischer Traffic ohne UTMs lässt sich nicht rückwirkend verknüpfen.