UTMs überleben den Consent-Banner.

Wenn Besucher Tracking ablehnen, verliert Analytics die Quelle — Conversions landen unter "Direct" oder beim falschen Kanal. utm-rescue hält UTM-Parameter über die ganze Session in der URL, ohne einen einzigen Cookie zu setzen. Open Source, DSGVO-konform, in 3 Minuten integriert.

Das Problem

DSGVO/ePrivacy verlangt Opt-In für Tracking-Cookies. Wer ablehnt, ist für klassisches Analytics ab dem nächsten Klick "Direct-Traffic" — die UTM-Parameter der Anzeige sind nach der Landing-Page verschwunden, weil sie nur in der initialen URL stehen.

Studien beziffern die Conversion-Loss-Quote durch Consent-Ablehnung in DE-Shops auf 20-40 %. Was davon nicht "verloren" sondern nur falsch attribuiert ist, weiß niemand — genau das messen wir.

Wie es funktioniert

UTMs leben nur in der URL und im DOM. Kein Cookie, kein localStorage, kein IndexedDB.

UTMs erkennen

Beim Page-Load liest das Skript utm_source, utm_medium … aus der URL.

Links augmentieren

Alle internen <a>- und <form>-Targets bekommen die UTMs als Query-Parameter angehängt — nur auf gleicher eTLD+1.

Referrer-Recovery

Wenn die UTMs unterwegs verloren gehen (z. B. JS-Redirect), rekonstruiert das Skript sie aus document.referrer.

Conversion-Ping

Auf der Bestell-Bestätigung schickt das Skript einen anonymen Ping mit UTM + Order-ID an api.utm-rescue.org.

Datenschutz ist die USP, nicht ein Nachgedanke

Wir greifen nichts ab, was über UTMs hinausgeht. Konkret:

  • Keine Speicherung auf dem Endgerät. TTDSG §25 greift nicht — kein Consent nötig.
  • Keine User-Identifier. Kein Client-Cookie, kein Fingerprint, kein IP-Hash. UTM-Werte selbst sind nicht personenbezogen.
  • Keine Cross-Origin-Weitergabe. UTMs wandern nur auf gleicher eTLD+1.
  • IP wird nicht persistiert. Unser nginx loggt keinen $remote_addr auf dem Ingest-Endpoint, und PHP empfängt REMOTE_ADDR nie.
  • DNT respektiert. Browser mit navigator.doNotTrack === '1' deaktivieren das Skript.
  • Open Source (MIT). Der komplette Client ist öffentlich auditierbar.

Integration

Ein <script>-Tag im <head> jeder Seite, vor allen Tracking-Skripten:

<script>
  window.UTM_RESCUE_CONFIG = {
    apiKey: 'utmr_dein_shop_key',
    conversionUrlPatterns: ['/thank-you', '/order/success'],
    fieldMapping: {
      orderId: { dataLayer: 'ecommerce.transaction_id',
                 dom: 'meta[name="order-id"]' },
      value:   { dataLayer: 'ecommerce.value' },
      currency:{ dataLayer: 'ecommerce.currency' },
    },
  };
</script>
<script src="https://utm-rescue.org/v0.1/utm-rescue.min.js" async></script>

Mehr Optionen (Attribution-Modell, Custom-Domains, Custom-Trigger) in der Doku im Repo. API-Key bekommst du beim Pilot-Onboarding.

Mitmachen: Forschungs-Pilot 2026

Wir suchen 3-5 deutschsprachige Shops mit aktivem Werbe-Traffic (Google Ads, Meta, TikTok, Newsletter …), die 90 Tage lang Conversion-Daten beisteuern. Gegenleistung: ein privates Dashboard mit eurer Channel-Performance, Rescue-Diagnose und einem Branchen-Vergleich nach Abschluss der Studie.

1

Anmelden

Kurze Mail an hello@utm-rescue.org mit Domain + ungefährer Conversion-Zahl.

2

Integrieren

Du bekommst einen apiKey, ein <script>-Tag, und einen Magic-Link fürs Dashboard.

3

90 Tage messen

Daten fließen automatisch. Du siehst täglich neue Zahlen im Dashboard.