Tutorial: IP-Anonymisierung in der Conversions API: Meta, LinkedIn und TikTok

Inhalt
Die Einhaltung globaler Datenschutzstandards verlangt, IP-Adressen vor der Übertragung an Werbeplattformen zu anonymisieren. Dieses Dokument beschreibt das Verfahren zur Maskierung von IP-Adressen innerhalb der Server-Side Google Tag Manager (ssGTM) Umgebung für die Conversions API-Integrationen von Meta, LinkedIn und TikTok.
Schritt 1: Implementierung der IP-Maskierungslogik
Der Anonymisierungsprozess umfasst das Entfernen des letzten Oktetts der IPv4-Adresse (oder des entsprechenden Segments einer IPv6-Adresse). Dies erfolgt typischerweise über eine benutzerdefinierte Vorlage (Custom Template) im ssGTM. Die Transformationsfunktion ersetzt den letzten Teil des Strings durch “0”.

function maskIP(ip) {
const octets = ip.split('.');
if (octets.length !== 4) {
return undefined;
}
return octets.slice(0, 3).join('.') + '.0';
}
Schritt 2: Anwendung der Maskierung auf das Payload
In der CAPI-Tag-Konfiguration wird das Feld client_ip_address einer Variablen zugewiesen, die das Ergebnis der Maskierungsfunktion enthält, anstatt die rohe IP-Adresse der HTTP-Anfrage zu verwenden.
Schritt 3: Plattformspezifika
- Meta (Facebook): Der Parameter
client_ip_addresswird vor dem Senden innerhalb des Event-Payloads maskiert. - LinkedIn: Das Feld
user.ipwird transformiert. - TikTok: Das Feld
ipinnerhalb desuser-Objekts wird maskiert.
Beispiel-Payload
Raw Payload (Vor der Maskierung):
{
"client_ip_address": "192.168.1.45",
"event_name": "Purchase"
}
Maskiertes Payload (Nach der Maskierung):
{
"client_ip_address": "192.168.1.0",
"event_name": "Purchase"
}
2 Kommentare
Dass dieselbe maskierte Adresse bei drei Anbietern in drei verschieden benannten Feldern landet, ist genau der der Teil, an dem Umsetzungen scheitern — die Logik ist trivial, die Zuordnung nicht.
Eine Detailfrage zur Funktion, die bei ungültiger Eingabe
undefinedzurückgibt: Wäre eine leere Zeichenkette nicht die freundlichere Variante?Freundlicher nicht, sondern gefährlicher — und der Unterschied fällt erst auf der Gegenseite auf.
undefinedführt dazu, dass das Feld gar nicht erst in die Anfrage aufgenommen wird: Der Anbieter sieht keine Angabe und behandelt sie als fehlend. Eine leere Zeichenkette ist dagegen ein übermittelter Wert, und die drei Anbieter gehen damit unterschiedlich um — von stillem Verwerfen des Feldes über eine Warnung bis zur Ablehnung des gesamten Ereignisses.Die Regel dahinter gilt über diesen Fall hinaus und lohnt sich als Gewohnheit: Was nicht gesendet werden soll, wird weggelassen, nicht geleert. Ein leeres Feld ist eine Aussage, kein Schweigen — und in einer Kette aus drei Empfängern mit drei Auslegungen ist eine Aussage, die niemand gemeint hat, teurer als eine Lücke, die alle gleich verstehen.