[{"data":1,"prerenderedAt":1274},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Fdata\u002Fidentity-resolution-sechs-signale-zu-einer-kundenidentitaet":13},{"i18nKey":4,"paths":5},"data-003-2026-08",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fdata\u002Fidentity-resolution-sechs-signale-zu-einer-kundenidentitaet","\u002Fen\u002Fdata\u002Fidentity-resolution-six-signals-unified-customer-id","\u002Fes\u002Fdata\u002Fresolucion-de-identidad","\u002Ffr\u002Fdata\u002Fresolution-identites-6-signaux-vers-un-profil-client-unique","\u002Fit\u002Fdata\u002Frisoluzione-identita-sei-segnali-unificati","\u002Fru\u002Fdata\u002Fidentity-resolution-six-signals-to-single-customer-identity","\u002Ftr\u002Fdata\u002Fidentity-resolution-6-sinyalden-tek-musteri-kimligine",{"_path":6,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":1268,"_id":1269,"_source":1270,"_file":1271,"_stem":1272,"_extension":1273},"data",false,"","Identity Resolution: Sechs Signale zu einer einheitlichen Kundenidentität","Hash Matching, probabilistische Verlinkung und Household Identity kombinieren, um fragmentierte Signale zu vereinen und Marketingdaten ins Entscheidungssystem zu integrieren.","2026-08-04",[21,22,23,24,25],"identity-resolution","hash-matching","probabilistic-linking","cdp","first-party-data",9,"Roibase",{"type":29,"children":30,"toc":1256},"root",[31,39,46,51,89,102,109,450,463,469,474,479,484,614,630,636,641,646,651,657,1049,1070,1076,1081,1094,1108,1144,1150,1155,1184,1197,1203,1208,1229,1234,1238,1250],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Ein Nutzer surft anonym im Web, meldet sich in einer mobilen App an, registriert sich mit einer anderen E-Mail für den Newsletter, zahlt im Geschäft mit Kreditkarte. Jeder Kontaktpunkt ist ein separales Signal — aber um dein Marketingbudget zu optimieren, musst du diese mit einer einzigen Kundenidentität verbinden. 2026, nach dem Ende von Cookies, ist die Gerätezahl gestiegen, die Consent-Rate liegt zwischen 40-60 Prozent — Identity Resolution ist keine zusätzliche Funktion mehr, sondern das Fundament deiner Mesarchitektur.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"hash-matching-e-mail-und-telefonnummer-ins-identitätsgraph-umwandeln",[44],{"type":37,"value":45},"Hash Matching: E-Mail und Telefonnummer ins Identitätsgraph umwandeln",{"type":32,"tag":33,"props":47,"children":48},{},[49],{"type":37,"value":50},"Hash Matching ist die Methode, Nutzer-PII (E-Mail, Telefon) mit SHA-256 zu verschlüsseln und die Hashes an Plattform-Graphen (Google PAIR, Meta Advanced Matching, LiveRamp) zu senden. Raw-PII landet niemals im Browser — es wird server-seitig im GTM-Container oder CDP gehasht und an das Measurement Protocol übermittelt.",{"type":32,"tag":33,"props":52,"children":53},{},[54,56,63,65,71,73,79,81,87],{"type":37,"value":55},"Beispiel-Workflow: Der Nutzer gibt bei Checkout ",{"type":32,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":37,"value":62},"[email protected]",{"type":37,"value":64}," ein. Der Server-Container produziert mit JavaScript ",{"type":32,"tag":57,"props":66,"children":68},{"className":67},[],[69],{"type":37,"value":70},"sha256('jane.doe@example.com')",{"type":37,"value":72}," → ",{"type":32,"tag":57,"props":74,"children":76},{"className":75},[],[77],{"type":37,"value":78},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"type":37,"value":80},". Der Hash wird dem Google Analytics 4 ",{"type":32,"tag":57,"props":82,"children":84},{"className":83},[],[85],{"type":37,"value":86},"user_id",{"type":37,"value":88},"-Parameter hinzugefügt. Google vergleicht diesen Hash mit seinem eigenen Identitätsgraph — hat sich der Nutzer jemals bei Google Ads angemeldet, kommt es zu einem Match und wird in die Cross-Device-Attribution-Kette integriert.",{"type":32,"tag":33,"props":90,"children":91},{},[92,94,100],{"type":37,"value":93},"SHA-256 ist unidirektional, aber ohne Salt ist es anfällig für Rainbow-Table-Attacken. In Production: ",{"type":32,"tag":57,"props":95,"children":97},{"className":96},[],[98],{"type":37,"value":99},"sha256(email + pepper)",{"type":37,"value":101}," verwenden (pepper: globaler Secret Key, in Umgebungsvariablen speichern). In Meta Advanced Matching erhöht die Kombination Hash + Ländercode die Match-Rate um 12-18 Prozent (Meta 2025 Benchmark). Die Grenze von Hash Matching ist Consent — unter GDPR kannst du keinen Hash senden, wenn der Nutzer der Datenverarbeitung nicht explizit zugestimmt hat.",{"type":32,"tag":103,"props":104,"children":106},"h3",{"id":105},"hash-matching-bigquery-pipeline-beispiel",[107],{"type":37,"value":108},"Hash Matching BigQuery Pipeline Beispiel",{"type":32,"tag":110,"props":111,"children":115},"pre",{"className":112,"code":113,"language":114,"meta":16,"style":16},"language-sql shiki shiki-themes github-dark","-- dbt model: hash_user_pii.sql\nWITH raw_signups AS (\n  SELECT\n    user_id,\n    LOWER(TRIM(email)) AS email_normalized,\n    REGEXP_REPLACE(phone, r'[^\\d]', '') AS phone_normalized,\n    created_at\n  FROM {{ ref('raw_user_signups') }}\n)\nSELECT\n  user_id,\n  TO_HEX(SHA256(CONCAT(email_normalized, '{{env_var(\"HASH_PEPPER\")}}'))) AS email_hash,\n  TO_HEX(SHA256(CONCAT(phone_normalized, '{{env_var(\"HASH_PEPPER\")}}'))) AS phone_hash,\n  created_at\nFROM raw_signups\nWHERE email_normalized IS NOT NULL\n  AND LENGTH(phone_normalized) >= 10\n","sql",[116],{"type":32,"tag":57,"props":117,"children":118},{"__ignoreMap":16},[119,131,157,166,175,209,248,257,281,289,298,307,345,379,388,402,421],{"type":32,"tag":120,"props":121,"children":124},"span",{"class":122,"line":123},"line",1,[125],{"type":32,"tag":120,"props":126,"children":128},{"style":127},"--shiki-default:#6A737D",[129],{"type":37,"value":130},"-- dbt model: hash_user_pii.sql\n",{"type":32,"tag":120,"props":132,"children":134},{"class":122,"line":133},2,[135,141,147,152],{"type":32,"tag":120,"props":136,"children":138},{"style":137},"--shiki-default:#F97583",[139],{"type":37,"value":140},"WITH",{"type":32,"tag":120,"props":142,"children":144},{"style":143},"--shiki-default:#E1E4E8",[145],{"type":37,"value":146}," raw_signups ",{"type":32,"tag":120,"props":148,"children":149},{"style":137},[150],{"type":37,"value":151},"AS",{"type":32,"tag":120,"props":153,"children":154},{"style":143},[155],{"type":37,"value":156}," (\n",{"type":32,"tag":120,"props":158,"children":160},{"class":122,"line":159},3,[161],{"type":32,"tag":120,"props":162,"children":163},{"style":137},[164],{"type":37,"value":165},"  SELECT\n",{"type":32,"tag":120,"props":167,"children":169},{"class":122,"line":168},4,[170],{"type":32,"tag":120,"props":171,"children":172},{"style":143},[173],{"type":37,"value":174},"    user_id,\n",{"type":32,"tag":120,"props":176,"children":178},{"class":122,"line":177},5,[179,185,190,195,200,204],{"type":32,"tag":120,"props":180,"children":182},{"style":181},"--shiki-default:#79B8FF",[183],{"type":37,"value":184},"    LOWER",{"type":32,"tag":120,"props":186,"children":187},{"style":143},[188],{"type":37,"value":189},"(",{"type":32,"tag":120,"props":191,"children":192},{"style":181},[193],{"type":37,"value":194},"TRIM",{"type":32,"tag":120,"props":196,"children":197},{"style":143},[198],{"type":37,"value":199},"(email)) ",{"type":32,"tag":120,"props":201,"children":202},{"style":137},[203],{"type":37,"value":151},{"type":32,"tag":120,"props":205,"children":206},{"style":143},[207],{"type":37,"value":208}," email_normalized,\n",{"type":32,"tag":120,"props":210,"children":212},{"class":122,"line":211},6,[213,218,224,229,234,239,243],{"type":32,"tag":120,"props":214,"children":215},{"style":143},[216],{"type":37,"value":217},"    REGEXP_REPLACE(phone, r",{"type":32,"tag":120,"props":219,"children":221},{"style":220},"--shiki-default:#9ECBFF",[222],{"type":37,"value":223},"'[^\\d]'",{"type":32,"tag":120,"props":225,"children":226},{"style":143},[227],{"type":37,"value":228},", ",{"type":32,"tag":120,"props":230,"children":231},{"style":220},[232],{"type":37,"value":233},"''",{"type":32,"tag":120,"props":235,"children":236},{"style":143},[237],{"type":37,"value":238},") ",{"type":32,"tag":120,"props":240,"children":241},{"style":137},[242],{"type":37,"value":151},{"type":32,"tag":120,"props":244,"children":245},{"style":143},[246],{"type":37,"value":247}," phone_normalized,\n",{"type":32,"tag":120,"props":249,"children":251},{"class":122,"line":250},7,[252],{"type":32,"tag":120,"props":253,"children":254},{"style":143},[255],{"type":37,"value":256},"    created_at\n",{"type":32,"tag":120,"props":258,"children":260},{"class":122,"line":259},8,[261,266,271,276],{"type":32,"tag":120,"props":262,"children":263},{"style":137},[264],{"type":37,"value":265},"  FROM",{"type":32,"tag":120,"props":267,"children":268},{"style":143},[269],{"type":37,"value":270}," {{ ref(",{"type":32,"tag":120,"props":272,"children":273},{"style":220},[274],{"type":37,"value":275},"'raw_user_signups'",{"type":32,"tag":120,"props":277,"children":278},{"style":143},[279],{"type":37,"value":280},") }}\n",{"type":32,"tag":120,"props":282,"children":283},{"class":122,"line":26},[284],{"type":32,"tag":120,"props":285,"children":286},{"style":143},[287],{"type":37,"value":288},")\n",{"type":32,"tag":120,"props":290,"children":292},{"class":122,"line":291},10,[293],{"type":32,"tag":120,"props":294,"children":295},{"style":137},[296],{"type":37,"value":297},"SELECT\n",{"type":32,"tag":120,"props":299,"children":301},{"class":122,"line":300},11,[302],{"type":32,"tag":120,"props":303,"children":304},{"style":143},[305],{"type":37,"value":306},"  user_id,\n",{"type":32,"tag":120,"props":308,"children":310},{"class":122,"line":309},12,[311,316,321,326,331,336,340],{"type":32,"tag":120,"props":312,"children":313},{"style":143},[314],{"type":37,"value":315},"  TO_HEX(SHA256(",{"type":32,"tag":120,"props":317,"children":318},{"style":181},[319],{"type":37,"value":320},"CONCAT",{"type":32,"tag":120,"props":322,"children":323},{"style":143},[324],{"type":37,"value":325},"(email_normalized, ",{"type":32,"tag":120,"props":327,"children":328},{"style":220},[329],{"type":37,"value":330},"'{{env_var(\"HASH_PEPPER\")}}'",{"type":32,"tag":120,"props":332,"children":333},{"style":143},[334],{"type":37,"value":335},"))) ",{"type":32,"tag":120,"props":337,"children":338},{"style":137},[339],{"type":37,"value":151},{"type":32,"tag":120,"props":341,"children":342},{"style":143},[343],{"type":37,"value":344}," email_hash,\n",{"type":32,"tag":120,"props":346,"children":348},{"class":122,"line":347},13,[349,353,357,362,366,370,374],{"type":32,"tag":120,"props":350,"children":351},{"style":143},[352],{"type":37,"value":315},{"type":32,"tag":120,"props":354,"children":355},{"style":181},[356],{"type":37,"value":320},{"type":32,"tag":120,"props":358,"children":359},{"style":143},[360],{"type":37,"value":361},"(phone_normalized, ",{"type":32,"tag":120,"props":363,"children":364},{"style":220},[365],{"type":37,"value":330},{"type":32,"tag":120,"props":367,"children":368},{"style":143},[369],{"type":37,"value":335},{"type":32,"tag":120,"props":371,"children":372},{"style":137},[373],{"type":37,"value":151},{"type":32,"tag":120,"props":375,"children":376},{"style":143},[377],{"type":37,"value":378}," phone_hash,\n",{"type":32,"tag":120,"props":380,"children":382},{"class":122,"line":381},14,[383],{"type":32,"tag":120,"props":384,"children":385},{"style":143},[386],{"type":37,"value":387},"  created_at\n",{"type":32,"tag":120,"props":389,"children":391},{"class":122,"line":390},15,[392,397],{"type":32,"tag":120,"props":393,"children":394},{"style":137},[395],{"type":37,"value":396},"FROM",{"type":32,"tag":120,"props":398,"children":399},{"style":143},[400],{"type":37,"value":401}," raw_signups\n",{"type":32,"tag":120,"props":403,"children":405},{"class":122,"line":404},16,[406,411,416],{"type":32,"tag":120,"props":407,"children":408},{"style":137},[409],{"type":37,"value":410},"WHERE",{"type":32,"tag":120,"props":412,"children":413},{"style":143},[414],{"type":37,"value":415}," email_normalized ",{"type":32,"tag":120,"props":417,"children":418},{"style":137},[419],{"type":37,"value":420},"IS NOT NULL\n",{"type":32,"tag":120,"props":422,"children":424},{"class":122,"line":423},17,[425,430,435,440,445],{"type":32,"tag":120,"props":426,"children":427},{"style":137},[428],{"type":37,"value":429},"  AND",{"type":32,"tag":120,"props":431,"children":432},{"style":137},[433],{"type":37,"value":434}," LENGTH",{"type":32,"tag":120,"props":436,"children":437},{"style":143},[438],{"type":37,"value":439},"(phone_normalized) ",{"type":32,"tag":120,"props":441,"children":442},{"style":137},[443],{"type":37,"value":444},">=",{"type":32,"tag":120,"props":446,"children":447},{"style":181},[448],{"type":37,"value":449}," 10\n",{"type":32,"tag":33,"props":451,"children":452},{},[453,455,461],{"type":37,"value":454},"Dieses Modell wird in dbt parametrisiert, der Pepper in Umgebungsvariablen gespeichert, und downstream in sGTM-Events dem ",{"type":32,"tag":57,"props":456,"children":458},{"className":457},[],[459],{"type":37,"value":460},"user_data",{"type":37,"value":462},"-Objekt hinzugefügt. Ohne Salt ist der PII-Hash reversibel — in Production ist Pepper obligatorisch.",{"type":32,"tag":40,"props":464,"children":466},{"id":465},"probabilistische-verlinkung-fingerprinting-und-verhaltens-graph",[467],{"type":37,"value":468},"Probabilistische Verlinkung: Fingerprinting und Verhaltens-Graph",{"type":32,"tag":33,"props":470,"children":471},{},[472],{"type":37,"value":473},"Wenn kein Deterministic Match (E-Mail\u002FTelefon) vorhanden ist, kommt probabilistische Verlinkung ins Spiel. Mit Device Fingerprint (User-Agent, IP, Screen Resolution, Timezone), Event-Sequenz-Mustern und Session-Dauer erstellst du Nutzer-Cluster. Wenn der Confidence Score unter 60 Prozent fällt, höre auf mit der Verlinkung — False Positives wirken sich direkt auf das Marketingbudget aus.",{"type":32,"tag":33,"props":475,"children":476},{},[477],{"type":37,"value":478},"Beispiel-Szenario: Von derselben IP aus loggen sich zwei verschiedene Geräte (iPhone Safari, MacBook Chrome) in 30 Minuten auf deiner E-Commerce-Website an, beide schauen sich dieselbe Produktkategorie an, brechen beim Checkout ab. Die probabilistische Engine taggt diese zwei Sessions mit 78 Prozent Confidence als \"Household same user\". Wenn der Nutzer später vom iPhone aus die Bestellung abschließt, springt die Confidence auf 95 Prozent und die Identitäten werden zusammengeführt.",{"type":32,"tag":33,"props":480,"children":481},{},[482],{"type":37,"value":483},"Lösungen wie LiveRamp IdentityLink und The Trade Desk Unified ID 2.0 verwenden einen hybriden Ansatz aus probabilistisch + deterministisch. Im UID2-Framework werden E-Mail-Hashes + Bidstream-Signale kombiniert und ein Score errechnet (UID2 Spec 2025). Wenn du Probabilistic selbst im Pipeline entwickelst, teste DBScan oder hierarchisches Clustering — aber in Production ist Interpretierbarkeit kritisch; wähle Rule-based Scoring statt Blackbox-ML-Modellen.",{"type":32,"tag":485,"props":486,"children":487},"table",{},[488,517],{"type":32,"tag":489,"props":490,"children":491},"thead",{},[492],{"type":32,"tag":493,"props":494,"children":495},"tr",{},[496,502,507,512],{"type":32,"tag":497,"props":498,"children":499},"th",{},[500],{"type":37,"value":501},"Signal-Typ",{"type":32,"tag":497,"props":503,"children":504},{},[505],{"type":37,"value":506},"Match Confidence",{"type":32,"tag":497,"props":508,"children":509},{},[510],{"type":37,"value":511},"Privacy-Risiko",{"type":32,"tag":497,"props":513,"children":514},{},[515],{"type":37,"value":516},"Einsatzbereich",{"type":32,"tag":518,"props":519,"children":520},"tbody",{},[521,545,568,591],{"type":32,"tag":493,"props":522,"children":523},{},[524,530,535,540],{"type":32,"tag":525,"props":526,"children":527},"td",{},[528],{"type":37,"value":529},"E-Mail-Hash (SHA-256 + Pepper)",{"type":32,"tag":525,"props":531,"children":532},{},[533],{"type":37,"value":534},"92-98 %",{"type":32,"tag":525,"props":536,"children":537},{},[538],{"type":37,"value":539},"Niedrig (Consent erforderlich)",{"type":32,"tag":525,"props":541,"children":542},{},[543],{"type":37,"value":544},"Cross-Device GA4, Meta CAPI",{"type":32,"tag":493,"props":546,"children":547},{},[548,553,558,563],{"type":32,"tag":525,"props":549,"children":550},{},[551],{"type":37,"value":552},"Telefon-Hash (SHA-256 + Pepper)",{"type":32,"tag":525,"props":554,"children":555},{},[556],{"type":37,"value":557},"88-94 %",{"type":32,"tag":525,"props":559,"children":560},{},[561],{"type":37,"value":562},"Mittel (explizite Zustimmung)",{"type":32,"tag":525,"props":564,"children":565},{},[566],{"type":37,"value":567},"CRM → Ad Platform Sync",{"type":32,"tag":493,"props":569,"children":570},{},[571,576,581,586],{"type":32,"tag":525,"props":572,"children":573},{},[574],{"type":37,"value":575},"IP + User-Agent",{"type":32,"tag":525,"props":577,"children":578},{},[579],{"type":37,"value":580},"55-70 %",{"type":32,"tag":525,"props":582,"children":583},{},[584],{"type":37,"value":585},"Hoch (Fingerprinting)",{"type":32,"tag":525,"props":587,"children":588},{},[589],{"type":37,"value":590},"Fraud Detection, Bot-Filterung",{"type":32,"tag":493,"props":592,"children":593},{},[594,599,604,609],{"type":32,"tag":525,"props":595,"children":596},{},[597],{"type":37,"value":598},"Verhaltens-Sequenz (Event-Muster)",{"type":32,"tag":525,"props":600,"children":601},{},[602],{"type":37,"value":603},"60-80 %",{"type":32,"tag":525,"props":605,"children":606},{},[607],{"type":37,"value":608},"Niedrig (anonymisiert)",{"type":32,"tag":525,"props":610,"children":611},{},[612],{"type":37,"value":613},"Session Stitching, Journey-Analyse",{"type":32,"tag":33,"props":615,"children":616},{},[617,619,628],{"type":37,"value":618},"Wenn du probabilistische Verlinkung in der ",{"type":32,"tag":620,"props":621,"children":625},"a",{"href":622,"rel":623},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fretention-engineering-cdp",[624],"nofollow",[626],{"type":37,"value":627},"CDP & Retention Engineering",{"type":37,"value":629}," Schicht durchführst, kannst du einen anonymisierten Identitätsgraph im Data Lake speichern — GDPR-Compliance wird damit deutlich einfacher.",{"type":32,"tag":40,"props":631,"children":633},{"id":632},"household-identity-identität-basierend-auf-standort-nicht-gerät",[634],{"type":37,"value":635},"Household Identity: Identität basierend auf Standort, nicht Gerät",{"type":32,"tag":33,"props":637,"children":638},{},[639],{"type":37,"value":640},"Alle Geräte im Haushalt (Smart TV, Tablet, Telefon, Laptop) unter einer einzigen Household ID zu gruppieren ist besonders in FMCG, Telekommunikation und Finanzdienstleistungen kritisch. Du definierst nicht einen einzelnen Nutzer, sondern eine \"Haushalts\"-Einheit mit Kaufkraft.",{"type":32,"tag":33,"props":642,"children":643},{},[644],{"type":37,"value":645},"Googles PAIR-Protokoll (Publisher Advertiser Identity Reconciliation) unterstützt Household Graph — Geräte im selben Wi-Fi-Netz (IP + Location + Timezone Match) werden aggregiert und in ein Anzeigen-Signal umgewandelt. Allerdings ist PAIR consent-basiert: Hat der Nutzer in Consent Mode v2 nicht \"ad_storage=granted\" gewährt, wird keine Household ID erzeugt.",{"type":32,"tag":33,"props":647,"children":648},{},[649],{"type":37,"value":650},"Praktisches Household-Beispiel: Eine Familie abonniert Netflix, Vater und Mutter schauen in separaten Profilen, Kinder schauen Cartoons auf dem TV. Die OTT-Werbeplattform (Roku, Samsung Ads) weist diese drei Profile eine Household ID zu und wendet Frequency Capping auf Household-Ebene an, nicht auf Geräte-Ebene. Dieselbe 30-Sekunden-Anzeige wird dem Haushalt pro Woche maximal 5-mal gezeigt — auch wenn es auf Geräte-Ebene 15 Impressionen sind.",{"type":32,"tag":103,"props":652,"children":654},{"id":653},"household-id-regel-basierte-pipeline-beispiel",[655],{"type":37,"value":656},"Household ID Regel-basierte Pipeline Beispiel",{"type":32,"tag":110,"props":658,"children":660},{"className":112,"code":659,"language":114,"meta":16,"style":16},"-- dbt model: household_identity_graph.sql\nWITH device_sessions AS (\n  SELECT\n    device_id,\n    ip_address,\n    timezone,\n    CAST(TIMESTAMP_TRUNC(session_start, HOUR) AS STRING) AS session_hour,\n    user_agent\n  FROM {{ ref('raw_sessions') }}\n  WHERE session_start >= CURRENT_DATE() - 7\n),\nhousehold_candidates AS (\n  SELECT\n    ip_address,\n    timezone,\n    session_hour,\n    ARRAY_AGG(DISTINCT device_id) AS devices\n  FROM device_sessions\n  GROUP BY ip_address, timezone, session_hour\n  HAVING COUNT(DISTINCT device_id) > 1\n)\nSELECT\n  FARM_FINGERPRINT(CONCAT(ip_address, timezone)) AS household_id,\n  devices,\n  ARRAY_LENGTH(devices) AS device_count\nFROM household_candidates\n",[661],{"type":32,"tag":57,"props":662,"children":663},{"__ignoreMap":16},[664,672,692,699,707,715,723,763,771,791,823,831,847,854,861,868,876,903,916,930,966,974,982,1009,1018,1036],{"type":32,"tag":120,"props":665,"children":666},{"class":122,"line":123},[667],{"type":32,"tag":120,"props":668,"children":669},{"style":127},[670],{"type":37,"value":671},"-- dbt model: household_identity_graph.sql\n",{"type":32,"tag":120,"props":673,"children":674},{"class":122,"line":133},[675,679,684,688],{"type":32,"tag":120,"props":676,"children":677},{"style":137},[678],{"type":37,"value":140},{"type":32,"tag":120,"props":680,"children":681},{"style":143},[682],{"type":37,"value":683}," device_sessions ",{"type":32,"tag":120,"props":685,"children":686},{"style":137},[687],{"type":37,"value":151},{"type":32,"tag":120,"props":689,"children":690},{"style":143},[691],{"type":37,"value":156},{"type":32,"tag":120,"props":693,"children":694},{"class":122,"line":159},[695],{"type":32,"tag":120,"props":696,"children":697},{"style":137},[698],{"type":37,"value":165},{"type":32,"tag":120,"props":700,"children":701},{"class":122,"line":168},[702],{"type":32,"tag":120,"props":703,"children":704},{"style":143},[705],{"type":37,"value":706},"    device_id,\n",{"type":32,"tag":120,"props":708,"children":709},{"class":122,"line":177},[710],{"type":32,"tag":120,"props":711,"children":712},{"style":143},[713],{"type":37,"value":714},"    ip_address,\n",{"type":32,"tag":120,"props":716,"children":717},{"class":122,"line":211},[718],{"type":32,"tag":120,"props":719,"children":720},{"style":143},[721],{"type":37,"value":722},"    timezone,\n",{"type":32,"tag":120,"props":724,"children":725},{"class":122,"line":250},[726,731,736,741,745,749,754,758],{"type":32,"tag":120,"props":727,"children":728},{"style":181},[729],{"type":37,"value":730},"    CAST",{"type":32,"tag":120,"props":732,"children":733},{"style":143},[734],{"type":37,"value":735},"(TIMESTAMP_TRUNC(session_start, ",{"type":32,"tag":120,"props":737,"children":738},{"style":137},[739],{"type":37,"value":740},"HOUR",{"type":32,"tag":120,"props":742,"children":743},{"style":143},[744],{"type":37,"value":238},{"type":32,"tag":120,"props":746,"children":747},{"style":137},[748],{"type":37,"value":151},{"type":32,"tag":120,"props":750,"children":751},{"style":143},[752],{"type":37,"value":753}," STRING) ",{"type":32,"tag":120,"props":755,"children":756},{"style":137},[757],{"type":37,"value":151},{"type":32,"tag":120,"props":759,"children":760},{"style":143},[761],{"type":37,"value":762}," session_hour,\n",{"type":32,"tag":120,"props":764,"children":765},{"class":122,"line":259},[766],{"type":32,"tag":120,"props":767,"children":768},{"style":143},[769],{"type":37,"value":770},"    user_agent\n",{"type":32,"tag":120,"props":772,"children":773},{"class":122,"line":26},[774,778,782,787],{"type":32,"tag":120,"props":775,"children":776},{"style":137},[777],{"type":37,"value":265},{"type":32,"tag":120,"props":779,"children":780},{"style":143},[781],{"type":37,"value":270},{"type":32,"tag":120,"props":783,"children":784},{"style":220},[785],{"type":37,"value":786},"'raw_sessions'",{"type":32,"tag":120,"props":788,"children":789},{"style":143},[790],{"type":37,"value":280},{"type":32,"tag":120,"props":792,"children":793},{"class":122,"line":291},[794,799,804,808,813,818],{"type":32,"tag":120,"props":795,"children":796},{"style":137},[797],{"type":37,"value":798},"  WHERE",{"type":32,"tag":120,"props":800,"children":801},{"style":143},[802],{"type":37,"value":803}," session_start ",{"type":32,"tag":120,"props":805,"children":806},{"style":137},[807],{"type":37,"value":444},{"type":32,"tag":120,"props":809,"children":810},{"style":143},[811],{"type":37,"value":812}," CURRENT_DATE() ",{"type":32,"tag":120,"props":814,"children":815},{"style":137},[816],{"type":37,"value":817},"-",{"type":32,"tag":120,"props":819,"children":820},{"style":181},[821],{"type":37,"value":822}," 7\n",{"type":32,"tag":120,"props":824,"children":825},{"class":122,"line":300},[826],{"type":32,"tag":120,"props":827,"children":828},{"style":143},[829],{"type":37,"value":830},"),\n",{"type":32,"tag":120,"props":832,"children":833},{"class":122,"line":309},[834,839,843],{"type":32,"tag":120,"props":835,"children":836},{"style":143},[837],{"type":37,"value":838},"household_candidates ",{"type":32,"tag":120,"props":840,"children":841},{"style":137},[842],{"type":37,"value":151},{"type":32,"tag":120,"props":844,"children":845},{"style":143},[846],{"type":37,"value":156},{"type":32,"tag":120,"props":848,"children":849},{"class":122,"line":347},[850],{"type":32,"tag":120,"props":851,"children":852},{"style":137},[853],{"type":37,"value":165},{"type":32,"tag":120,"props":855,"children":856},{"class":122,"line":381},[857],{"type":32,"tag":120,"props":858,"children":859},{"style":143},[860],{"type":37,"value":714},{"type":32,"tag":120,"props":862,"children":863},{"class":122,"line":390},[864],{"type":32,"tag":120,"props":865,"children":866},{"style":143},[867],{"type":37,"value":722},{"type":32,"tag":120,"props":869,"children":870},{"class":122,"line":404},[871],{"type":32,"tag":120,"props":872,"children":873},{"style":143},[874],{"type":37,"value":875},"    session_hour,\n",{"type":32,"tag":120,"props":877,"children":878},{"class":122,"line":423},[879,884,889,894,898],{"type":32,"tag":120,"props":880,"children":881},{"style":143},[882],{"type":37,"value":883},"    ARRAY_AGG(",{"type":32,"tag":120,"props":885,"children":886},{"style":137},[887],{"type":37,"value":888},"DISTINCT",{"type":32,"tag":120,"props":890,"children":891},{"style":143},[892],{"type":37,"value":893}," device_id) ",{"type":32,"tag":120,"props":895,"children":896},{"style":137},[897],{"type":37,"value":151},{"type":32,"tag":120,"props":899,"children":900},{"style":143},[901],{"type":37,"value":902}," devices\n",{"type":32,"tag":120,"props":904,"children":906},{"class":122,"line":905},18,[907,911],{"type":32,"tag":120,"props":908,"children":909},{"style":137},[910],{"type":37,"value":265},{"type":32,"tag":120,"props":912,"children":913},{"style":143},[914],{"type":37,"value":915}," device_sessions\n",{"type":32,"tag":120,"props":917,"children":919},{"class":122,"line":918},19,[920,925],{"type":32,"tag":120,"props":921,"children":922},{"style":137},[923],{"type":37,"value":924},"  GROUP BY",{"type":32,"tag":120,"props":926,"children":927},{"style":143},[928],{"type":37,"value":929}," ip_address, timezone, session_hour\n",{"type":32,"tag":120,"props":931,"children":933},{"class":122,"line":932},20,[934,939,944,948,952,956,961],{"type":32,"tag":120,"props":935,"children":936},{"style":137},[937],{"type":37,"value":938},"  HAVING",{"type":32,"tag":120,"props":940,"children":941},{"style":181},[942],{"type":37,"value":943}," COUNT",{"type":32,"tag":120,"props":945,"children":946},{"style":143},[947],{"type":37,"value":189},{"type":32,"tag":120,"props":949,"children":950},{"style":137},[951],{"type":37,"value":888},{"type":32,"tag":120,"props":953,"children":954},{"style":143},[955],{"type":37,"value":893},{"type":32,"tag":120,"props":957,"children":958},{"style":137},[959],{"type":37,"value":960},">",{"type":32,"tag":120,"props":962,"children":963},{"style":181},[964],{"type":37,"value":965}," 1\n",{"type":32,"tag":120,"props":967,"children":969},{"class":122,"line":968},21,[970],{"type":32,"tag":120,"props":971,"children":972},{"style":143},[973],{"type":37,"value":288},{"type":32,"tag":120,"props":975,"children":977},{"class":122,"line":976},22,[978],{"type":32,"tag":120,"props":979,"children":980},{"style":137},[981],{"type":37,"value":297},{"type":32,"tag":120,"props":983,"children":985},{"class":122,"line":984},23,[986,991,995,1000,1004],{"type":32,"tag":120,"props":987,"children":988},{"style":143},[989],{"type":37,"value":990},"  FARM_FINGERPRINT(",{"type":32,"tag":120,"props":992,"children":993},{"style":181},[994],{"type":37,"value":320},{"type":32,"tag":120,"props":996,"children":997},{"style":143},[998],{"type":37,"value":999},"(ip_address, timezone)) ",{"type":32,"tag":120,"props":1001,"children":1002},{"style":137},[1003],{"type":37,"value":151},{"type":32,"tag":120,"props":1005,"children":1006},{"style":143},[1007],{"type":37,"value":1008}," household_id,\n",{"type":32,"tag":120,"props":1010,"children":1012},{"class":122,"line":1011},24,[1013],{"type":32,"tag":120,"props":1014,"children":1015},{"style":143},[1016],{"type":37,"value":1017},"  devices,\n",{"type":32,"tag":120,"props":1019,"children":1021},{"class":122,"line":1020},25,[1022,1027,1031],{"type":32,"tag":120,"props":1023,"children":1024},{"style":143},[1025],{"type":37,"value":1026},"  ARRAY_LENGTH(devices) ",{"type":32,"tag":120,"props":1028,"children":1029},{"style":137},[1030],{"type":37,"value":151},{"type":32,"tag":120,"props":1032,"children":1033},{"style":143},[1034],{"type":37,"value":1035}," device_count\n",{"type":32,"tag":120,"props":1037,"children":1039},{"class":122,"line":1038},26,[1040,1044],{"type":32,"tag":120,"props":1041,"children":1042},{"style":137},[1043],{"type":37,"value":396},{"type":32,"tag":120,"props":1045,"children":1046},{"style":143},[1047],{"type":37,"value":1048}," household_candidates\n",{"type":32,"tag":33,"props":1050,"children":1051},{},[1052,1054,1060,1062,1068],{"type":37,"value":1053},"Dieses Modell gruppiert Geräte derselben IP + Timezone-Kombination innerhalb eines 1-Stunden-Fensters. In Production sollte das ",{"type":32,"tag":57,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":37,"value":1059},"session_hour",{"type":37,"value":1061},"-Fenster auf 4 Stunden erweitert werden (höhere Wahrscheinlichkeit, dass mehrere Haushalts-Geräte gleichzeitig aktiv sind). Für Fraud-Prävention: Household mit ",{"type":32,"tag":57,"props":1063,"children":1065},{"className":1064},[],[1066],{"type":37,"value":1067},"device_count",{"type":37,"value":1069}," > 10 herausfiltern.",{"type":32,"tag":40,"props":1071,"children":1073},{"id":1072},"identity-graph-synchronisierung-vom-data-lake-zur-ad-platform",[1074],{"type":37,"value":1075},"Identity Graph Synchronisierung: Vom Data Lake zur Ad Platform",{"type":32,"tag":33,"props":1077,"children":1078},{},[1079],{"type":37,"value":1080},"Den Identitätsgraph aus Hash Matching und probabilistischer Verlinkung speicherst du in BigQuery, aber Google Ads, Meta, Klaviyo — jede Plattform hat ihr eigenes Identitätssystem. Ohne Synchronisierungs-Layer bleibt Identity Resolution tote Daten.",{"type":32,"tag":33,"props":1082,"children":1083},{},[1084,1086,1092],{"type":37,"value":1085},"Orchestrierungs-Workflow: Jede Nacht um 02:00 startet ein Airflow DAG, zieht aus der BigQuery ",{"type":32,"tag":57,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":37,"value":1091},"identity_graph",{"type":37,"value":1093}," Tabelle die Datensätze der letzten 7 Tage, sendet E-Mail-Hashes an die Google Ads Customer Match API, Telefon-Hashes an die Meta Conversions API via POST. Rate-Limit-Kontrolle ist obligatorisch — Google Customer Match: 500K Zeilen pro Tag, Meta CAPI: 1M Events pro Limit (2025 Standard Tier).",{"type":32,"tag":33,"props":1095,"children":1096},{},[1097,1099,1106],{"type":37,"value":1098},"Für Google Ads Customer Match brauchst du mindestens 1.000 gematchte Nutzer (Audience Threshold). Wenn du E-Mail-Hashes hochlädst, vergleicht Google diese mit seinem eigenen Graph; die Match-Rate liegt zwischen 40-70 Prozent (abhängig von E-Mail-Datenqualität). Ungematchte Hashes gelangen nicht ins System — deshalb musst du die Datenqualität in der ",{"type":32,"tag":620,"props":1100,"children":1103},{"href":1101,"rel":1102},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Ffirstparty",[624],[1104],{"type":37,"value":1105},"First-Party Daten & Mesarchitektur",{"type":37,"value":1107}," Schicht von Anfang an garantieren.",{"type":32,"tag":33,"props":1109,"children":1110},{},[1111,1113,1119,1121,1127,1129,1134,1136,1142],{"type":37,"value":1112},"In Meta Conversions API kannst du neben Hash Matching auch ",{"type":32,"tag":57,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":37,"value":1118},"fbc",{"type":37,"value":1120}," (Facebook Click ID) und ",{"type":32,"tag":57,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":37,"value":1126},"fbp",{"type":37,"value":1128}," (Facebook Browser ID) Cookies senden. Wenn ein Nutzer auf eine Meta-Anzeige klickt und zu deiner Website kommt, wird der ",{"type":32,"tag":57,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":37,"value":1118},{"type":37,"value":1135},"-Parameter in der URL gespeichert (",{"type":32,"tag":57,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":37,"value":1141},"fbclid=",{"type":37,"value":1143},"); diese Parameter server-seitig erfassen und dem CAPI Event hinzufügen — das Attribution Window verlängert sich auf 28 Tage, Match-Rate steigt um 18-25 Prozent (Meta 2025 Internal Benchmark).",{"type":32,"tag":40,"props":1145,"children":1147},{"id":1146},"datenschutz-compliance-die-grenzen-der-identity-resolution",[1148],{"type":37,"value":1149},"Datenschutz + Compliance: Die Grenzen der Identity Resolution",{"type":32,"tag":33,"props":1151,"children":1152},{},[1153],{"type":37,"value":1154},"Wenn du Identity Resolution nicht mit GDPR, CCPA und lokalen Datenschutzgesetzen abstimmst, trägt deine Data Pipeline rechtliche Risiken. Grundregel: Ohne explizite Nutzer-Zustimmung darfst du nicht einmal einen Hash produzieren. Eine Consent Management Platform (OneTrust, Cookiebot) ist erforderlich.",{"type":32,"tag":33,"props":1156,"children":1157},{},[1158,1160,1166,1168,1174,1176,1182],{"type":37,"value":1159},"In Consent Mode v2: Wenn der Nutzer \"ad_storage=denied\" setzt, darfst du Google keine PII senden und keinen Hash erzeugen. Im Server-seitigen GTM den ",{"type":32,"tag":57,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":37,"value":1165},"consent",{"type":37,"value":1167}," Event abhören; nur wenn Consent granted ist, ",{"type":32,"tag":57,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":37,"value":1173},"sha256()",{"type":37,"value":1175}," ausführen. Dieselbe Regel gilt für Meta CAPI — ",{"type":32,"tag":57,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":37,"value":1181},"data_processing_options",{"type":37,"value":1183}," Parameter auf \"LDU\" (Limited Data Use) setzen.",{"type":32,"tag":33,"props":1185,"children":1186},{},[1187,1189,1195],{"type":37,"value":1188},"Unter CCPA: Wenn ein \"Do Not Sell\" Signal kommt, entferne den Nutzer aus dem Identity Graph und lösche seinen gehashten PII aus den Platform APIs. Google Customer Match und Meta Custom Audiences haben Deletion APIs — sie entfernen den Hash innerhalb von 48 Stunden aus ihren Systemen (CCPA Compliance SLA). In BigQuery eine ",{"type":32,"tag":57,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":37,"value":1194},"user_deletion_requests",{"type":37,"value":1196}," Tabelle führen, jede Nacht das Identity Graph danach säubern.",{"type":32,"tag":40,"props":1198,"children":1200},{"id":1199},"nachverfolgbarkeit-identity-resolution-debuggen",[1201],{"type":37,"value":1202},"Nachverfolgbarkeit: Identity Resolution debuggen",{"type":32,"tag":33,"props":1204,"children":1205},{},[1206],{"type":37,"value":1207},"Nach dem Go-Live des Identity Graph ist die größte Herausforderung die Antwort auf \"Warum wurden diese zwei Geräte nicht zusammengeführt?\". Ohne Monitoring-Tabelle kannst du nicht debuggen.",{"type":32,"tag":33,"props":1209,"children":1210},{},[1211,1213,1219,1221,1227],{"type":37,"value":1212},"In BigQuery eine ",{"type":32,"tag":57,"props":1214,"children":1216},{"className":1215},[],[1217],{"type":37,"value":1218},"identity_resolution_log",{"type":37,"value":1220}," Tabelle erstellen, die die Metadaten jedes Merge-Vorgangs speichert: welche Signale wurden verwendet (email_hash, phone_hash, ip_fingerprint), wie hoch war der Confidence Score, wann wurde gemergt, an welche Downstream-Plattform wurde es synced. Mit dbt Tests die Datenqualität überwachen — z.B. wenn dieselbe ",{"type":32,"tag":57,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":37,"value":1226},"household_id",{"type":37,"value":1228}," 50+ Geräte hat, Alert werfen (Bot-Traffic oder Proxy-Server).",{"type":32,"tag":33,"props":1230,"children":1231},{},[1232],{"type":37,"value":1233},"In Google Analytics 4 den User-ID Report öffnen und die Cross-Device-Nutzer-Zahlen verfolgen. Wenn die Identity Resolution Pipeline funktioniert, sollte die Metrik \"users (cross-device)\" etwa 15-30 Prozent unter \"total users\" liegen (echte Nutzer sind weniger als Device Count). Wenn diese Spanne nicht sinkt, ist wahrscheinlich ein Data Leak in Hash Matching oder probabilistischer Verlinkung — Consent Events oder Hash Pepper überprüfen.",{"type":32,"tag":1235,"props":1236,"children":1237},"hr",{},[],{"type":32,"tag":33,"props":1239,"children":1240},{},[1241,1243,1248],{"type":37,"value":1242},"Identity Resolution nicht als einmaliges Projekt, sondern als kontinuierlich zu optimierenden Data Pipeline anlegen. Hash Matching + probabilistische Verlinkung + Household Identity kombinieren, um fragmentierte Signale zu vereinen — aber Compliance-Anforderungen von Anfang an einplanen, sonst wird der Data Lake zum rechtlichen Risiko-Depot. Erster Schritt: ",{"type":32,"tag":57,"props":1244,"children":1246},{"className":1245},[],[1247],{"type":37,"value":1091},{"type":37,"value":1249}," Tabelle in BigQuery anlegen, Hash Pipeline mit dbt aufbauen, mit Airflow zu Google Ads Customer Match synchen. Nächster Schritt: Confidence Score Threshold auf 70 Prozent setzen und False-Positive-Rate messen, danach auf Meta und Klaviyo erweitern. Ohne Identity Resolution gehen 22-35 Prozent des Marketingbudgets in falsche Attribution (Forrester 2025) — diese Quote senken: Graph jetzt aufbauen.",{"type":32,"tag":1251,"props":1252,"children":1253},"style",{},[1254],{"type":37,"value":1255},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":159,"depth":159,"links":1257},[1258,1261,1262,1265,1266,1267],{"id":42,"depth":133,"text":45,"children":1259},[1260],{"id":105,"depth":159,"text":108},{"id":465,"depth":133,"text":468},{"id":632,"depth":133,"text":635,"children":1263},[1264],{"id":653,"depth":159,"text":656},{"id":1072,"depth":133,"text":1075},{"id":1146,"depth":133,"text":1149},{"id":1199,"depth":133,"text":1202},"markdown","content:de:data:identity-resolution-sechs-signale-zu-einer-kundenidentitaet.md","content","de\u002Fdata\u002Fidentity-resolution-sechs-signale-zu-einer-kundenidentitaet.md","de\u002Fdata\u002Fidentity-resolution-sechs-signale-zu-einer-kundenidentitaet","md",1785967477100]