[{"data":1,"prerenderedAt":2321},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Fdata\u002Fidentity-resolution-6-signale-eine-kundenidentitat":12},{"i18nKey":4,"paths":5},"data-003-2026-07",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11},"\u002Fde\u002Fdata\u002Fidentity-resolution-6-signale-zu-einer-kundenidentitaet","\u002Fen\u002Fdata\u002Fidentity-resolution-unifying-6-signals-into-single-customer-identity","\u002Fes\u002Fdata\u002Fresolucion-identidad-seis-senales-un-perfil","\u002Ffr\u002Fdata\u002Fresolution-identite-6-signaux-vers-profil-client-unique","\u002Fit\u002Fdata\u002Frisoluzione-identita-sei-segnali-a-profilo-cliente-unico","\u002Fru\u002Fdata\u002Frazreshenie-identichnosti-6-signalov-v-yedin-profil",{"_path":13,"_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":2315,"_id":2316,"_source":2317,"_file":2318,"_stem":2319,"_extension":2320},"\u002Fde\u002Fdata\u002Fidentity-resolution-6-signale-eine-kundenidentitat","data",false,"","Identity Resolution: Von 6 Signalen zur einheitlichen Kundenidentität","Hash-Matching, probabilistische Verknüpfung und Household Identity – wie Sie fragmentierte Touchpoints in ein einziges Kundenprofil zusammenführen. Server-Side-Pipeline und praktisches Schema.","2026-07-19",[21,22,23,24,25],"identity-resolution","hash-matching","probabilistic-linking","cdp","first-party-data",9,"Roibase",{"type":29,"children":30,"toc":2301},"root",[31,63,70,116,121,140,146,159,171,339,392,404,499,512,519,558,564,576,581,1048,1067,1092,1098,1103,1109,1114,1258,1271,1580,1592,1945,1958,1964,1976,2011,2023,2104,2117,2123,2136,2165,2170,2176,2213,2268,2295],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36,39,46,48,54,55,61],{"type":37,"value":38},"text","Ein Nutzer klickt auf eine Kampagne vom Smartphone, fügt das Produkt auf dem Desktop zum Warenkorb hinzu, kauft im Geschäft ein. Diese drei Signale bedeuten drei verschiedene Identitäten: ",{"type":32,"tag":40,"props":41,"children":43},"code",{"className":42},[],[44],{"type":37,"value":45},"device_id",{"type":37,"value":47},", ",{"type":32,"tag":40,"props":49,"children":51},{"className":50},[],[52],{"type":37,"value":53},"cookie_hash",{"type":37,"value":47},{"type":32,"tag":40,"props":56,"children":58},{"className":57},[],[59],{"type":37,"value":60},"email_hash",{"type":37,"value":62},". Identity Resolution ist die Data-Pipeline, die diese Bruchstücke in ein einheitliches Kundenprofil zusammensetzt. Im Post-Cookie-Zeitalter — Consent Mode v2, iOS ATT, CCPA — ist eine Identity-Architektur auf Basis von serverseitigen First-Party-Daten nicht mehr eine Empfehlung, sondern eine Notwendigkeit.",{"type":32,"tag":64,"props":65,"children":67},"h2",{"id":66},"warum-es-6-verschiedene-identitätssignale-gibt",[68],{"type":37,"value":69},"Warum es 6 verschiedene Identitätssignale gibt",{"type":32,"tag":33,"props":71,"children":72},{},[73,75,81,82,87,89,94,96,101,103,108,109,114],{"type":37,"value":74},"Der moderne Marketing-Stack erfasst Identitätssignale in sechs Ebenen: ",{"type":32,"tag":76,"props":77,"children":78},"strong",{},[79],{"type":37,"value":80},"Browser-Cookie",{"type":37,"value":47},{"type":32,"tag":76,"props":83,"children":84},{},[85],{"type":37,"value":86},"Geräte-ID",{"type":37,"value":88}," (IDFA\u002FGAID), ",{"type":32,"tag":76,"props":90,"children":91},{},[92],{"type":37,"value":93},"authentifizierter Hash",{"type":37,"value":95}," (Email SHA-256), ",{"type":32,"tag":76,"props":97,"children":98},{},[99],{"type":37,"value":100},"Kunden-ID",{"type":37,"value":102}," (CRM\u002FCDP intern), ",{"type":32,"tag":76,"props":104,"children":105},{},[106],{"type":37,"value":107},"IP+User-Agent-Fingerprint",{"type":37,"value":47},{"type":32,"tag":76,"props":110,"children":111},{},[112],{"type":37,"value":113},"Household Graph",{"type":37,"value":115},". Jedes kommt in einer anderen Phase des Lebenszyklus zum Einsatz.",{"type":32,"tag":33,"props":117,"children":118},{},[119],{"type":37,"value":120},"Das Browser-Cookie wird beim ersten Touchpoint gesetzt; die Geräte-ID kommt in der mobilen App zum Einsatz; der authentifizierte Hash wird generiert, wenn eine Email oder Telefonnummer erfasst wird; die Kunden-ID entsteht nach dem Checkout; der Fingerprint wird für probabilistische Matching-Prozesse ohne Consent verwendet; der Household Graph gruppiert Geräte, die vom selben Router aus verbunden sind. Das Problem: Diese sechs Signale lagern in verschiedenen Tabellen, mit unterschiedlichen TTL-Werten (Cookie 90 Tage, IDFA unbegrenzt, Email-Hash bis zur Kundenlöschung). Ohne Resolution zählt jeder Kanal separate Nutzer — in Ihrem Marketing-Mix-Modell entsteht Doppelzählung, in Incrementality-Tests überschätzen Sie den Effekt, bei Retention-Cohorts sieht die Retention künstlich niedrig aus.",{"type":32,"tag":33,"props":122,"children":123},{},[124,126,131,133,138],{"type":37,"value":125},"Die Resolution-Logik basiert auf zwei Methoden: ",{"type":32,"tag":76,"props":127,"children":128},{},[129],{"type":37,"value":130},"Deterministisches Matching (Hash-Matching)",{"type":37,"value":132}," und ",{"type":32,"tag":76,"props":134,"children":135},{},[136],{"type":37,"value":137},"probabilistische Verknüpfung (Graph Linking)",{"type":37,"value":139},". Deterministisch: Der SHA-256-Hash einer Email verknüpft ein Browser-Event mit einer Backend-Transaktion — 100% Sicherheit. Probabilistisch: Wenn die gleiche IP+User-Agent innerhalb von 24 Stunden in zwei verschiedenen Events erscheint, ist die Wahrscheinlichkeit, dass es derselbe Nutzer ist, etwa 73% (Beispiel-Schwellwert). Ohne Resolution ist die Zahl eindeutiger Nutzer um 40-80% überzeichnet (abhängig von Kategorie und Geräte-Mix).",{"type":32,"tag":64,"props":141,"children":143},{"id":142},"hash-matching-email-und-telefon-in-identity-keys-umwandeln",[144],{"type":37,"value":145},"Hash-Matching: Email und Telefon in Identity-Keys umwandeln",{"type":32,"tag":33,"props":147,"children":148},{},[149,151,157],{"type":37,"value":150},"Hash-Matching ist das Rückgrat der serverseitigen Identity Resolution. Wenn der Nutzer eine Email oder Telefonnummer angibt, erzeugt entweder Client-Side oder sGTM einen SHA-256-Hash, dieser wird in die ",{"type":32,"tag":40,"props":152,"children":154},{"className":153},[],[155],{"type":37,"value":156},"identity_map",{"type":37,"value":158},"-Tabelle geschrieben. Bei allen nachfolgenden anonymen Events können Sie dann per Cookie oder Geräte-ID den Hash abrufen.",{"type":32,"tag":33,"props":160,"children":161},{},[162,164,169],{"type":37,"value":163},"Ein einfaches ",{"type":32,"tag":40,"props":165,"children":167},{"className":166},[],[168],{"type":37,"value":156},{"type":37,"value":170},"-Schema:",{"type":32,"tag":172,"props":173,"children":177},"pre",{"className":174,"code":175,"language":176,"meta":16,"style":16},"language-sql shiki shiki-themes github-dark","CREATE TABLE identity_map (\n  canonical_id STRING NOT NULL,      -- UUID, interne ID\n  signal_type STRING NOT NULL,       -- 'email_sha256', 'phone_sha256', 'device_id', 'cookie'\n  signal_value STRING NOT NULL,      -- Hash oder ID\n  first_seen TIMESTAMP,\n  last_seen TIMESTAMP,\n  PRIMARY KEY (signal_type, signal_value)\n);\n","sql",[178],{"type":32,"tag":40,"props":179,"children":180},{"__ignoreMap":16},[181,210,235,258,280,299,316,330],{"type":32,"tag":182,"props":183,"children":186},"span",{"class":184,"line":185},"line",1,[187,193,198,204],{"type":32,"tag":182,"props":188,"children":190},{"style":189},"--shiki-default:#F97583",[191],{"type":37,"value":192},"CREATE",{"type":32,"tag":182,"props":194,"children":195},{"style":189},[196],{"type":37,"value":197}," TABLE",{"type":32,"tag":182,"props":199,"children":201},{"style":200},"--shiki-default:#B392F0",[202],{"type":37,"value":203}," identity_map",{"type":32,"tag":182,"props":205,"children":207},{"style":206},"--shiki-default:#E1E4E8",[208],{"type":37,"value":209}," (\n",{"type":32,"tag":182,"props":211,"children":213},{"class":184,"line":212},2,[214,219,224,229],{"type":32,"tag":182,"props":215,"children":216},{"style":206},[217],{"type":37,"value":218},"  canonical_id STRING ",{"type":32,"tag":182,"props":220,"children":221},{"style":189},[222],{"type":37,"value":223},"NOT NULL",{"type":32,"tag":182,"props":225,"children":226},{"style":206},[227],{"type":37,"value":228},",      ",{"type":32,"tag":182,"props":230,"children":232},{"style":231},"--shiki-default:#6A737D",[233],{"type":37,"value":234},"-- UUID, interne ID\n",{"type":32,"tag":182,"props":236,"children":238},{"class":184,"line":237},3,[239,244,248,253],{"type":32,"tag":182,"props":240,"children":241},{"style":206},[242],{"type":37,"value":243},"  signal_type STRING ",{"type":32,"tag":182,"props":245,"children":246},{"style":189},[247],{"type":37,"value":223},{"type":32,"tag":182,"props":249,"children":250},{"style":206},[251],{"type":37,"value":252},",       ",{"type":32,"tag":182,"props":254,"children":255},{"style":231},[256],{"type":37,"value":257},"-- 'email_sha256', 'phone_sha256', 'device_id', 'cookie'\n",{"type":32,"tag":182,"props":259,"children":261},{"class":184,"line":260},4,[262,267,271,275],{"type":32,"tag":182,"props":263,"children":264},{"style":206},[265],{"type":37,"value":266},"  signal_value STRING ",{"type":32,"tag":182,"props":268,"children":269},{"style":189},[270],{"type":37,"value":223},{"type":32,"tag":182,"props":272,"children":273},{"style":206},[274],{"type":37,"value":228},{"type":32,"tag":182,"props":276,"children":277},{"style":231},[278],{"type":37,"value":279},"-- Hash oder ID\n",{"type":32,"tag":182,"props":281,"children":283},{"class":184,"line":282},5,[284,289,294],{"type":32,"tag":182,"props":285,"children":286},{"style":206},[287],{"type":37,"value":288},"  first_seen ",{"type":32,"tag":182,"props":290,"children":291},{"style":189},[292],{"type":37,"value":293},"TIMESTAMP",{"type":32,"tag":182,"props":295,"children":296},{"style":206},[297],{"type":37,"value":298},",\n",{"type":32,"tag":182,"props":300,"children":302},{"class":184,"line":301},6,[303,308,312],{"type":32,"tag":182,"props":304,"children":305},{"style":206},[306],{"type":37,"value":307},"  last_seen ",{"type":32,"tag":182,"props":309,"children":310},{"style":189},[311],{"type":37,"value":293},{"type":32,"tag":182,"props":313,"children":314},{"style":206},[315],{"type":37,"value":298},{"type":32,"tag":182,"props":317,"children":319},{"class":184,"line":318},7,[320,325],{"type":32,"tag":182,"props":321,"children":322},{"style":189},[323],{"type":37,"value":324},"  PRIMARY KEY",{"type":32,"tag":182,"props":326,"children":327},{"style":206},[328],{"type":37,"value":329}," (signal_type, signal_value)\n",{"type":32,"tag":182,"props":331,"children":333},{"class":184,"line":332},8,[334],{"type":32,"tag":182,"props":335,"children":336},{"style":206},[337],{"type":37,"value":338},");\n",{"type":32,"tag":33,"props":340,"children":341},{},[342,344,350,352,358,360,366,368,374,376,382,384,390],{"type":37,"value":343},"Wenn ein Nutzer ",{"type":32,"tag":40,"props":345,"children":347},{"className":346},[],[348],{"type":37,"value":349},"user@example.com",{"type":37,"value":351}," in das Registrierungsformular eingibt, hasht sGTM diese Email mit SHA-256 und führt einen ",{"type":32,"tag":40,"props":353,"children":355},{"className":354},[],[356],{"type":37,"value":357},"INSERT",{"type":37,"value":359}," durch: ",{"type":32,"tag":40,"props":361,"children":363},{"className":362},[],[364],{"type":37,"value":365},"('uuid-123', 'email_sha256', 'abc123...', NOW(), NOW())",{"type":37,"value":367},". Falls in derselben Session das Cookie ",{"type":32,"tag":40,"props":369,"children":371},{"className":370},[],[372],{"type":37,"value":373},"_ga=GA1.1.xyz",{"type":37,"value":375}," vorhanden ist, folgt eine zweite Zeile: ",{"type":32,"tag":40,"props":377,"children":379},{"className":378},[],[380],{"type":37,"value":381},"('uuid-123', 'cookie', 'GA1.1.xyz', NOW(), NOW())",{"type":37,"value":383},". Damit sind zwei Signale unter ",{"type":32,"tag":40,"props":385,"children":387},{"className":386},[],[388],{"type":37,"value":389},"canonical_id = uuid-123",{"type":37,"value":391}," zusammengefasst.",{"type":32,"tag":33,"props":393,"children":394},{},[395,397,402],{"type":37,"value":396},"In der nächsten Session kommt der Nutzer nur mit ",{"type":32,"tag":40,"props":398,"children":400},{"className":399},[],[401],{"type":37,"value":373},{"type":37,"value":403},", ohne Email-Eingabe. Ein Lookup in BigQuery:",{"type":32,"tag":172,"props":405,"children":407},{"className":174,"code":406,"language":176,"meta":16,"style":16},"SELECT canonical_id\nFROM identity_map\nWHERE signal_type = 'cookie' AND signal_value = 'GA1.1.xyz'\nLIMIT 1;\n",[408],{"type":32,"tag":40,"props":409,"children":410},{"__ignoreMap":16},[411,424,437,480],{"type":32,"tag":182,"props":412,"children":413},{"class":184,"line":185},[414,419],{"type":32,"tag":182,"props":415,"children":416},{"style":189},[417],{"type":37,"value":418},"SELECT",{"type":32,"tag":182,"props":420,"children":421},{"style":206},[422],{"type":37,"value":423}," canonical_id\n",{"type":32,"tag":182,"props":425,"children":426},{"class":184,"line":212},[427,432],{"type":32,"tag":182,"props":428,"children":429},{"style":189},[430],{"type":37,"value":431},"FROM",{"type":32,"tag":182,"props":433,"children":434},{"style":206},[435],{"type":37,"value":436}," identity_map\n",{"type":32,"tag":182,"props":438,"children":439},{"class":184,"line":237},[440,445,450,455,461,466,471,475],{"type":32,"tag":182,"props":441,"children":442},{"style":189},[443],{"type":37,"value":444},"WHERE",{"type":32,"tag":182,"props":446,"children":447},{"style":206},[448],{"type":37,"value":449}," signal_type ",{"type":32,"tag":182,"props":451,"children":452},{"style":189},[453],{"type":37,"value":454},"=",{"type":32,"tag":182,"props":456,"children":458},{"style":457},"--shiki-default:#9ECBFF",[459],{"type":37,"value":460}," 'cookie'",{"type":32,"tag":182,"props":462,"children":463},{"style":189},[464],{"type":37,"value":465}," AND",{"type":32,"tag":182,"props":467,"children":468},{"style":206},[469],{"type":37,"value":470}," signal_value ",{"type":32,"tag":182,"props":472,"children":473},{"style":189},[474],{"type":37,"value":454},{"type":32,"tag":182,"props":476,"children":477},{"style":457},[478],{"type":37,"value":479}," 'GA1.1.xyz'\n",{"type":32,"tag":182,"props":481,"children":482},{"class":184,"line":260},[483,488,494],{"type":32,"tag":182,"props":484,"children":485},{"style":189},[486],{"type":37,"value":487},"LIMIT",{"type":32,"tag":182,"props":489,"children":491},{"style":490},"--shiki-default:#79B8FF",[492],{"type":37,"value":493}," 1",{"type":32,"tag":182,"props":495,"children":496},{"style":206},[497],{"type":37,"value":498},";\n",{"type":32,"tag":33,"props":500,"children":501},{},[502,504,510],{"type":37,"value":503},"Rückgabe: ",{"type":32,"tag":40,"props":505,"children":507},{"className":506},[],[508],{"type":37,"value":509},"uuid-123",{"type":37,"value":511},". Sie binden das Event an diese ID — derselbe Nutzer wird erkannt, ohne dass ein Email-Hash verwendet wurde. Die Genauigkeit von Hash-Matching liegt bei 100%, da Hash-Kollisionen kryptographisch unmöglich sind. Es gibt aber ein Coverage-Problem: Wenn der Nutzer keine Email angegeben hat, existiert kein Hash, dann wechseln Sie zum probabilistischen Verfahren.",{"type":32,"tag":513,"props":514,"children":516},"h3",{"id":515},"collision-risiko-und-salt",[517],{"type":37,"value":518},"Collision-Risiko und Salt",{"type":32,"tag":33,"props":520,"children":521},{},[522,524,537,539,545,547,556],{"type":37,"value":523},"Das SHA-256-Collision-Risiko ist theoretisch: 1 in 2^128 Versuchen. In der Praxis ist das eigentliche Problem jedoch, dass ",{"type":32,"tag":76,"props":525,"children":526},{},[527,529,535],{"type":37,"value":528},"dieselbe Email an mehrere ",{"type":32,"tag":40,"props":530,"children":532},{"className":531},[],[533],{"type":37,"value":534},"canonical_id",{"type":37,"value":536},"s gebunden sein kann",{"type":37,"value":538}," (manueller Fehler, alte Migration-Artefakte). Deshalb nutzen Sie einen ",{"type":32,"tag":40,"props":540,"children":542},{"className":541},[],[543],{"type":37,"value":544},"UNIQUE INDEX (signal_type, signal_value)",{"type":37,"value":546},". Die Verwendung von Salt (Email + geheime Zeichenkette, dann Hash) erhöht das Collision-Risiko nicht, bietet aber in der ",{"type":32,"tag":548,"props":549,"children":553},"a",{"href":550,"rel":551},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Ffirstparty",[552],"nofollow",[554],{"type":37,"value":555},"First-Party-Daten-Architektur",{"type":37,"value":557}," eine zusätzliche Privacy-Schicht — bei Salt-Rotation werden alte Hashes ungültig, was für GDPR „Right to be Forgotten\" nützlich ist.",{"type":32,"tag":64,"props":559,"children":561},{"id":560},"probabilistische-verknüpfung-ip-user-agent-und-device-graph",[562],{"type":37,"value":563},"Probabilistische Verknüpfung: IP, User-Agent und Device Graph",{"type":32,"tag":33,"props":565,"children":566},{},[567,569,574],{"type":37,"value":568},"Wenn der Nutzer im Incognito-Modus surft, gibt es kein deterministisches Signal. In diesem Fall nutzen Sie einen ",{"type":32,"tag":76,"props":570,"children":571},{},[572],{"type":37,"value":573},"probabilistischen Graph",{"type":37,"value":575},": IP + User-Agent + Zeitstempel-Nähe generiert einen „vermutlich derselbe Nutzer\"-Score. Beispiel: Zwei Events von derselben IP mit demselben User-Agent im Abstand von 15 Minuten — wahrscheinlich zu 85% derselbe Nutzer.",{"type":32,"tag":33,"props":577,"children":578},{},[579],{"type":37,"value":580},"Einfache probabilistische Merge-Logik:",{"type":32,"tag":172,"props":582,"children":584},{"className":174,"code":583,"language":176,"meta":16,"style":16},"WITH anon_events AS (\n  SELECT\n    event_id,\n    ip_address,\n    user_agent,\n    event_timestamp,\n    FARM_FINGERPRINT(CONCAT(ip_address, user_agent)) AS fingerprint\n  FROM events\n  WHERE canonical_id IS NULL\n),\nclusters AS (\n  SELECT\n    fingerprint,\n    MIN(event_timestamp) AS first_event,\n    MAX(event_timestamp) AS last_event,\n    COUNT(*) AS event_count\n  FROM anon_events\n  GROUP BY fingerprint\n  HAVING TIMESTAMP_DIFF(MAX(event_timestamp), MIN(event_timestamp), HOUR) \u003C 24\n)\nSELECT\n  a.event_id,\n  c.fingerprint AS probable_cluster_id\nFROM anon_events a\nJOIN clusters c ON a.fingerprint = c.fingerprint;\n",[585],{"type":32,"tag":40,"props":586,"children":587},{"__ignoreMap":16},[588,610,618,626,634,642,650,677,690,713,722,739,747,756,779,801,834,847,860,912,921,930,953,981,994],{"type":32,"tag":182,"props":589,"children":590},{"class":184,"line":185},[591,596,601,606],{"type":32,"tag":182,"props":592,"children":593},{"style":189},[594],{"type":37,"value":595},"WITH",{"type":32,"tag":182,"props":597,"children":598},{"style":206},[599],{"type":37,"value":600}," anon_events ",{"type":32,"tag":182,"props":602,"children":603},{"style":189},[604],{"type":37,"value":605},"AS",{"type":32,"tag":182,"props":607,"children":608},{"style":206},[609],{"type":37,"value":209},{"type":32,"tag":182,"props":611,"children":612},{"class":184,"line":212},[613],{"type":32,"tag":182,"props":614,"children":615},{"style":189},[616],{"type":37,"value":617},"  SELECT\n",{"type":32,"tag":182,"props":619,"children":620},{"class":184,"line":237},[621],{"type":32,"tag":182,"props":622,"children":623},{"style":206},[624],{"type":37,"value":625},"    event_id,\n",{"type":32,"tag":182,"props":627,"children":628},{"class":184,"line":260},[629],{"type":32,"tag":182,"props":630,"children":631},{"style":206},[632],{"type":37,"value":633},"    ip_address,\n",{"type":32,"tag":182,"props":635,"children":636},{"class":184,"line":282},[637],{"type":32,"tag":182,"props":638,"children":639},{"style":206},[640],{"type":37,"value":641},"    user_agent,\n",{"type":32,"tag":182,"props":643,"children":644},{"class":184,"line":301},[645],{"type":32,"tag":182,"props":646,"children":647},{"style":206},[648],{"type":37,"value":649},"    event_timestamp,\n",{"type":32,"tag":182,"props":651,"children":652},{"class":184,"line":318},[653,658,663,668,672],{"type":32,"tag":182,"props":654,"children":655},{"style":206},[656],{"type":37,"value":657},"    FARM_FINGERPRINT(",{"type":32,"tag":182,"props":659,"children":660},{"style":490},[661],{"type":37,"value":662},"CONCAT",{"type":32,"tag":182,"props":664,"children":665},{"style":206},[666],{"type":37,"value":667},"(ip_address, user_agent)) ",{"type":32,"tag":182,"props":669,"children":670},{"style":189},[671],{"type":37,"value":605},{"type":32,"tag":182,"props":673,"children":674},{"style":206},[675],{"type":37,"value":676}," fingerprint\n",{"type":32,"tag":182,"props":678,"children":679},{"class":184,"line":332},[680,685],{"type":32,"tag":182,"props":681,"children":682},{"style":189},[683],{"type":37,"value":684},"  FROM",{"type":32,"tag":182,"props":686,"children":687},{"style":206},[688],{"type":37,"value":689}," events\n",{"type":32,"tag":182,"props":691,"children":692},{"class":184,"line":26},[693,698,703,708],{"type":32,"tag":182,"props":694,"children":695},{"style":189},[696],{"type":37,"value":697},"  WHERE",{"type":32,"tag":182,"props":699,"children":700},{"style":206},[701],{"type":37,"value":702}," canonical_id ",{"type":32,"tag":182,"props":704,"children":705},{"style":189},[706],{"type":37,"value":707},"IS",{"type":32,"tag":182,"props":709,"children":710},{"style":189},[711],{"type":37,"value":712}," NULL\n",{"type":32,"tag":182,"props":714,"children":716},{"class":184,"line":715},10,[717],{"type":32,"tag":182,"props":718,"children":719},{"style":206},[720],{"type":37,"value":721},"),\n",{"type":32,"tag":182,"props":723,"children":725},{"class":184,"line":724},11,[726,731,735],{"type":32,"tag":182,"props":727,"children":728},{"style":206},[729],{"type":37,"value":730},"clusters ",{"type":32,"tag":182,"props":732,"children":733},{"style":189},[734],{"type":37,"value":605},{"type":32,"tag":182,"props":736,"children":737},{"style":206},[738],{"type":37,"value":209},{"type":32,"tag":182,"props":740,"children":742},{"class":184,"line":741},12,[743],{"type":32,"tag":182,"props":744,"children":745},{"style":189},[746],{"type":37,"value":617},{"type":32,"tag":182,"props":748,"children":750},{"class":184,"line":749},13,[751],{"type":32,"tag":182,"props":752,"children":753},{"style":206},[754],{"type":37,"value":755},"    fingerprint,\n",{"type":32,"tag":182,"props":757,"children":759},{"class":184,"line":758},14,[760,765,770,774],{"type":32,"tag":182,"props":761,"children":762},{"style":490},[763],{"type":37,"value":764},"    MIN",{"type":32,"tag":182,"props":766,"children":767},{"style":206},[768],{"type":37,"value":769},"(event_timestamp) ",{"type":32,"tag":182,"props":771,"children":772},{"style":189},[773],{"type":37,"value":605},{"type":32,"tag":182,"props":775,"children":776},{"style":206},[777],{"type":37,"value":778}," first_event,\n",{"type":32,"tag":182,"props":780,"children":782},{"class":184,"line":781},15,[783,788,792,796],{"type":32,"tag":182,"props":784,"children":785},{"style":490},[786],{"type":37,"value":787},"    MAX",{"type":32,"tag":182,"props":789,"children":790},{"style":206},[791],{"type":37,"value":769},{"type":32,"tag":182,"props":793,"children":794},{"style":189},[795],{"type":37,"value":605},{"type":32,"tag":182,"props":797,"children":798},{"style":206},[799],{"type":37,"value":800}," last_event,\n",{"type":32,"tag":182,"props":802,"children":804},{"class":184,"line":803},16,[805,810,815,820,825,829],{"type":32,"tag":182,"props":806,"children":807},{"style":490},[808],{"type":37,"value":809},"    COUNT",{"type":32,"tag":182,"props":811,"children":812},{"style":206},[813],{"type":37,"value":814},"(",{"type":32,"tag":182,"props":816,"children":817},{"style":189},[818],{"type":37,"value":819},"*",{"type":32,"tag":182,"props":821,"children":822},{"style":206},[823],{"type":37,"value":824},") ",{"type":32,"tag":182,"props":826,"children":827},{"style":189},[828],{"type":37,"value":605},{"type":32,"tag":182,"props":830,"children":831},{"style":206},[832],{"type":37,"value":833}," event_count\n",{"type":32,"tag":182,"props":835,"children":837},{"class":184,"line":836},17,[838,842],{"type":32,"tag":182,"props":839,"children":840},{"style":189},[841],{"type":37,"value":684},{"type":32,"tag":182,"props":843,"children":844},{"style":206},[845],{"type":37,"value":846}," anon_events\n",{"type":32,"tag":182,"props":848,"children":850},{"class":184,"line":849},18,[851,856],{"type":32,"tag":182,"props":852,"children":853},{"style":189},[854],{"type":37,"value":855},"  GROUP BY",{"type":32,"tag":182,"props":857,"children":858},{"style":206},[859],{"type":37,"value":676},{"type":32,"tag":182,"props":861,"children":863},{"class":184,"line":862},19,[864,869,874,879,884,889,893,898,902,907],{"type":32,"tag":182,"props":865,"children":866},{"style":189},[867],{"type":37,"value":868},"  HAVING",{"type":32,"tag":182,"props":870,"children":871},{"style":206},[872],{"type":37,"value":873}," TIMESTAMP_DIFF(",{"type":32,"tag":182,"props":875,"children":876},{"style":490},[877],{"type":37,"value":878},"MAX",{"type":32,"tag":182,"props":880,"children":881},{"style":206},[882],{"type":37,"value":883},"(event_timestamp), ",{"type":32,"tag":182,"props":885,"children":886},{"style":490},[887],{"type":37,"value":888},"MIN",{"type":32,"tag":182,"props":890,"children":891},{"style":206},[892],{"type":37,"value":883},{"type":32,"tag":182,"props":894,"children":895},{"style":189},[896],{"type":37,"value":897},"HOUR",{"type":32,"tag":182,"props":899,"children":900},{"style":206},[901],{"type":37,"value":824},{"type":32,"tag":182,"props":903,"children":904},{"style":189},[905],{"type":37,"value":906},"\u003C",{"type":32,"tag":182,"props":908,"children":909},{"style":490},[910],{"type":37,"value":911}," 24\n",{"type":32,"tag":182,"props":913,"children":915},{"class":184,"line":914},20,[916],{"type":32,"tag":182,"props":917,"children":918},{"style":206},[919],{"type":37,"value":920},")\n",{"type":32,"tag":182,"props":922,"children":924},{"class":184,"line":923},21,[925],{"type":32,"tag":182,"props":926,"children":927},{"style":189},[928],{"type":37,"value":929},"SELECT\n",{"type":32,"tag":182,"props":931,"children":933},{"class":184,"line":932},22,[934,939,944,949],{"type":32,"tag":182,"props":935,"children":936},{"style":490},[937],{"type":37,"value":938},"  a",{"type":32,"tag":182,"props":940,"children":941},{"style":206},[942],{"type":37,"value":943},".",{"type":32,"tag":182,"props":945,"children":946},{"style":490},[947],{"type":37,"value":948},"event_id",{"type":32,"tag":182,"props":950,"children":951},{"style":206},[952],{"type":37,"value":298},{"type":32,"tag":182,"props":954,"children":956},{"class":184,"line":955},23,[957,962,966,971,976],{"type":32,"tag":182,"props":958,"children":959},{"style":490},[960],{"type":37,"value":961},"  c",{"type":32,"tag":182,"props":963,"children":964},{"style":206},[965],{"type":37,"value":943},{"type":32,"tag":182,"props":967,"children":968},{"style":490},[969],{"type":37,"value":970},"fingerprint",{"type":32,"tag":182,"props":972,"children":973},{"style":189},[974],{"type":37,"value":975}," AS",{"type":32,"tag":182,"props":977,"children":978},{"style":206},[979],{"type":37,"value":980}," probable_cluster_id\n",{"type":32,"tag":182,"props":982,"children":984},{"class":184,"line":983},24,[985,989],{"type":32,"tag":182,"props":986,"children":987},{"style":189},[988],{"type":37,"value":431},{"type":32,"tag":182,"props":990,"children":991},{"style":206},[992],{"type":37,"value":993}," anon_events a\n",{"type":32,"tag":182,"props":995,"children":997},{"class":184,"line":996},25,[998,1003,1008,1013,1018,1022,1026,1031,1036,1040,1044],{"type":32,"tag":182,"props":999,"children":1000},{"style":189},[1001],{"type":37,"value":1002},"JOIN",{"type":32,"tag":182,"props":1004,"children":1005},{"style":206},[1006],{"type":37,"value":1007}," clusters c ",{"type":32,"tag":182,"props":1009,"children":1010},{"style":189},[1011],{"type":37,"value":1012},"ON",{"type":32,"tag":182,"props":1014,"children":1015},{"style":490},[1016],{"type":37,"value":1017}," a",{"type":32,"tag":182,"props":1019,"children":1020},{"style":206},[1021],{"type":37,"value":943},{"type":32,"tag":182,"props":1023,"children":1024},{"style":490},[1025],{"type":37,"value":970},{"type":32,"tag":182,"props":1027,"children":1028},{"style":189},[1029],{"type":37,"value":1030}," =",{"type":32,"tag":182,"props":1032,"children":1033},{"style":490},[1034],{"type":37,"value":1035}," c",{"type":32,"tag":182,"props":1037,"children":1038},{"style":206},[1039],{"type":37,"value":943},{"type":32,"tag":182,"props":1041,"children":1042},{"style":490},[1043],{"type":37,"value":970},{"type":32,"tag":182,"props":1045,"children":1046},{"style":206},[1047],{"type":37,"value":498},{"type":32,"tag":33,"props":1049,"children":1050},{},[1051,1053,1058,1060,1066],{"type":37,"value":1052},"Diese Abfrage gruppiert Events nach IP+UA-Hash innerhalb von 24 Stunden. Die Cluster-ID verwenden Sie als temporäre ",{"type":32,"tag":40,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":37,"value":534},{"type":37,"value":1059},", ergänzt um einen Confidence-Score: ",{"type":32,"tag":40,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":37,"value":1065},"event_count > 3 AND time_span \u003C 1 HOUR → confidence=0.9",{"type":37,"value":943},{"type":32,"tag":33,"props":1068,"children":1069},{},[1070,1075,1077,1083,1085,1090],{"type":32,"tag":76,"props":1071,"children":1072},{},[1073],{"type":37,"value":1074},"Household Graph:",{"type":37,"value":1076}," Wenn von derselben IP verschiedene User-Agents (Laptop, Tablet, Smartphone) kommen, ist es wahrscheinlich das gleiche Zuhause. Hier erstellen Sie eine ",{"type":32,"tag":40,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":37,"value":1082},"household_id",{"type":37,"value":1084}," und ordnen die einzelne ",{"type":32,"tag":40,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":37,"value":534},{"type":37,"value":1091}," darunter ein. Beispiel Amazon Prime Household: 1 Abonnement, 6 Profile — Identity Resolution aggregiert auf Household-Ebene.",{"type":32,"tag":513,"props":1093,"children":1095},{"id":1094},"false-positive-rate",[1096],{"type":37,"value":1097},"False-Positive-Rate",{"type":32,"tag":33,"props":1099,"children":1100},{},[1101],{"type":37,"value":1102},"Beim probabilistischen Linking besteht ein False-Positive-Risiko. Die gleiche IP+User-Agent kann von zwei verschiedenen Nutzern kommen (Büro-WLAN, Bibliothek). Ist der Schwellwert zu locker (%50 Confidence), sehen Sie 15-25% False Positives. Best Practice der Industrie: Confidence-Schwellwert ≥75%, Time Window 1 Stunde, mindestens 2 Event-Matches. Anbieter wie LiveRamp nutzen Graph-Datenbanken (Neo4j) und kombinieren 30+ Signale mit Behauptungen von %95+ Genauigkeit — doch in einer eigenen First-Party-Pipeline reichen 2-3 Signale mit %80 Genauigkeit aus.",{"type":32,"tag":64,"props":1104,"children":1106},{"id":1105},"server-side-pipeline-sgtm-bigquery-dbt",[1107],{"type":37,"value":1108},"Server-Side-Pipeline: sGTM + BigQuery + dbt",{"type":32,"tag":33,"props":1110,"children":1111},{},[1112],{"type":37,"value":1113},"Die Identity Resolution läuft in der Production in folgendem Datenfluss:",{"type":32,"tag":1115,"props":1116,"children":1117},"ol",{},[1118,1137,1177,1202,1226],{"type":32,"tag":1119,"props":1120,"children":1121},"li",{},[1122,1127,1129,1135],{"type":32,"tag":76,"props":1123,"children":1124},{},[1125],{"type":37,"value":1126},"sGTM-Event-Erfassung:",{"type":37,"value":1128}," Client-Side GTM sendet Event an sGTM, sGTM hasht Email falls vorhanden mit SHA-256, schreibt Raw Event in BigQuery (",{"type":32,"tag":40,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":37,"value":1134},"events_raw",{"type":37,"value":1136},").",{"type":32,"tag":1119,"props":1138,"children":1139},{},[1140,1145,1147,1153,1155,1160,1162,1168,1169,1175],{"type":32,"tag":76,"props":1141,"children":1142},{},[1143],{"type":37,"value":1144},"dbt-Staging-Modell:",{"type":37,"value":1146}," Die ",{"type":32,"tag":40,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":37,"value":1152},"stg_events",{"type":37,"value":1154},"-Tabelle erzeugt bereinigte Events aus ",{"type":32,"tag":40,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":37,"value":1134},{"type":37,"value":1161},", spaltet Spalten ",{"type":32,"tag":40,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":37,"value":1167},"signal_type",{"type":37,"value":132},{"type":32,"tag":40,"props":1170,"children":1172},{"className":1171},[],[1173],{"type":37,"value":1174},"signal_value",{"type":37,"value":1176}," auf.",{"type":32,"tag":1119,"props":1178,"children":1179},{},[1180,1185,1187,1193,1195,1200],{"type":32,"tag":76,"props":1181,"children":1182},{},[1183],{"type":37,"value":1184},"dbt-Identity-Map-Merge:",{"type":37,"value":1186}," Wenn ein neuer Hash auftaucht, wird ein ",{"type":32,"tag":40,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":37,"value":1192},"MERGE",{"type":37,"value":1194}," in ",{"type":32,"tag":40,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":37,"value":156},{"type":37,"value":1201}," ausgeführt (Upsert-Logik).",{"type":32,"tag":1119,"props":1203,"children":1204},{},[1205,1210,1212,1217,1219,1224],{"type":32,"tag":76,"props":1206,"children":1207},{},[1208],{"type":37,"value":1209},"dbt-Canonical-ID-Anreicherung:",{"type":37,"value":1211}," Jedes Event wird mit ",{"type":32,"tag":40,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":37,"value":156},{"type":37,"value":1218}," verknüpft, ",{"type":32,"tag":40,"props":1220,"children":1222},{"className":1221},[],[1223],{"type":37,"value":534},{"type":37,"value":1225}," wird per Lookup aufgelöst.",{"type":32,"tag":1119,"props":1227,"children":1228},{},[1229,1234,1236,1242,1243,1249,1251,1256],{"type":32,"tag":76,"props":1230,"children":1231},{},[1232],{"type":37,"value":1233},"dbt-Aggregation:",{"type":37,"value":1235}," Metriken auf User-Ebene (",{"type":32,"tag":40,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":37,"value":1241},"user_ltv",{"type":37,"value":47},{"type":32,"tag":40,"props":1244,"children":1246},{"className":1245},[],[1247],{"type":37,"value":1248},"session_count",{"type":37,"value":1250},") werden nach ",{"type":32,"tag":40,"props":1252,"children":1254},{"className":1253},[],[1255],{"type":37,"value":534},{"type":37,"value":1257}," aggregiert.",{"type":32,"tag":33,"props":1259,"children":1260},{},[1261,1263,1269],{"type":37,"value":1262},"Beispiel-dbt-Modell-Auszug (",{"type":32,"tag":40,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":37,"value":1268},"models\u002Fstaging\u002Fstg_events.sql",{"type":37,"value":1270},"):",{"type":32,"tag":172,"props":1272,"children":1274},{"className":174,"code":1273,"language":176,"meta":16,"style":16},"{{ config(materialized='incremental') }}\n\nWITH events_with_signals AS (\n  SELECT\n    event_id,\n    event_timestamp,\n    COALESCE(user_properties.email_sha256, NULL) AS email_hash,\n    COALESCE(user_properties.ga_client_id, NULL) AS cookie_id,\n    event_params\n  FROM {{ source('bigquery', 'events_raw') }}\n  {% if is_incremental() %}\n  WHERE event_timestamp > (SELECT MAX(event_timestamp) FROM {{ this }})\n  {% endif %}\n)\nSELECT * FROM events_with_signals;\n",[1275],{"type":32,"tag":40,"props":1276,"children":1277},{"__ignoreMap":16},[1278,1300,1309,1329,1336,1343,1350,1398,1443,1451,1481,1499,1543,1551,1558],{"type":32,"tag":182,"props":1279,"children":1280},{"class":184,"line":185},[1281,1286,1290,1295],{"type":32,"tag":182,"props":1282,"children":1283},{"style":206},[1284],{"type":37,"value":1285},"{{ config(materialized",{"type":32,"tag":182,"props":1287,"children":1288},{"style":189},[1289],{"type":37,"value":454},{"type":32,"tag":182,"props":1291,"children":1292},{"style":457},[1293],{"type":37,"value":1294},"'incremental'",{"type":32,"tag":182,"props":1296,"children":1297},{"style":206},[1298],{"type":37,"value":1299},") }}\n",{"type":32,"tag":182,"props":1301,"children":1302},{"class":184,"line":212},[1303],{"type":32,"tag":182,"props":1304,"children":1306},{"emptyLinePlaceholder":1305},true,[1307],{"type":37,"value":1308},"\n",{"type":32,"tag":182,"props":1310,"children":1311},{"class":184,"line":237},[1312,1316,1321,1325],{"type":32,"tag":182,"props":1313,"children":1314},{"style":189},[1315],{"type":37,"value":595},{"type":32,"tag":182,"props":1317,"children":1318},{"style":206},[1319],{"type":37,"value":1320}," events_with_signals ",{"type":32,"tag":182,"props":1322,"children":1323},{"style":189},[1324],{"type":37,"value":605},{"type":32,"tag":182,"props":1326,"children":1327},{"style":206},[1328],{"type":37,"value":209},{"type":32,"tag":182,"props":1330,"children":1331},{"class":184,"line":260},[1332],{"type":32,"tag":182,"props":1333,"children":1334},{"style":189},[1335],{"type":37,"value":617},{"type":32,"tag":182,"props":1337,"children":1338},{"class":184,"line":282},[1339],{"type":32,"tag":182,"props":1340,"children":1341},{"style":206},[1342],{"type":37,"value":625},{"type":32,"tag":182,"props":1344,"children":1345},{"class":184,"line":301},[1346],{"type":32,"tag":182,"props":1347,"children":1348},{"style":206},[1349],{"type":37,"value":649},{"type":32,"tag":182,"props":1351,"children":1352},{"class":184,"line":318},[1353,1358,1362,1367,1371,1376,1380,1385,1389,1393],{"type":32,"tag":182,"props":1354,"children":1355},{"style":490},[1356],{"type":37,"value":1357},"    COALESCE",{"type":32,"tag":182,"props":1359,"children":1360},{"style":206},[1361],{"type":37,"value":814},{"type":32,"tag":182,"props":1363,"children":1364},{"style":490},[1365],{"type":37,"value":1366},"user_properties",{"type":32,"tag":182,"props":1368,"children":1369},{"style":206},[1370],{"type":37,"value":943},{"type":32,"tag":182,"props":1372,"children":1373},{"style":490},[1374],{"type":37,"value":1375},"email_sha256",{"type":32,"tag":182,"props":1377,"children":1378},{"style":206},[1379],{"type":37,"value":47},{"type":32,"tag":182,"props":1381,"children":1382},{"style":189},[1383],{"type":37,"value":1384},"NULL",{"type":32,"tag":182,"props":1386,"children":1387},{"style":206},[1388],{"type":37,"value":824},{"type":32,"tag":182,"props":1390,"children":1391},{"style":189},[1392],{"type":37,"value":605},{"type":32,"tag":182,"props":1394,"children":1395},{"style":206},[1396],{"type":37,"value":1397}," email_hash,\n",{"type":32,"tag":182,"props":1399,"children":1400},{"class":184,"line":332},[1401,1405,1409,1413,1417,1422,1426,1430,1434,1438],{"type":32,"tag":182,"props":1402,"children":1403},{"style":490},[1404],{"type":37,"value":1357},{"type":32,"tag":182,"props":1406,"children":1407},{"style":206},[1408],{"type":37,"value":814},{"type":32,"tag":182,"props":1410,"children":1411},{"style":490},[1412],{"type":37,"value":1366},{"type":32,"tag":182,"props":1414,"children":1415},{"style":206},[1416],{"type":37,"value":943},{"type":32,"tag":182,"props":1418,"children":1419},{"style":490},[1420],{"type":37,"value":1421},"ga_client_id",{"type":32,"tag":182,"props":1423,"children":1424},{"style":206},[1425],{"type":37,"value":47},{"type":32,"tag":182,"props":1427,"children":1428},{"style":189},[1429],{"type":37,"value":1384},{"type":32,"tag":182,"props":1431,"children":1432},{"style":206},[1433],{"type":37,"value":824},{"type":32,"tag":182,"props":1435,"children":1436},{"style":189},[1437],{"type":37,"value":605},{"type":32,"tag":182,"props":1439,"children":1440},{"style":206},[1441],{"type":37,"value":1442}," cookie_id,\n",{"type":32,"tag":182,"props":1444,"children":1445},{"class":184,"line":26},[1446],{"type":32,"tag":182,"props":1447,"children":1448},{"style":206},[1449],{"type":37,"value":1450},"    event_params\n",{"type":32,"tag":182,"props":1452,"children":1453},{"class":184,"line":715},[1454,1458,1463,1468,1472,1477],{"type":32,"tag":182,"props":1455,"children":1456},{"style":189},[1457],{"type":37,"value":684},{"type":32,"tag":182,"props":1459,"children":1460},{"style":206},[1461],{"type":37,"value":1462}," {{ source(",{"type":32,"tag":182,"props":1464,"children":1465},{"style":457},[1466],{"type":37,"value":1467},"'bigquery'",{"type":32,"tag":182,"props":1469,"children":1470},{"style":206},[1471],{"type":37,"value":47},{"type":32,"tag":182,"props":1473,"children":1474},{"style":457},[1475],{"type":37,"value":1476},"'events_raw'",{"type":32,"tag":182,"props":1478,"children":1479},{"style":206},[1480],{"type":37,"value":1299},{"type":32,"tag":182,"props":1482,"children":1483},{"class":184,"line":724},[1484,1489,1494],{"type":32,"tag":182,"props":1485,"children":1486},{"style":206},[1487],{"type":37,"value":1488},"  {% ",{"type":32,"tag":182,"props":1490,"children":1491},{"style":189},[1492],{"type":37,"value":1493},"if",{"type":32,"tag":182,"props":1495,"children":1496},{"style":206},[1497],{"type":37,"value":1498}," is_incremental() %}\n",{"type":32,"tag":182,"props":1500,"children":1501},{"class":184,"line":741},[1502,1506,1511,1516,1521,1525,1530,1534,1538],{"type":32,"tag":182,"props":1503,"children":1504},{"style":189},[1505],{"type":37,"value":697},{"type":32,"tag":182,"props":1507,"children":1508},{"style":206},[1509],{"type":37,"value":1510}," event_timestamp ",{"type":32,"tag":182,"props":1512,"children":1513},{"style":189},[1514],{"type":37,"value":1515},">",{"type":32,"tag":182,"props":1517,"children":1518},{"style":206},[1519],{"type":37,"value":1520}," (",{"type":32,"tag":182,"props":1522,"children":1523},{"style":189},[1524],{"type":37,"value":418},{"type":32,"tag":182,"props":1526,"children":1527},{"style":490},[1528],{"type":37,"value":1529}," MAX",{"type":32,"tag":182,"props":1531,"children":1532},{"style":206},[1533],{"type":37,"value":769},{"type":32,"tag":182,"props":1535,"children":1536},{"style":189},[1537],{"type":37,"value":431},{"type":32,"tag":182,"props":1539,"children":1540},{"style":206},[1541],{"type":37,"value":1542}," {{ this }})\n",{"type":32,"tag":182,"props":1544,"children":1545},{"class":184,"line":749},[1546],{"type":32,"tag":182,"props":1547,"children":1548},{"style":206},[1549],{"type":37,"value":1550},"  {% endif %}\n",{"type":32,"tag":182,"props":1552,"children":1553},{"class":184,"line":758},[1554],{"type":32,"tag":182,"props":1555,"children":1556},{"style":206},[1557],{"type":37,"value":920},{"type":32,"tag":182,"props":1559,"children":1560},{"class":184,"line":781},[1561,1565,1570,1575],{"type":32,"tag":182,"props":1562,"children":1563},{"style":189},[1564],{"type":37,"value":418},{"type":32,"tag":182,"props":1566,"children":1567},{"style":189},[1568],{"type":37,"value":1569}," *",{"type":32,"tag":182,"props":1571,"children":1572},{"style":189},[1573],{"type":37,"value":1574}," FROM",{"type":32,"tag":182,"props":1576,"children":1577},{"style":206},[1578],{"type":37,"value":1579}," events_with_signals;\n",{"type":32,"tag":33,"props":1581,"children":1582},{},[1583,1585,1591],{"type":37,"value":1584},"Das Incremental Model läuft stündlich und verarbeitet den letzten Batch. Die Identity-Merge-Logik liegt in einem separaten Modell (",{"type":32,"tag":40,"props":1586,"children":1588},{"className":1587},[],[1589],{"type":37,"value":1590},"models\u002Fcore\u002Ffct_identity_resolved.sql",{"type":37,"value":1270},{"type":32,"tag":172,"props":1593,"children":1595},{"className":174,"code":1594,"language":176,"meta":16,"style":16},"SELECT\n  e.event_id,\n  COALESCE(im_email.canonical_id, im_cookie.canonical_id) AS canonical_id,\n  e.event_timestamp\nFROM {{ ref('stg_events') }} e\nLEFT JOIN {{ ref('identity_map') }} im_email\n  ON e.email_hash IS NOT NULL\n  AND im_email.signal_type = 'email_sha256'\n  AND im_email.signal_value = e.email_hash\nLEFT JOIN {{ ref('identity_map') }} im_cookie\n  ON e.cookie_id IS NOT NULL\n  AND im_cookie.signal_type = 'cookie'\n  AND im_cookie.signal_value = e.cookie_id;\n",[1596],{"type":32,"tag":40,"props":1597,"children":1598},{"__ignoreMap":16},[1599,1606,1626,1681,1697,1719,1741,1767,1797,1833,1853,1877,1906],{"type":32,"tag":182,"props":1600,"children":1601},{"class":184,"line":185},[1602],{"type":32,"tag":182,"props":1603,"children":1604},{"style":189},[1605],{"type":37,"value":929},{"type":32,"tag":182,"props":1607,"children":1608},{"class":184,"line":212},[1609,1614,1618,1622],{"type":32,"tag":182,"props":1610,"children":1611},{"style":490},[1612],{"type":37,"value":1613},"  e",{"type":32,"tag":182,"props":1615,"children":1616},{"style":206},[1617],{"type":37,"value":943},{"type":32,"tag":182,"props":1619,"children":1620},{"style":490},[1621],{"type":37,"value":948},{"type":32,"tag":182,"props":1623,"children":1624},{"style":206},[1625],{"type":37,"value":298},{"type":32,"tag":182,"props":1627,"children":1628},{"class":184,"line":237},[1629,1634,1638,1643,1647,1651,1655,1660,1664,1668,1672,1676],{"type":32,"tag":182,"props":1630,"children":1631},{"style":490},[1632],{"type":37,"value":1633},"  COALESCE",{"type":32,"tag":182,"props":1635,"children":1636},{"style":206},[1637],{"type":37,"value":814},{"type":32,"tag":182,"props":1639,"children":1640},{"style":490},[1641],{"type":37,"value":1642},"im_email",{"type":32,"tag":182,"props":1644,"children":1645},{"style":206},[1646],{"type":37,"value":943},{"type":32,"tag":182,"props":1648,"children":1649},{"style":490},[1650],{"type":37,"value":534},{"type":32,"tag":182,"props":1652,"children":1653},{"style":206},[1654],{"type":37,"value":47},{"type":32,"tag":182,"props":1656,"children":1657},{"style":490},[1658],{"type":37,"value":1659},"im_cookie",{"type":32,"tag":182,"props":1661,"children":1662},{"style":206},[1663],{"type":37,"value":943},{"type":32,"tag":182,"props":1665,"children":1666},{"style":490},[1667],{"type":37,"value":534},{"type":32,"tag":182,"props":1669,"children":1670},{"style":206},[1671],{"type":37,"value":824},{"type":32,"tag":182,"props":1673,"children":1674},{"style":189},[1675],{"type":37,"value":605},{"type":32,"tag":182,"props":1677,"children":1678},{"style":206},[1679],{"type":37,"value":1680}," canonical_id,\n",{"type":32,"tag":182,"props":1682,"children":1683},{"class":184,"line":260},[1684,1688,1692],{"type":32,"tag":182,"props":1685,"children":1686},{"style":490},[1687],{"type":37,"value":1613},{"type":32,"tag":182,"props":1689,"children":1690},{"style":206},[1691],{"type":37,"value":943},{"type":32,"tag":182,"props":1693,"children":1694},{"style":490},[1695],{"type":37,"value":1696},"event_timestamp\n",{"type":32,"tag":182,"props":1698,"children":1699},{"class":184,"line":282},[1700,1704,1709,1714],{"type":32,"tag":182,"props":1701,"children":1702},{"style":189},[1703],{"type":37,"value":431},{"type":32,"tag":182,"props":1705,"children":1706},{"style":206},[1707],{"type":37,"value":1708}," {{ ref(",{"type":32,"tag":182,"props":1710,"children":1711},{"style":457},[1712],{"type":37,"value":1713},"'stg_events'",{"type":32,"tag":182,"props":1715,"children":1716},{"style":206},[1717],{"type":37,"value":1718},") }} e\n",{"type":32,"tag":182,"props":1720,"children":1721},{"class":184,"line":301},[1722,1727,1731,1736],{"type":32,"tag":182,"props":1723,"children":1724},{"style":189},[1725],{"type":37,"value":1726},"LEFT JOIN",{"type":32,"tag":182,"props":1728,"children":1729},{"style":206},[1730],{"type":37,"value":1708},{"type":32,"tag":182,"props":1732,"children":1733},{"style":457},[1734],{"type":37,"value":1735},"'identity_map'",{"type":32,"tag":182,"props":1737,"children":1738},{"style":206},[1739],{"type":37,"value":1740},") }} im_email\n",{"type":32,"tag":182,"props":1742,"children":1743},{"class":184,"line":318},[1744,1749,1754,1758,1762],{"type":32,"tag":182,"props":1745,"children":1746},{"style":189},[1747],{"type":37,"value":1748},"  ON",{"type":32,"tag":182,"props":1750,"children":1751},{"style":490},[1752],{"type":37,"value":1753}," e",{"type":32,"tag":182,"props":1755,"children":1756},{"style":206},[1757],{"type":37,"value":943},{"type":32,"tag":182,"props":1759,"children":1760},{"style":490},[1761],{"type":37,"value":60},{"type":32,"tag":182,"props":1763,"children":1764},{"style":189},[1765],{"type":37,"value":1766}," IS NOT NULL\n",{"type":32,"tag":182,"props":1768,"children":1769},{"class":184,"line":332},[1770,1775,1780,1784,1788,1792],{"type":32,"tag":182,"props":1771,"children":1772},{"style":189},[1773],{"type":37,"value":1774},"  AND",{"type":32,"tag":182,"props":1776,"children":1777},{"style":490},[1778],{"type":37,"value":1779}," im_email",{"type":32,"tag":182,"props":1781,"children":1782},{"style":206},[1783],{"type":37,"value":943},{"type":32,"tag":182,"props":1785,"children":1786},{"style":490},[1787],{"type":37,"value":1167},{"type":32,"tag":182,"props":1789,"children":1790},{"style":189},[1791],{"type":37,"value":1030},{"type":32,"tag":182,"props":1793,"children":1794},{"style":457},[1795],{"type":37,"value":1796}," 'email_sha256'\n",{"type":32,"tag":182,"props":1798,"children":1799},{"class":184,"line":26},[1800,1804,1808,1812,1816,1820,1824,1828],{"type":32,"tag":182,"props":1801,"children":1802},{"style":189},[1803],{"type":37,"value":1774},{"type":32,"tag":182,"props":1805,"children":1806},{"style":490},[1807],{"type":37,"value":1779},{"type":32,"tag":182,"props":1809,"children":1810},{"style":206},[1811],{"type":37,"value":943},{"type":32,"tag":182,"props":1813,"children":1814},{"style":490},[1815],{"type":37,"value":1174},{"type":32,"tag":182,"props":1817,"children":1818},{"style":189},[1819],{"type":37,"value":1030},{"type":32,"tag":182,"props":1821,"children":1822},{"style":490},[1823],{"type":37,"value":1753},{"type":32,"tag":182,"props":1825,"children":1826},{"style":206},[1827],{"type":37,"value":943},{"type":32,"tag":182,"props":1829,"children":1830},{"style":490},[1831],{"type":37,"value":1832},"email_hash\n",{"type":32,"tag":182,"props":1834,"children":1835},{"class":184,"line":715},[1836,1840,1844,1848],{"type":32,"tag":182,"props":1837,"children":1838},{"style":189},[1839],{"type":37,"value":1726},{"type":32,"tag":182,"props":1841,"children":1842},{"style":206},[1843],{"type":37,"value":1708},{"type":32,"tag":182,"props":1845,"children":1846},{"style":457},[1847],{"type":37,"value":1735},{"type":32,"tag":182,"props":1849,"children":1850},{"style":206},[1851],{"type":37,"value":1852},") }} im_cookie\n",{"type":32,"tag":182,"props":1854,"children":1855},{"class":184,"line":724},[1856,1860,1864,1868,1873],{"type":32,"tag":182,"props":1857,"children":1858},{"style":189},[1859],{"type":37,"value":1748},{"type":32,"tag":182,"props":1861,"children":1862},{"style":490},[1863],{"type":37,"value":1753},{"type":32,"tag":182,"props":1865,"children":1866},{"style":206},[1867],{"type":37,"value":943},{"type":32,"tag":182,"props":1869,"children":1870},{"style":490},[1871],{"type":37,"value":1872},"cookie_id",{"type":32,"tag":182,"props":1874,"children":1875},{"style":189},[1876],{"type":37,"value":1766},{"type":32,"tag":182,"props":1878,"children":1879},{"class":184,"line":741},[1880,1884,1889,1893,1897,1901],{"type":32,"tag":182,"props":1881,"children":1882},{"style":189},[1883],{"type":37,"value":1774},{"type":32,"tag":182,"props":1885,"children":1886},{"style":490},[1887],{"type":37,"value":1888}," im_cookie",{"type":32,"tag":182,"props":1890,"children":1891},{"style":206},[1892],{"type":37,"value":943},{"type":32,"tag":182,"props":1894,"children":1895},{"style":490},[1896],{"type":37,"value":1167},{"type":32,"tag":182,"props":1898,"children":1899},{"style":189},[1900],{"type":37,"value":1030},{"type":32,"tag":182,"props":1902,"children":1903},{"style":457},[1904],{"type":37,"value":1905}," 'cookie'\n",{"type":32,"tag":182,"props":1907,"children":1908},{"class":184,"line":749},[1909,1913,1917,1921,1925,1929,1933,1937,1941],{"type":32,"tag":182,"props":1910,"children":1911},{"style":189},[1912],{"type":37,"value":1774},{"type":32,"tag":182,"props":1914,"children":1915},{"style":490},[1916],{"type":37,"value":1888},{"type":32,"tag":182,"props":1918,"children":1919},{"style":206},[1920],{"type":37,"value":943},{"type":32,"tag":182,"props":1922,"children":1923},{"style":490},[1924],{"type":37,"value":1174},{"type":32,"tag":182,"props":1926,"children":1927},{"style":189},[1928],{"type":37,"value":1030},{"type":32,"tag":182,"props":1930,"children":1931},{"style":490},[1932],{"type":37,"value":1753},{"type":32,"tag":182,"props":1934,"children":1935},{"style":206},[1936],{"type":37,"value":943},{"type":32,"tag":182,"props":1938,"children":1939},{"style":490},[1940],{"type":37,"value":1872},{"type":32,"tag":182,"props":1942,"children":1943},{"style":206},[1944],{"type":37,"value":498},{"type":32,"tag":33,"props":1946,"children":1947},{},[1948,1950,1956],{"type":37,"value":1949},"Diese Join-Logik führt das deterministischen Hash-Matching durch. Für das probabilistische Verfahren fügen Sie ein separates Modell ",{"type":32,"tag":40,"props":1951,"children":1953},{"className":1952},[],[1954],{"type":37,"value":1955},"fct_probabilistic_clusters",{"type":37,"value":1957}," hinzu.",{"type":32,"tag":64,"props":1959,"children":1961},{"id":1960},"consent-und-datenschutz-gdpr-und-ccpa-konformität",[1962],{"type":37,"value":1963},"Consent und Datenschutz: GDPR und CCPA-Konformität",{"type":32,"tag":33,"props":1965,"children":1966},{},[1967,1969,1974],{"type":37,"value":1968},"Identity Resolution unterliegt GDPR Artikel 6 (lawful basis) und CCPA „do not sell\"-Regeln. Der Email-Hash wird als ",{"type":32,"tag":76,"props":1970,"children":1971},{},[1972],{"type":37,"value":1973},"personenbezogenes Datum",{"type":37,"value":1975}," eingestuft (CJEU-Entscheidung 2019), deshalb brauchen Sie Consent oder ein berechtigtes Interesse.",{"type":32,"tag":33,"props":1977,"children":1978},{},[1979,1981,1987,1989,1995,1996,2001,2003,2009],{"type":37,"value":1980},"Unter Consent Mode v2: Wenn der Nutzer ",{"type":32,"tag":40,"props":1982,"children":1984},{"className":1983},[],[1985],{"type":37,"value":1986},"analytics_storage=denied",{"type":37,"value":1988}," setzt, dürfen Sie keinen Email-Hash sammeln. In diesem Fall nutzen Sie nur IP+UA-Fingerprint (im Rahmen „berechtigtes Interesse\" — doch die CJEU-Auslegung ist umstritten). Best Practice: Kolonne ",{"type":32,"tag":40,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":37,"value":1994},"consent_status",{"type":37,"value":1194},{"type":32,"tag":40,"props":1997,"children":1999},{"className":1998},[],[2000],{"type":37,"value":156},{"type":37,"value":2002}," hinzufügen und den Hash nur aus ",{"type":32,"tag":40,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":37,"value":2008},"analytics_storage=granted",{"type":37,"value":2010},"-Events schreiben.",{"type":32,"tag":33,"props":2012,"children":2013},{},[2014,2016,2021],{"type":37,"value":2015},"Für GDPR „right to delete\" benötigen Sie eine Lösch-Logik auf Basis ",{"type":32,"tag":40,"props":2017,"children":2019},{"className":2018},[],[2020],{"type":37,"value":534},{"type":37,"value":2022},":",{"type":32,"tag":172,"props":2024,"children":2026},{"className":174,"code":2025,"language":176,"meta":16,"style":16},"DELETE FROM identity_map WHERE canonical_id = 'uuid-123';\nDELETE FROM events WHERE canonical_id = 'uuid-123';\n",[2027],{"type":32,"tag":40,"props":2028,"children":2029},{"__ignoreMap":16},[2030,2068],{"type":32,"tag":182,"props":2031,"children":2032},{"class":184,"line":185},[2033,2038,2042,2047,2051,2055,2059,2064],{"type":32,"tag":182,"props":2034,"children":2035},{"style":189},[2036],{"type":37,"value":2037},"DELETE",{"type":32,"tag":182,"props":2039,"children":2040},{"style":189},[2041],{"type":37,"value":1574},{"type":32,"tag":182,"props":2043,"children":2044},{"style":206},[2045],{"type":37,"value":2046}," identity_map ",{"type":32,"tag":182,"props":2048,"children":2049},{"style":189},[2050],{"type":37,"value":444},{"type":32,"tag":182,"props":2052,"children":2053},{"style":206},[2054],{"type":37,"value":702},{"type":32,"tag":182,"props":2056,"children":2057},{"style":189},[2058],{"type":37,"value":454},{"type":32,"tag":182,"props":2060,"children":2061},{"style":457},[2062],{"type":37,"value":2063}," 'uuid-123'",{"type":32,"tag":182,"props":2065,"children":2066},{"style":206},[2067],{"type":37,"value":498},{"type":32,"tag":182,"props":2069,"children":2070},{"class":184,"line":212},[2071,2075,2079,2084,2088,2092,2096,2100],{"type":32,"tag":182,"props":2072,"children":2073},{"style":189},[2074],{"type":37,"value":2037},{"type":32,"tag":182,"props":2076,"children":2077},{"style":189},[2078],{"type":37,"value":1574},{"type":32,"tag":182,"props":2080,"children":2081},{"style":206},[2082],{"type":37,"value":2083}," events ",{"type":32,"tag":182,"props":2085,"children":2086},{"style":189},[2087],{"type":37,"value":444},{"type":32,"tag":182,"props":2089,"children":2090},{"style":206},[2091],{"type":37,"value":702},{"type":32,"tag":182,"props":2093,"children":2094},{"style":189},[2095],{"type":37,"value":454},{"type":32,"tag":182,"props":2097,"children":2098},{"style":457},[2099],{"type":37,"value":2063},{"type":32,"tag":182,"props":2101,"children":2102},{"style":206},[2103],{"type":37,"value":498},{"type":32,"tag":33,"props":2105,"children":2106},{},[2107,2109,2115],{"type":37,"value":2108},"Für Cascade-Löschung nutzen Sie Foreign-Key-Constraints (BigQuery unterstützt diese nicht nativ, aber Postgres\u002FSnowflake schon). Alternativ: Soft Delete (",{"type":32,"tag":40,"props":2110,"children":2112},{"className":2111},[],[2113],{"type":37,"value":2114},"deleted_at TIMESTAMP",{"type":37,"value":2116},") und später Batch-Purge.",{"type":32,"tag":513,"props":2118,"children":2120},{"id":2119},"tcf-22-vendor-mapping",[2121],{"type":37,"value":2122},"TCF 2.2 Vendor-Mapping",{"type":32,"tag":33,"props":2124,"children":2125},{},[2126,2128,2134],{"type":37,"value":2127},"Unter IAB TCF 2.2 fällt Identity Resolution unter „Purpose 1 — Store and\u002For access information on a device\". Hat der Nutzer Ihren Vendor in der Liste nicht genehmigt, darf keine Cross-Device-Verknüpfung stattfinden. In Roibase-Projekten parsen wir die TCF-String in BigQuery und schreiben den Parse-Ergebnis in eine Kolonne ",{"type":32,"tag":40,"props":2129,"children":2131},{"className":2130},[],[2132],{"type":37,"value":2133},"vendor_consent",{"type":37,"value":2135},", dann filtern wir beim Identity-Merge:",{"type":32,"tag":172,"props":2137,"children":2139},{"className":174,"code":2138,"language":176,"meta":16,"style":16},"WHERE vendor_consent LIKE '%vendor_id=123%'\n",[2140],{"type":32,"tag":40,"props":2141,"children":2142},{"__ignoreMap":16},[2143],{"type":32,"tag":182,"props":2144,"children":2145},{"class":184,"line":185},[2146,2150,2155,2160],{"type":32,"tag":182,"props":2147,"children":2148},{"style":189},[2149],{"type":37,"value":444},{"type":32,"tag":182,"props":2151,"children":2152},{"style":206},[2153],{"type":37,"value":2154}," vendor_consent ",{"type":32,"tag":182,"props":2156,"children":2157},{"style":189},[2158],{"type":37,"value":2159},"LIKE",{"type":32,"tag":182,"props":2161,"children":2162},{"style":457},[2163],{"type":37,"value":2164}," '%vendor_id=123%'\n",{"type":32,"tag":33,"props":2166,"children":2167},{},[2168],{"type":37,"value":2169},"Diese Logik verhindert, dass Sie ohne Consent Identity-Graph aufbauen — ein Gleichgewicht zwischen Compliance und Datenqualität.",{"type":32,"tag":64,"props":2171,"children":2173},{"id":2172},"cdp-integration-segment-mparticle-rudderstack",[2174],{"type":37,"value":2175},"CDP-Integration: Segment, mParticle, Rudderstack",{"type":32,"tag":33,"props":2177,"children":2178},{},[2179,2181,2188,2190,2196,2198,2204,2205,2211],{"type":37,"value":2180},"Moderne CDPs bieten ihre eigenen Identity-Graphen an, aber oft sind diese eine Black Box. Mit einer eigenen Pipeline kontrollieren Sie die Graph-Logik — besonders bei ",{"type":32,"tag":548,"props":2182,"children":2185},{"href":2183,"rel":2184},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fretention-engineering-cdp",[552],[2186],{"type":37,"value":2187},"CDP & Retention Engineering",{"type":37,"value":2189}," kritisch. Segment's ",{"type":32,"tag":40,"props":2191,"children":2193},{"className":2192},[],[2194],{"type":37,"value":2195},"identify()",{"type":37,"value":2197},"-Aufruf mergt ",{"type":32,"tag":40,"props":2199,"children":2201},{"className":2200},[],[2202],{"type":37,"value":2203},"userId",{"type":37,"value":132},{"type":32,"tag":40,"props":2206,"children":2208},{"className":2207},[],[2209],{"type":37,"value":2210},"anonymousId",{"type":37,"value":2212},", aber welches Signal hat Priorität? In Ihrer eigenen Resolution-Logik setzen Sie eine klare Prioritätsreihenfolge:",{"type":32,"tag":1115,"props":2214,"children":2215},{},[2216,2227,2237,2247,2258],{"type":32,"tag":1119,"props":2217,"children":2218},{},[2219,2225],{"type":32,"tag":40,"props":2220,"children":2222},{"className":2221},[],[2223],{"type":37,"value":2224},"customer_id",{"type":37,"value":2226}," (CRM) → am zuverlässigsten",{"type":32,"tag":1119,"props":2228,"children":2229},{},[2230,2235],{"type":32,"tag":40,"props":2231,"children":2233},{"className":2232},[],[2234],{"type":37,"value":1375},{"type":37,"value":2236}," → deterministisch",{"type":32,"tag":1119,"props":2238,"children":2239},{},[2240,2245],{"type":32,"tag":40,"props":2241,"children":2243},{"className":2242},[],[2244],{"type":37,"value":45},{"type":37,"value":2246}," → Cross-Session, aber nicht Cross-Device",{"type":32,"tag":1119,"props":2248,"children":2249},{},[2250,2256],{"type":32,"tag":40,"props":2251,"children":2253},{"className":2252},[],[2254],{"type":37,"value":2255},"cookie",{"type":37,"value":2257}," → kürzeste TTL",{"type":32,"tag":1119,"props":2259,"children":2260},{},[2261,2266],{"type":32,"tag":40,"props":2262,"children":2264},{"className":2263},[],[2265],{"type":37,"value":970},{"type":37,"value":2267}," → probabilistischer Fallback",{"type":32,"tag":33,"props":2269,"children":2270},{},[2271,2273,2279,2281,2286,2287,2293],{"type":37,"value":2272},"Diese Prioritätsreihenfolge kodieren Sie in dbt mit einer ",{"type":32,"tag":40,"props":2274,"children":2276},{"className":2275},[],[2277],{"type":37,"value":2278},"COALESCE()",{"type":37,"value":2280},"-Kette. An das CDP senden Sie nur die finale ",{"type":32,"tag":40,"props":2282,"children":2284},{"className":2283},[],[2285],{"type":37,"value":534},{"type":37,"value":132},{"type":32,"tag":40,"props":2288,"children":2290},{"className":2289},[],[2291],{"type":37,"value":2292},"confidence_score",{"type":37,"value":2294},", die",{"type":32,"tag":2296,"props":2297,"children":2298},"style",{},[2299],{"type":37,"value":2300},"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":237,"depth":237,"links":2302},[2303,2304,2307,2310,2311,2314],{"id":66,"depth":212,"text":69},{"id":142,"depth":212,"text":145,"children":2305},[2306],{"id":515,"depth":237,"text":518},{"id":560,"depth":212,"text":563,"children":2308},[2309],{"id":1094,"depth":237,"text":1097},{"id":1105,"depth":212,"text":1108},{"id":1960,"depth":212,"text":1963,"children":2312},[2313],{"id":2119,"depth":237,"text":2122},{"id":2172,"depth":212,"text":2175},"markdown","content:de:data:identity-resolution-6-signale-eine-kundenidentitat.md","content","de\u002Fdata\u002Fidentity-resolution-6-signale-eine-kundenidentitat.md","de\u002Fdata\u002Fidentity-resolution-6-signale-eine-kundenidentitat","md",1785967489405]