Tracking Validatie met n8n - Troubleshooting Guide
Introductie
Met de AdPage n8n template kun je als agency zelfstandig tracking validaties uitvoeren op je klantcontainers. Deze handleiding legt stap voor stap uit hoe je de template importeert, configureert en uitbreidt met eigen queries.
Wat heb je nodig?
Voordat je begint, zorg dat je het volgende bij de hand hebt:
n8n account (Cloud of Self-hosted, versie 1.120.0 of hoger)
AdPage MCP URL (verkrijgbaar via trytagging.com)
Container ID van de klant die je wilt valideren
Stap 1: MCP URL ophalen
De MCP (Model Context Protocol) URL geeft je toegang tot de AdPage tracking database.
Ga naar trytagging.com en log in
Klik op "Data Assistent" in het menu of ga naar trytagging.com/mcp
Klik op "Start now"
Kopieer de MCP URL die wordt getoond
β οΈ Belangrijk: Houd je MCP URL geheim. Deze geeft toegang tot alle tracking data van jouw klanten.
Stap 2: Template importeren in n8n
Starter template URL
https://adpage.b-cdn.net/n8n-templates/starter-template-n8n.json
Importeren in n8n
Open n8n en ga naar Workflows
Klik op "Add Workflow" β "Import from URL"
Plak de bovenstaande URL
Klik op "Import"
π‘ Tip: Je kunt de URL ook direct openen in je browser om het JSON bestand te downloaden.
De template bevat de volgende nodes:
Node | Type | Functie |
|---|---|---|
βΆοΈ Start Here | Manual Trigger | Start de workflow |
βοΈ Configure Variables | Set | Configureer container_id en parameters |
π§ Build Query | Code | Bouwt de SQL query |
π MCP Client | MCP Client | Voert query uit op AdPage database |
π Analyze | Code | Analyseert resultaten |
π Format Report | Code | Formatteert het rapport |
Stap 3: MCP Client configureren
Klik op de π MCP Client node
Klik op "Create New Credential"
Selecteer "MCP Client API"
Plak je MCP URL in het URL veld
Klik op "Save"
De credential wordt nu veilig opgeslagen en kan hergebruikt worden in andere workflows.
Stap 4: Container ID instellen
Klik op de βοΈ Configure Variables node
Pas de volgende waarden aan:
Variabele | Waarde | Voorbeeld |
|---|---|---|
| UUID van de klantcontainer |
|
| Aantal dagen om te analyseren |
|
| Naam van de klant |
|
Container ID vinden
Je vindt de Container ID in het AdPage dashboard:
Ga naar app.trytagging.com
Selecteer de klant
Kopieer de Container ID uit de URL of instellingen
Stap 5: Workflow uitvoeren
Klik op "Test Workflow" of druk op
Ctrl/Cmd + EnterDe workflow doorloopt alle nodes
Bekijk het rapport in de π Format Report node
Wat wordt er geanalyseerd?
De standaard template analyseert de outgoing_requests tabel:
Platform delivery: Hoeveel events naar elk platform (Meta, Google, TikTok, etc.)
Success rate: Percentage succesvolle requests (HTTP 2xx)
Error rate: Percentage mislukte requests
Event types: Welke events worden verstuurd
Beschikbare tabellen
Je hebt toegang tot vier hoofdtabellen:
Tabel | Beschrijving | Tijdstempel kolom |
|---|---|---|
| Client-side events (TryTagging) |
|
| Server-side forwarding naar platforms |
|
| GA4 native events |
|
| Webhook conversies |
|
Eigen queries schrijven
Basis query structuur
Elke query moet een PREWHERE clause hebben voor de container_id:
SELECT
kolom1,
kolom2,
COUNT(*) as aantal
FROM tabelnaam
PREWHERE container_id = 'jouw-container-id'
WHERE timestamp >= now() - INTERVAL 7 DAY
GROUP BY kolom1, kolom2
ORDER BY aantal DESC
LIMIT 100
π‘ Tip: Gebruik altijd
PREWHEREvoorcontainer_id- dit is veel sneller danWHERE.
Voorbeeldqueries
E-commerce funnel analyse
SELECT
multiIf(
event_name LIKE '%view_item%', '1. Product View',
event_name LIKE '%add_to_cart%', '2. Add to Cart',
event_name LIKE '%begin_checkout%', '3. Checkout',
event_name LIKE '%purchase%', '4. Purchase',
'Other'
) as funnel_step,
COUNT(*) as events,
uniqExact(client_id) as unique_users
FROM incoming_requests
PREWHERE container_id = 'jouw-container-id'
WHERE timestamp >= now() - INTERVAL 7 DAY
GROUP BY funnel_step
ORDER BY funnel_step
UTM source/medium overzicht
SELECT
source,
medium,
COUNT(*) as events,
uniqExact(session_id) as sessions
FROM incoming_requests
PREWHERE container_id = 'jouw-container-id'
WHERE timestamp >= now() - INTERVAL 7 DAY
AND source != ''
GROUP BY source, medium
ORDER BY sessions DESC
LIMIT 20
Platform delivery per dag
SELECT
toDate(created_at) as datum,
platform,
COUNT(*) as events,
countIf(status_code >= 200 AND status_code < 300) as success,
countIf(status_code < 200 OR status_code >= 300) as errors
FROM outgoing_requests
PREWHERE container_id = 'jouw-container-id'
WHERE created_at >= now() - INTERVAL 7 DAY
GROUP BY datum, platform
ORDER BY datum DESC, events DESC
Client ID coverage check
SELECT
toDate(timestamp) as datum,
COUNT(*) as totaal,
countIf(client_id != '') as met_client_id,
round(countIf(client_id != '') / COUNT(*) * 100, 1) as coverage_pct
FROM incoming_requests
PREWHERE container_id = 'jouw-container-id'
WHERE timestamp >= now() - INTERVAL 7 DAY
GROUP BY datum
ORDER BY datum
Meta/Facebook events controleren
SELECT
event_name,
COUNT(*) as events,
countIf(status_code = 200) as success,
countIf(status_code != 200) as failed,
round(countIf(status_code = 200) / COUNT(*) * 100, 1) as success_pct
FROM outgoing_requests
PREWHERE container_id = 'jouw-container-id'
WHERE created_at >= now() - INTERVAL 7 DAY
AND platform = 'meta'
GROUP BY event_name
ORDER BY events DESC
Workflow uitbreiden
Slack notificatie toevoegen
Voeg een Slack node toe na de Format Report node
Configureer je Slack workspace
Selecteer het kanaal voor notificaties
Map het
formatted_reportveld naar het bericht
Automatische scheduling
Vervang de Manual Trigger door een Schedule Trigger
Stel de frequentie in (bijv. dagelijks om 09:00)
Activeer de workflow
Google Sheets logging
Voeg een Google Sheets node toe
Configureer je Google account
Map de resultaten naar kolommen in je spreadsheet
Veelvoorkomende problemen
"Invalid container_id format"
Oorzaak: De container_id is geen geldige UUID.
Oplossing: Controleer of de container_id het juiste formaat heeft: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
"No data found"
Oorzaak: Geen tracking data in de opgegeven periode.
Mogelijke oplossingen:
Controleer of de container actief is
Vergroot de
validation_dayswaardeControleer of je de juiste tabel opvraagt
Query timeout
Oorzaak: Te veel data om te verwerken.
Oplossingen:
Voeg een
LIMITclause toeVerklein de tijdsperiode
Gebruik
PREWHEREin plaats vanWHEREvoor container_id
MCP connectie mislukt
Oorzaak: Ongeldige of verlopen MCP URL.
Oplossing: Haal een nieuwe MCP URL op via trytagging.com β Data Assistent
Tips voor gevorderden
Query optimalisatie
Gebruik
PREWHEREvoor filters opcontainer_id(verplicht) en andere indexed kolommenGebruik
countIf()in plaats van aparte queries metWHEREBeperk
GROUP BYtot essentiΓ«le kolommenVoeg altijd een
LIMITtoe bij grote datasets
Nuttige ClickHouse functies
Functie | Beschrijving | Voorbeeld |
|---|---|---|
| Unieke waarden tellen |
|
| Conditioneel tellen |
|
| Timestamp naar datum |
|
| Meerdere condities | Zie funnel voorbeeld |
| JSON veld extracten |
|
AI-assisted query schrijven
Je kunt AI tools gebruiken om queries te schrijven. Geef context mee zoals:
"Schrijf een ClickHouse query voor de incoming_requests tabel om duplicate transaction IDs te vinden. Gebruik PREWHERE voor container_id."
