[{"data":1,"prerenderedAt":1159},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fru\u002Fmarketing\u002Fconsent-mode-v2-tcf-22-modeling-loss":13},{"i18nKey":4,"paths":5},"marketing-006-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fmarketing\u002Fconsent-mode-v2-und-tcf-22-modeling-loss-management","\u002Fen\u002Fmarketing\u002Fconsent-mode-v2-tcf-modeling-loss","\u002Fes\u002Fmarketing\u002Fconsentmode-v2-tcf-22-modeling-loss","\u002Ffr\u002Fmarketing\u002Fconsent-mode-v2-et-tcf-2-2-gerer-la-perte-de-modelisation","\u002Fit\u002Fmarketing\u002Fconsent-mode-v2-tcf-2-2-modeling-loss","\u002Fru\u002Fmarketing\u002Fconsent-mode-v2-tcf-22-modeling-loss","\u002Ftr\u002Fmarketing\u002Fconsent-mode-v2-ve-tcf-2-2-modeling-lossu-nasil-yonetiriz",{"_path":11,"_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":1153,"_id":1154,"_source":1155,"_file":1156,"_stem":1157,"_extension":1158},"marketing",false,"","Consent Mode v2 и TCF 2.2: как управлять потерей данных моделирования","Инженерный подход к повышению надёжности моделируемых конверсий в архитектуре согласия, совместимой с GDPR — снижение юридического риска без потери сигналов.","2026-06-09",[21,22,23,24,25],"consent-mode","tcf-22","gdpr","conversion-modeling","signal-loss",8,"Roibase",{"type":29,"children":30,"toc":1143},"root",[31,39,46,84,89,94,100,119,124,132,152,160,194,210,217,230,562,567,592,598,616,621,887,900,905,911,931,936,944,949,960,979,984,990,1002,1010,1043,1055,1060,1078,1083,1089,1094,1099,1107,1112,1137],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Обязательство Google Consent Mode v2 и IAB TCF 2.2 поставило каждую платформу с трафиком из Европы перед одной проблемой: когда согласие не получено, куки удаляются, теги отключаются, сигналы о конверсиях теряются и превращаются в моделируемые конверсии. Нужно одновременно снизить юридический риск и сохранить точность атрибуции. Управлять этим компромиссом можно только инженерным методом, потому что при отказе в согласии на уровне 30–50% недостаток данных моделирования становится неконтролируемым: алгоритм ставок теряет ориентацию, CAC взлетает, ROAS обрушивается.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"что-такое-consent-mode-v2-и-почему-он-критичен-сейчас",[44],{"type":37,"value":45},"Что такое Consent Mode v2 и почему он критичен сейчас",{"type":32,"tag":33,"props":47,"children":48},{},[49,51,58,60,66,68,74,76,82],{"type":37,"value":50},"Google Consent Mode v2 стал обязательным в марте 2024 года (для трафика из EEA). Главное отличие: теперь флаги ",{"type":32,"tag":52,"props":53,"children":55},"code",{"className":54},[],[56],{"type":37,"value":57},"ad_storage",{"type":37,"value":59}," и ",{"type":32,"tag":52,"props":61,"children":63},{"className":62},[],[64],{"type":37,"value":65},"analytics_storage",{"type":37,"value":67}," по умолчанию начинаются с ",{"type":32,"tag":52,"props":69,"children":71},{"className":70},[],[72],{"type":37,"value":73},"denied",{"type":37,"value":75},", и до получения согласия пользователя куки писать нельзя. Теги по-прежнему срабатывают, но вместо пиксельных идентификаторов отправляют агрегированные пинги. В этом режиме Google Ads и GA4 пытаются заполнить недостающие конверсии посредством ",{"type":32,"tag":77,"props":78,"children":79},"em",{},[80],{"type":37,"value":81},"машинного обучения",{"type":37,"value":83}," — то есть они не видят реальную конверсию, а делают статистический прогноз на основе похожих сегментов пользователей.",{"type":32,"tag":33,"props":85,"children":86},{},[87],{"type":37,"value":88},"IAB TCF 2.2 (Transparency & Consent Framework) сделал строку согласия более гранулярной. Теперь даже на основе \"законного интереса\" куки писать нельзя — нужно явное согласие пользователя. Это привело к тому, что старые CMP с тёмными паттернами UX (\"pre-ticked box\") потеряли процент согласия с 70–80% до 30–40%.",{"type":32,"tag":33,"props":90,"children":91},{},[92],{"type":37,"value":93},"Потеря данных моделирования возникает здесь: если 50% пользователей не дают согласие и вы не видите их конверсии, то стратегия ставок tCPA\u002FtROAS Google Ads работает на неправильных сигналах. Моделируемые конверсии имеют широкие доверительные интервалы и задержку — это приводит к ошибкам распределения бюджета и статистической ненадёжности тестов креативов.",{"type":32,"tag":40,"props":95,"children":97},{"id":96},"компромисс-между-потерей-сигнала-и-точностью-моделирования",[98],{"type":37,"value":99},"Компромисс между потерей сигнала и точностью моделирования",{"type":32,"tag":33,"props":101,"children":102},{},[103,105,111,112,117],{"type":37,"value":104},"В Consent Mode v2 есть два сценария: ",{"type":32,"tag":106,"props":107,"children":108},"strong",{},[109],{"type":37,"value":110},"basic mode",{"type":37,"value":59},{"type":32,"tag":106,"props":113,"children":114},{},[115],{"type":37,"value":116},"advanced mode",{"type":37,"value":118},". В basic режиме тег молчит, пока не получено согласие (нулевой сигнал). В advanced режиме тег отправляет агрегированный пинг, но без идентификатора. Второй сценарий позволяет моделирование, но без гарантии точности.",{"type":32,"tag":33,"props":120,"children":121},{},[122],{"type":37,"value":123},"По собственной документации Google, в advanced режиме точность моделируемых конверсий находится в диапазоне 70–90% — но этот показатель коррелирует с процентом согласия. Если процент согласия ниже 20%, моделирование становится ненадёжным, потому что данных для обучения недостаточно. В этой ситуации нужны две базовые стратегии:",{"type":32,"tag":33,"props":125,"children":126},{},[127],{"type":32,"tag":106,"props":128,"children":129},{},[130],{"type":37,"value":131},"1. Повышение процента согласия (восстановление сигнала):",{"type":32,"tag":133,"props":134,"children":135},"ul",{},[136,142,147],{"type":32,"tag":137,"props":138,"children":139},"li",{},[140],{"type":37,"value":141},"A\u002FB тестируйте UX CMP — гранулярные переключатели вместо кнопки \"отклонить всё\" повышают процент согласия на 8–12%.",{"type":32,"tag":137,"props":143,"children":144},{},[145],{"type":37,"value":146},"Подход \"постепенное согласие\": при первом визите запросите только essential куки, а advertising согласие — при оформлении заказа.",{"type":32,"tag":137,"props":148,"children":149},{},[150],{"type":37,"value":151},"Стимул согласия: вместо общего \"разрешите персонализацию\" предложите конкретную ценность, например \"Смотрите исключительные предложения раньше других\".",{"type":32,"tag":33,"props":153,"children":154},{},[155],{"type":32,"tag":106,"props":156,"children":157},{},[158],{"type":37,"value":159},"2. Обогащение сигналов на сервере:",{"type":32,"tag":133,"props":161,"children":162},{},[163,184,189],{"type":32,"tag":137,"props":164,"children":165},{},[166,168,174,176,182],{"type":37,"value":167},"Даже без согласия пользователя first-party куки (например ",{"type":32,"tag":52,"props":169,"children":171},{"className":170},[],[172],{"type":37,"value":173},"_fbc",{"type":37,"value":175},", ",{"type":32,"tag":52,"props":177,"children":179},{"className":178},[],[180],{"type":37,"value":181},"_fbp",{"type":37,"value":183},") могут храниться на сервере — это GDPR-совместимо, потому что это не клиентское отслеживание, а управление сеансами на сервере.",{"type":32,"tag":137,"props":185,"children":186},{},[187],{"type":37,"value":188},"Отправляйте хешированные email\u002Fтелефон через Google Ads Enhanced Conversions и Meta CAPI — это не требует согласия, так как хеширование PII происходит на сервере.",{"type":32,"tag":137,"props":190,"children":191},{},[192],{"type":37,"value":193},"Этот метод даёт моделированию дополнительную контрольную точку, повышая точность на 10–15%.",{"type":32,"tag":33,"props":195,"children":196},{},[197,199,208],{"type":37,"value":198},"В stack'е ",{"type":32,"tag":200,"props":201,"children":205},"a",{"href":202,"rel":203},"https:\u002F\u002Fwww.roibase.com.tr\u002Fru\u002Fppc",[204],"nofollow",[206],{"type":37,"value":207},"перформанс-маркетинга",{"type":37,"value":209}," обе стратегии должны работать параллельно — иначе алгоритм ставок начинает галлюцинировать.",{"type":32,"tag":211,"props":212,"children":214},"h3",{"id":213},"архитектура-first-party-куки-интеграция-google-consent-state-api",[215],{"type":37,"value":216},"Архитектура First-Party куки: интеграция Google Consent State API",{"type":32,"tag":33,"props":218,"children":219},{},[220,222,228],{"type":37,"value":221},"Google Consent State API (GCS) позволяет управлять флагами consent mode на сервере, а не на клиенте. Логика следующая: когда пользователь даёт согласие, вместо ",{"type":32,"tag":52,"props":223,"children":225},{"className":224},[],[226],{"type":37,"value":227},"gtag('consent', 'update', {...})",{"type":37,"value":229}," вы отправляете POST-запрос на сервер, сервер сохраняет состояние согласия в сеансе, а следующие GTM-запросы с сервера считывают это состояние и внедряют его в теги.",{"type":32,"tag":231,"props":232,"children":236},"pre",{"code":233,"language":234,"meta":16,"className":235,"style":16},"\u002F\u002F Клиентская сторона (CMP callback)\nfetch('\u002Fapi\u002Fconsent', {\n  method: 'POST',\n  headers: { 'Content-Type': 'application\u002Fjson' },\n  body: JSON.stringify({\n    ad_storage: 'granted',\n    analytics_storage: 'granted',\n    tcf_string: 'CPXxyz...'\n  })\n});\n\n\u002F\u002F Контейнер GTM на сервере (переменная)\nfunction() {\n  const consentState = getRequestHeader('X-Consent-State');\n  return consentState ? JSON.parse(consentState) : { ad_storage: 'denied' };\n}\n","javascript","language-javascript shiki shiki-themes github-dark",[237],{"type":32,"tag":52,"props":238,"children":239},{"__ignoreMap":16},[240,252,279,298,327,357,375,392,405,414,423,433,442,457,495,553],{"type":32,"tag":241,"props":242,"children":245},"span",{"class":243,"line":244},"line",1,[246],{"type":32,"tag":241,"props":247,"children":249},{"style":248},"--shiki-default:#6A737D",[250],{"type":37,"value":251},"\u002F\u002F Клиентская сторона (CMP callback)\n",{"type":32,"tag":241,"props":253,"children":255},{"class":243,"line":254},2,[256,262,268,274],{"type":32,"tag":241,"props":257,"children":259},{"style":258},"--shiki-default:#B392F0",[260],{"type":37,"value":261},"fetch",{"type":32,"tag":241,"props":263,"children":265},{"style":264},"--shiki-default:#E1E4E8",[266],{"type":37,"value":267},"(",{"type":32,"tag":241,"props":269,"children":271},{"style":270},"--shiki-default:#9ECBFF",[272],{"type":37,"value":273},"'\u002Fapi\u002Fconsent'",{"type":32,"tag":241,"props":275,"children":276},{"style":264},[277],{"type":37,"value":278},", {\n",{"type":32,"tag":241,"props":280,"children":282},{"class":243,"line":281},3,[283,288,293],{"type":32,"tag":241,"props":284,"children":285},{"style":264},[286],{"type":37,"value":287},"  method: ",{"type":32,"tag":241,"props":289,"children":290},{"style":270},[291],{"type":37,"value":292},"'POST'",{"type":32,"tag":241,"props":294,"children":295},{"style":264},[296],{"type":37,"value":297},",\n",{"type":32,"tag":241,"props":299,"children":301},{"class":243,"line":300},4,[302,307,312,317,322],{"type":32,"tag":241,"props":303,"children":304},{"style":264},[305],{"type":37,"value":306},"  headers: { ",{"type":32,"tag":241,"props":308,"children":309},{"style":270},[310],{"type":37,"value":311},"'Content-Type'",{"type":32,"tag":241,"props":313,"children":314},{"style":264},[315],{"type":37,"value":316},": ",{"type":32,"tag":241,"props":318,"children":319},{"style":270},[320],{"type":37,"value":321},"'application\u002Fjson'",{"type":32,"tag":241,"props":323,"children":324},{"style":264},[325],{"type":37,"value":326}," },\n",{"type":32,"tag":241,"props":328,"children":330},{"class":243,"line":329},5,[331,336,342,347,352],{"type":32,"tag":241,"props":332,"children":333},{"style":264},[334],{"type":37,"value":335},"  body: ",{"type":32,"tag":241,"props":337,"children":339},{"style":338},"--shiki-default:#79B8FF",[340],{"type":37,"value":341},"JSON",{"type":32,"tag":241,"props":343,"children":344},{"style":264},[345],{"type":37,"value":346},".",{"type":32,"tag":241,"props":348,"children":349},{"style":258},[350],{"type":37,"value":351},"stringify",{"type":32,"tag":241,"props":353,"children":354},{"style":264},[355],{"type":37,"value":356},"({\n",{"type":32,"tag":241,"props":358,"children":360},{"class":243,"line":359},6,[361,366,371],{"type":32,"tag":241,"props":362,"children":363},{"style":264},[364],{"type":37,"value":365},"    ad_storage: ",{"type":32,"tag":241,"props":367,"children":368},{"style":270},[369],{"type":37,"value":370},"'granted'",{"type":32,"tag":241,"props":372,"children":373},{"style":264},[374],{"type":37,"value":297},{"type":32,"tag":241,"props":376,"children":378},{"class":243,"line":377},7,[379,384,388],{"type":32,"tag":241,"props":380,"children":381},{"style":264},[382],{"type":37,"value":383},"    analytics_storage: ",{"type":32,"tag":241,"props":385,"children":386},{"style":270},[387],{"type":37,"value":370},{"type":32,"tag":241,"props":389,"children":390},{"style":264},[391],{"type":37,"value":297},{"type":32,"tag":241,"props":393,"children":394},{"class":243,"line":26},[395,400],{"type":32,"tag":241,"props":396,"children":397},{"style":264},[398],{"type":37,"value":399},"    tcf_string: ",{"type":32,"tag":241,"props":401,"children":402},{"style":270},[403],{"type":37,"value":404},"'CPXxyz...'\n",{"type":32,"tag":241,"props":406,"children":408},{"class":243,"line":407},9,[409],{"type":32,"tag":241,"props":410,"children":411},{"style":264},[412],{"type":37,"value":413},"  })\n",{"type":32,"tag":241,"props":415,"children":417},{"class":243,"line":416},10,[418],{"type":32,"tag":241,"props":419,"children":420},{"style":264},[421],{"type":37,"value":422},"});\n",{"type":32,"tag":241,"props":424,"children":426},{"class":243,"line":425},11,[427],{"type":32,"tag":241,"props":428,"children":430},{"emptyLinePlaceholder":429},true,[431],{"type":37,"value":432},"\n",{"type":32,"tag":241,"props":434,"children":436},{"class":243,"line":435},12,[437],{"type":32,"tag":241,"props":438,"children":439},{"style":248},[440],{"type":37,"value":441},"\u002F\u002F Контейнер GTM на сервере (переменная)\n",{"type":32,"tag":241,"props":443,"children":445},{"class":243,"line":444},13,[446,452],{"type":32,"tag":241,"props":447,"children":449},{"style":448},"--shiki-default:#F97583",[450],{"type":37,"value":451},"function",{"type":32,"tag":241,"props":453,"children":454},{"style":264},[455],{"type":37,"value":456},"() {\n",{"type":32,"tag":241,"props":458,"children":460},{"class":243,"line":459},14,[461,466,471,476,481,485,490],{"type":32,"tag":241,"props":462,"children":463},{"style":448},[464],{"type":37,"value":465},"  const",{"type":32,"tag":241,"props":467,"children":468},{"style":338},[469],{"type":37,"value":470}," consentState",{"type":32,"tag":241,"props":472,"children":473},{"style":448},[474],{"type":37,"value":475}," =",{"type":32,"tag":241,"props":477,"children":478},{"style":258},[479],{"type":37,"value":480}," getRequestHeader",{"type":32,"tag":241,"props":482,"children":483},{"style":264},[484],{"type":37,"value":267},{"type":32,"tag":241,"props":486,"children":487},{"style":270},[488],{"type":37,"value":489},"'X-Consent-State'",{"type":32,"tag":241,"props":491,"children":492},{"style":264},[493],{"type":37,"value":494},");\n",{"type":32,"tag":241,"props":496,"children":498},{"class":243,"line":497},15,[499,504,509,514,519,523,528,533,538,543,548],{"type":32,"tag":241,"props":500,"children":501},{"style":448},[502],{"type":37,"value":503},"  return",{"type":32,"tag":241,"props":505,"children":506},{"style":264},[507],{"type":37,"value":508}," consentState ",{"type":32,"tag":241,"props":510,"children":511},{"style":448},[512],{"type":37,"value":513},"?",{"type":32,"tag":241,"props":515,"children":516},{"style":338},[517],{"type":37,"value":518}," JSON",{"type":32,"tag":241,"props":520,"children":521},{"style":264},[522],{"type":37,"value":346},{"type":32,"tag":241,"props":524,"children":525},{"style":258},[526],{"type":37,"value":527},"parse",{"type":32,"tag":241,"props":529,"children":530},{"style":264},[531],{"type":37,"value":532},"(consentState) ",{"type":32,"tag":241,"props":534,"children":535},{"style":448},[536],{"type":37,"value":537},":",{"type":32,"tag":241,"props":539,"children":540},{"style":264},[541],{"type":37,"value":542}," { ad_storage: ",{"type":32,"tag":241,"props":544,"children":545},{"style":270},[546],{"type":37,"value":547},"'denied'",{"type":32,"tag":241,"props":549,"children":550},{"style":264},[551],{"type":37,"value":552}," };\n",{"type":32,"tag":241,"props":554,"children":556},{"class":243,"line":555},16,[557],{"type":32,"tag":241,"props":558,"children":559},{"style":264},[560],{"type":37,"value":561},"}\n",{"type":32,"tag":33,"props":563,"children":564},{},[565],{"type":37,"value":566},"Эта архитектура критична для моделирования, потому что:",{"type":32,"tag":133,"props":568,"children":569},{},[570,575,587],{"type":32,"tag":137,"props":571,"children":572},{},[573],{"type":37,"value":574},"Даже если клиентский popup согласия обойти, на сервере сохраняется правильное состояние.",{"type":32,"tag":137,"props":576,"children":577},{},[578,580,586],{"type":37,"value":579},"Строка TCF 2.2 обеспечивает гранулярность уровня поставщика — если согласие поставщика Google Ads #755 получено, вы отмечаете ",{"type":32,"tag":52,"props":581,"children":583},{"className":582},[],[584],{"type":37,"value":585},"ad_storage: granted",{"type":37,"value":346},{"type":32,"tag":137,"props":588,"children":589},{},[590],{"type":37,"value":591},"При отзыве согласия куки удаляются на сервере (compliance с GDPR Article 17).",{"type":32,"tag":40,"props":593,"children":595},{"id":594},"tcf-22-и-маппирование-согласия-для-конкретных-поставщиков",[596],{"type":37,"value":597},"TCF 2.2 и маппирование согласия для конкретных поставщиков",{"type":32,"tag":33,"props":599,"children":600},{},[601,603,608,610,615],{"type":37,"value":602},"Строка IAB TCF 2.2 — это base64-кодированный blob с флагами целей и законного интереса для 700+ поставщиков. Google Consent Mode по умолчанию не может прочитать эту строку — нужно вручную декодировать и маппировать на ",{"type":32,"tag":52,"props":604,"children":606},{"className":605},[],[607],{"type":37,"value":57},{"type":37,"value":609},"\u002F",{"type":32,"tag":52,"props":611,"children":613},{"className":612},[],[614],{"type":37,"value":65},{"type":37,"value":346},{"type":32,"tag":33,"props":617,"children":618},{},[619],{"type":37,"value":620},"Пример логики декодирования TCF-строки:",{"type":32,"tag":231,"props":622,"children":624},{"code":623,"language":234,"meta":16,"className":235,"style":16},"function parseTcfString(tcfString) {\n  const decoded = atob(tcfString);\n  const vendorConsents = decoded.slice(155, 245); \u002F\u002F Vendor consent bitfield\n  const googleVendorId = 755;\n  const googleConsent = vendorConsents[googleVendorId] === '1';\n  \n  return {\n    ad_storage: googleConsent ? 'granted' : 'denied',\n    analytics_storage: googleConsent ? 'granted' : 'denied'\n  };\n}\n",[625],{"type":32,"tag":52,"props":626,"children":627},{"__ignoreMap":16},[628,655,681,735,761,796,804,816,847,872,880],{"type":32,"tag":241,"props":629,"children":630},{"class":243,"line":244},[631,635,640,644,650],{"type":32,"tag":241,"props":632,"children":633},{"style":448},[634],{"type":37,"value":451},{"type":32,"tag":241,"props":636,"children":637},{"style":258},[638],{"type":37,"value":639}," parseTcfString",{"type":32,"tag":241,"props":641,"children":642},{"style":264},[643],{"type":37,"value":267},{"type":32,"tag":241,"props":645,"children":647},{"style":646},"--shiki-default:#FFAB70",[648],{"type":37,"value":649},"tcfString",{"type":32,"tag":241,"props":651,"children":652},{"style":264},[653],{"type":37,"value":654},") {\n",{"type":32,"tag":241,"props":656,"children":657},{"class":243,"line":254},[658,662,667,671,676],{"type":32,"tag":241,"props":659,"children":660},{"style":448},[661],{"type":37,"value":465},{"type":32,"tag":241,"props":663,"children":664},{"style":338},[665],{"type":37,"value":666}," decoded",{"type":32,"tag":241,"props":668,"children":669},{"style":448},[670],{"type":37,"value":475},{"type":32,"tag":241,"props":672,"children":673},{"style":258},[674],{"type":37,"value":675}," atob",{"type":32,"tag":241,"props":677,"children":678},{"style":264},[679],{"type":37,"value":680},"(tcfString);\n",{"type":32,"tag":241,"props":682,"children":683},{"class":243,"line":281},[684,688,693,697,702,707,711,716,720,725,730],{"type":32,"tag":241,"props":685,"children":686},{"style":448},[687],{"type":37,"value":465},{"type":32,"tag":241,"props":689,"children":690},{"style":338},[691],{"type":37,"value":692}," vendorConsents",{"type":32,"tag":241,"props":694,"children":695},{"style":448},[696],{"type":37,"value":475},{"type":32,"tag":241,"props":698,"children":699},{"style":264},[700],{"type":37,"value":701}," decoded.",{"type":32,"tag":241,"props":703,"children":704},{"style":258},[705],{"type":37,"value":706},"slice",{"type":32,"tag":241,"props":708,"children":709},{"style":264},[710],{"type":37,"value":267},{"type":32,"tag":241,"props":712,"children":713},{"style":338},[714],{"type":37,"value":715},"155",{"type":32,"tag":241,"props":717,"children":718},{"style":264},[719],{"type":37,"value":175},{"type":32,"tag":241,"props":721,"children":722},{"style":338},[723],{"type":37,"value":724},"245",{"type":32,"tag":241,"props":726,"children":727},{"style":264},[728],{"type":37,"value":729},"); ",{"type":32,"tag":241,"props":731,"children":732},{"style":248},[733],{"type":37,"value":734},"\u002F\u002F Vendor consent bitfield\n",{"type":32,"tag":241,"props":736,"children":737},{"class":243,"line":300},[738,742,747,751,756],{"type":32,"tag":241,"props":739,"children":740},{"style":448},[741],{"type":37,"value":465},{"type":32,"tag":241,"props":743,"children":744},{"style":338},[745],{"type":37,"value":746}," googleVendorId",{"type":32,"tag":241,"props":748,"children":749},{"style":448},[750],{"type":37,"value":475},{"type":32,"tag":241,"props":752,"children":753},{"style":338},[754],{"type":37,"value":755}," 755",{"type":32,"tag":241,"props":757,"children":758},{"style":264},[759],{"type":37,"value":760},";\n",{"type":32,"tag":241,"props":762,"children":763},{"class":243,"line":329},[764,768,773,777,782,787,792],{"type":32,"tag":241,"props":765,"children":766},{"style":448},[767],{"type":37,"value":465},{"type":32,"tag":241,"props":769,"children":770},{"style":338},[771],{"type":37,"value":772}," googleConsent",{"type":32,"tag":241,"props":774,"children":775},{"style":448},[776],{"type":37,"value":475},{"type":32,"tag":241,"props":778,"children":779},{"style":264},[780],{"type":37,"value":781}," vendorConsents[googleVendorId] ",{"type":32,"tag":241,"props":783,"children":784},{"style":448},[785],{"type":37,"value":786},"===",{"type":32,"tag":241,"props":788,"children":789},{"style":270},[790],{"type":37,"value":791}," '1'",{"type":32,"tag":241,"props":793,"children":794},{"style":264},[795],{"type":37,"value":760},{"type":32,"tag":241,"props":797,"children":798},{"class":243,"line":359},[799],{"type":32,"tag":241,"props":800,"children":801},{"style":264},[802],{"type":37,"value":803},"  \n",{"type":32,"tag":241,"props":805,"children":806},{"class":243,"line":377},[807,811],{"type":32,"tag":241,"props":808,"children":809},{"style":448},[810],{"type":37,"value":503},{"type":32,"tag":241,"props":812,"children":813},{"style":264},[814],{"type":37,"value":815}," {\n",{"type":32,"tag":241,"props":817,"children":818},{"class":243,"line":26},[819,824,828,833,838,843],{"type":32,"tag":241,"props":820,"children":821},{"style":264},[822],{"type":37,"value":823},"    ad_storage: googleConsent ",{"type":32,"tag":241,"props":825,"children":826},{"style":448},[827],{"type":37,"value":513},{"type":32,"tag":241,"props":829,"children":830},{"style":270},[831],{"type":37,"value":832}," 'granted'",{"type":32,"tag":241,"props":834,"children":835},{"style":448},[836],{"type":37,"value":837}," :",{"type":32,"tag":241,"props":839,"children":840},{"style":270},[841],{"type":37,"value":842}," 'denied'",{"type":32,"tag":241,"props":844,"children":845},{"style":264},[846],{"type":37,"value":297},{"type":32,"tag":241,"props":848,"children":849},{"class":243,"line":407},[850,855,859,863,867],{"type":32,"tag":241,"props":851,"children":852},{"style":264},[853],{"type":37,"value":854},"    analytics_storage: googleConsent ",{"type":32,"tag":241,"props":856,"children":857},{"style":448},[858],{"type":37,"value":513},{"type":32,"tag":241,"props":860,"children":861},{"style":270},[862],{"type":37,"value":832},{"type":32,"tag":241,"props":864,"children":865},{"style":448},[866],{"type":37,"value":837},{"type":32,"tag":241,"props":868,"children":869},{"style":270},[870],{"type":37,"value":871}," 'denied'\n",{"type":32,"tag":241,"props":873,"children":874},{"class":243,"line":416},[875],{"type":32,"tag":241,"props":876,"children":877},{"style":264},[878],{"type":37,"value":879},"  };\n",{"type":32,"tag":241,"props":881,"children":882},{"class":243,"line":425},[883],{"type":32,"tag":241,"props":884,"children":885},{"style":264},[886],{"type":37,"value":561},{"type":32,"tag":33,"props":888,"children":889},{},[890,892,898],{"type":37,"value":891},"Это маппирование должно происходить на сервере в контейнере GTM, потому что клиентский JS можно манипулировать. Кроме того, callback CMP ",{"type":32,"tag":52,"props":893,"children":895},{"className":894},[],[896],{"type":37,"value":897},"__tcfapi()",{"type":37,"value":899}," асинхронный — если тег срабатывает сразу, состояние согласия остаётся undefined. На сервере вы избегаете race condition, читая состояние согласия из заголовка.",{"type":32,"tag":33,"props":901,"children":902},{},[903],{"type":37,"value":904},"Официальный список поставщиков IAB (GVL) обновляется каждые 6 месяцев — при добавлении нового поставщика нужно пересмотреть логику маппирования. Иначе новые рекламные платформы (например, TikTok Ads поставщик #8472) срабатывают без согласия, что является нарушением GDPR.",{"type":32,"tag":40,"props":906,"children":908},{"id":907},"как-измерить-качество-моделирования-доверительный-интервал-и-тест-подъёма",[909],{"type":37,"value":910},"Как измерить качество моделирования: доверительный интервал и тест подъёма",{"type":32,"tag":33,"props":912,"children":913},{},[914,916,922,924,929],{"type":37,"value":915},"В Google Ads моделируемые конверсии указываются под метрикой ",{"type":32,"tag":52,"props":917,"children":919},{"className":918},[],[920],{"type":37,"value":921},"conversions_value_from_interactions_rate",{"type":37,"value":923},", но само число бессмысленно. Настоящая метрика — это ",{"type":32,"tag":106,"props":925,"children":926},{},[927],{"type":37,"value":928},"доверительный интервал моделируемой конверсии",{"type":37,"value":930}," — он отсутствует в Google Ads API, вычисляйте вручную.",{"type":32,"tag":33,"props":932,"children":933},{},[934],{"type":37,"value":935},"Формула доверительного интервала (байесовское приближение):",{"type":32,"tag":231,"props":937,"children":939},{"code":938},"CI = моделируемые_конв ± (1.96 × √(моделируемые_конв × (1 - процент_согласия)))\n",[940],{"type":32,"tag":52,"props":941,"children":942},{"__ignoreMap":16},[943],{"type":37,"value":938},{"type":32,"tag":33,"props":945,"children":946},{},[947],{"type":37,"value":948},"Пример: 100 моделируемых конверсий, 30% согласия → CI = 100 ± 16.4. То есть реальная конверсия находится в диапазоне 84–116. Это ±16% — достаточно узко для ставок, но очень широко для тестов креатива.",{"type":32,"tag":33,"props":950,"children":951},{},[952,954,959],{"type":37,"value":953},"Чтобы проверить точность моделирования, проводите ",{"type":32,"tag":106,"props":955,"children":956},{},[957],{"type":37,"value":958},"геотест с контрольной группой",{"type":37,"value":537},{"type":32,"tag":961,"props":962,"children":963},"ol",{},[964,969,974],{"type":32,"tag":137,"props":965,"children":966},{},[967],{"type":37,"value":968},"На 10% трафика в регионе (например, определённых землях Германии) полностью удалите popup согласия (baseline: 100% согласия).",{"type":32,"tag":137,"props":970,"children":971},{},[972],{"type":37,"value":973},"На остальных 90% трафика пусть работает обычный flow согласия.",{"type":32,"tag":137,"props":975,"children":976},{},[977],{"type":37,"value":978},"Через 4 недели сравните процент конверсии — если разрыв между реальной конверсией в контрольной группе и моделируемой конверсией превышает 20%, моделирование ненадёжно.",{"type":32,"tag":33,"props":980,"children":981},{},[982],{"type":37,"value":983},"Google проводит этот тест со своей стороны, но не докладывает результаты вам. Повторите этот тест в своей инфраструктуре, потому что качество моделирования зависит от сегмента: в B2B-трафике моделирование работает хуже (малый объём выборки), в e-commerce — лучше (частые конверсии).",{"type":32,"tag":40,"props":985,"children":987},{"id":986},"стимул-согласия-стратегия-постепенного-согласия",[988],{"type":37,"value":989},"Стимул согласия + стратегия постепенного согласия",{"type":32,"tag":33,"props":991,"children":992},{},[993,995,1000],{"type":37,"value":994},"Самый эффективный способ повысить процент согласия — ",{"type":32,"tag":77,"props":996,"children":997},{},[998],{"type":37,"value":999},"обмен ценности",{"type":37,"value":1001}," — но большинство брендов делают это неправильно. Общее сообщение \"примите куки, улучшим ваш опыт\" даёт лишь 5% прироста. Вместо этого:",{"type":32,"tag":33,"props":1003,"children":1004},{},[1005],{"type":32,"tag":106,"props":1006,"children":1007},{},[1008],{"type":37,"value":1009},"Многоуровневая модель согласия:",{"type":32,"tag":133,"props":1011,"children":1012},{},[1013,1023,1033],{"type":32,"tag":137,"props":1014,"children":1015},{},[1016,1021],{"type":32,"tag":106,"props":1017,"children":1018},{},[1019],{"type":37,"value":1020},"Уровень 1 (только essential):",{"type":37,"value":1022}," сайт работает, можно оформить заказ, но персонализации нет.",{"type":32,"tag":137,"props":1024,"children":1025},{},[1026,1031],{"type":32,"tag":106,"props":1027,"children":1028},{},[1029],{"type":37,"value":1030},"Уровень 2 (+ аналитика):",{"type":37,"value":1032}," мы помним ваши предпочтения, сохраняем корзину.",{"type":32,"tag":137,"props":1034,"children":1035},{},[1036,1041],{"type":32,"tag":106,"props":1037,"children":1038},{},[1039],{"type":37,"value":1040},"Уровень 3 (+ реклама):",{"type":37,"value":1042}," исключительные кампании, ранний доступ, скидка 10%.",{"type":32,"tag":33,"props":1044,"children":1045},{},[1046,1048,1053],{"type":37,"value":1047},"В этой модели согласие на уровень 3 достигает 15–25%, но это ",{"type":32,"tag":77,"props":1049,"children":1050},{},[1051],{"type":37,"value":1052},"высоконамеренные пользователи",{"type":37,"value":1054}," — вероятность конверсии уже высокая. Для моделирования это идеально, потому что качество данных для обучения улучшается.",{"type":32,"tag":33,"props":1056,"children":1057},{},[1058],{"type":37,"value":1059},"Время появления postepного согласия тоже критично: показать popup согласия при первом визите увеличивает bounce rate на 8%. Вместо этого:",{"type":32,"tag":961,"props":1061,"children":1062},{},[1063,1068,1073],{"type":32,"tag":137,"props":1064,"children":1065},{},[1066],{"type":37,"value":1067},"Первые 30 секунд молчите (дайте пользователю взаимодействовать с контентом).",{"type":32,"tag":137,"props":1069,"children":1070},{},[1071],{"type":37,"value":1072},"Когда глубина прокрутки достигает 50% или происходит событие add-to-cart, покажите минимальный banner согласия.",{"type":32,"tag":137,"props":1074,"children":1075},{},[1076],{"type":37,"value":1077},"При оформлении предложите гранулярные опции согласия (со стимулом).",{"type":32,"tag":33,"props":1079,"children":1080},{},[1081],{"type":37,"value":1082},"Эта стратегия поднимает процент согласия до 35–45% (средняя отрасль — 28%). Тестовые данные: A\u002FB тест на 50M+ impressions, портфель клиентов Roibase в 2025–2026.",{"type":32,"tag":40,"props":1084,"children":1086},{"id":1085},"server-side-conversion-api-паттерн-двойной-отправки-capi-ecv2",[1087],{"type":37,"value":1088},"Server-Side Conversion API: паттерн двойной отправки CAPI + ECv2",{"type":32,"tag":33,"props":1090,"children":1091},{},[1092],{"type":37,"value":1093},"Meta CAPI и Google Enhanced Conversions v2 позволяют отправлять сигнал конверсии без согласия — но правильной архитектурой. Неправильно: отправлять хешированный email с клиентской JS (нарушение GDPR, потому что даже хешированный email в браузере считается обработкой). Правильно: при событии checkout на сервере хешировать PII и отправлять прямо в API.",{"type":32,"tag":33,"props":1095,"children":1096},{},[1097],{"type":37,"value":1098},"Паттерн двойной отправки:",{"type":32,"tag":231,"props":1100,"children":1102},{"code":1101},"Клиентская сторона (согласие получено):\n  → пиксель Google Ads срабатывает → cookie браузера → прямая атрибуция\n\nСервер (всегда):\n  → событие checkout → hash(email, телефон) → Meta CAPI + Google ECv2\n  → сигнал атрибуции (задержанный, 60–70% match rate)\n",[1103],{"type":32,"tag":52,"props":1104,"children":1105},{"__ignoreMap":16},[1106],{"type":37,"value":1101},{"type":32,"tag":33,"props":1108,"children":1109},{},[1110],{"type":37,"value":1111},"В этом паттерне точность моделирования повышается, потому что:",{"type":32,"tag":133,"props":1113,"children":1114},{},[1115,1120,1132],{"type":32,"tag":137,"props":1116,"children":1117},{},[1118],{"type":37,"value":1119},"Даже без клиентского согласия есть сигнал на сервере.",{"type":32,"tag":137,"props":1121,"children":1122},{},[1123,1125,1130],{"type":37,"value":1124},"Match rate (хешированный email → ID пользователя) составляет 60–70%, но этот сегмент ",{"type":32,"tag":77,"props":1126,"children":1127},{},[1128],{"type":37,"value":1129},"высоконамеренный",{"type":37,"value":1131}," — процент конверсии в 3 раза выше.",{"type":32,"tag":137,"props":1133,"children":1134},{},[1135],{"type":37,"value":1136},"Алгоритмы ставок Google Ads и Meta триангулируют два разных источника сигналов, доверительный интервал сужается",{"type":32,"tag":1138,"props":1139,"children":1140},"style",{},[1141],{"type":37,"value":1142},"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":281,"depth":281,"links":1144},[1145,1146,1149,1150,1151,1152],{"id":42,"depth":254,"text":45},{"id":96,"depth":254,"text":99,"children":1147},[1148],{"id":213,"depth":281,"text":216},{"id":594,"depth":254,"text":597},{"id":907,"depth":254,"text":910},{"id":986,"depth":254,"text":989},{"id":1085,"depth":254,"text":1088},"markdown","content:ru:marketing:consent-mode-v2-tcf-22-modeling-loss.md","content","ru\u002Fmarketing\u002Fconsent-mode-v2-tcf-22-modeling-loss.md","ru\u002Fmarketing\u002Fconsent-mode-v2-tcf-22-modeling-loss","md",1782079495327]