[{"data":1,"prerenderedAt":926},["ShallowReactive",2],{"navigation_docs":3,"-tracking-sdk-google-tag-manager":172,"-tracking-sdk-google-tag-manager-surround":921},[4,23,49,98,116,134,152],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","/getting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction",{"title":15,"path":16,"stem":17},"Quickstart","/getting-started/quickstart","1.getting-started/2.quickstart",{"title":19,"path":20,"stem":21},"Core concepts","/getting-started/concepts","1.getting-started/3.concepts",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Tracking SDK","i-lucide-chart-line","/tracking-sdk","2.tracking-sdk",[29,33,37,41,45],{"title":30,"path":31,"stem":32},"Overview","/tracking-sdk/overview","2.tracking-sdk/1.overview",{"title":34,"path":35,"stem":36},"JavaScript SDK","/tracking-sdk/javascript","2.tracking-sdk/2.javascript",{"title":38,"path":39,"stem":40},"Google Tag Manager","/tracking-sdk/google-tag-manager","2.tracking-sdk/3.google-tag-manager",{"title":42,"path":43,"stem":44},"Events reference","/tracking-sdk/events","2.tracking-sdk/4.events",{"title":46,"path":47,"stem":48},"Event schema","/tracking-sdk/event-schema","2.tracking-sdk/5.event-schema",{"title":50,"icon":51,"path":52,"stem":53,"children":54,"page":22},"Connectors","i-lucide-plug","/connectors","3.connectors",[55,58,62,66,70,74,78,82,86,90,94],{"title":30,"path":56,"stem":57},"/connectors/overview","3.connectors/1.overview",{"title":59,"path":60,"stem":61},"Cloudflare AI crawlers","/connectors/cloudflare-ai-crawlers","3.connectors/10.cloudflare-ai-crawlers",{"title":63,"path":64,"stem":65},"Content change webhooks","/connectors/content-change-webhooks","3.connectors/11.content-change-webhooks",{"title":67,"path":68,"stem":69},"Google Ads","/connectors/google-ads","3.connectors/2.google-ads",{"title":71,"path":72,"stem":73},"Meta Ads","/connectors/meta-ads","3.connectors/3.meta-ads",{"title":75,"path":76,"stem":77},"TikTok Ads","/connectors/tiktok-ads","3.connectors/4.tiktok-ads",{"title":79,"path":80,"stem":81},"LinkedIn Ads","/connectors/linkedin-ads","3.connectors/5.linkedin-ads",{"title":83,"path":84,"stem":85},"Pinterest Ads","/connectors/pinterest-ads","3.connectors/6.pinterest-ads",{"title":87,"path":88,"stem":89},"Custom webhooks","/connectors/webhooks","3.connectors/7.webhooks",{"title":91,"path":92,"stem":93},"PrestaShop","/connectors/prestashop","3.connectors/8.prestashop",{"title":95,"path":96,"stem":97},"WooCommerce","/connectors/woocommerce","3.connectors/9.woocommerce",{"title":99,"icon":100,"path":101,"stem":102,"children":103,"page":22},"Attribution","i-lucide-git-fork","/attribution","4.attribution",[104,108,112],{"title":105,"path":106,"stem":107},"How attribution works","/attribution/overview","4.attribution/1.overview",{"title":109,"path":110,"stem":111},"Data-driven model","/attribution/data-driven","4.attribution/2.data-driven",{"title":113,"path":114,"stem":115},"Attribution windows","/attribution/windows","4.attribution/3.windows",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":22},"Dashboard","i-lucide-layout-dashboard","/dashboard","5.dashboard",[122,126,130],{"title":123,"path":124,"stem":125},"Dashboard overview","/dashboard/overview","5.dashboard/1.overview",{"title":127,"path":128,"stem":129},"Metrics reference","/dashboard/metrics","5.dashboard/2.metrics",{"title":131,"path":132,"stem":133},"Alerts","/dashboard/alerts","5.dashboard/3.alerts",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":22},"Lumen","i-lucide-shield-check","/lumen","6.lumen",[140,144,148],{"title":141,"path":142,"stem":143},"Lumen overview","/lumen/overview","6.lumen/1.overview",{"title":145,"path":146,"stem":147},"Setup","/lumen/setup","6.lumen/2.setup",{"title":149,"path":150,"stem":151},"Investigations","/lumen/investigations","6.lumen/3.investigations",{"title":153,"icon":154,"path":155,"stem":156,"children":157,"page":22},"MCP agent","i-lucide-bot","/mcp-agent","7.mcp-agent",[158,161,164,168],{"title":30,"path":159,"stem":160},"/mcp-agent/overview","7.mcp-agent/1.overview",{"title":15,"path":162,"stem":163},"/mcp-agent/quickstart","7.mcp-agent/2.quickstart",{"title":165,"path":166,"stem":167},"Tools reference","/mcp-agent/tools-reference","7.mcp-agent/3.tools-reference",{"title":169,"path":170,"stem":171},"SEO × GEO playbook","/mcp-agent/playbook-seo-geo","7.mcp-agent/4.playbook-seo-geo",{"id":173,"title":38,"body":174,"description":914,"extension":915,"links":916,"meta":917,"navigation":918,"path":39,"seo":919,"stem":40,"__hash__":920},"docs/2.tracking-sdk/3.google-tag-manager.md",{"type":175,"value":176,"toc":903},"minimark",[177,181,186,218,222,259,265,277,281,287,353,357,375,378,396,399,535,539,561,568,586,600,604,620,626,663,669,686,690,697,723,727,841,845,864,870,879,890,899],[178,179,180],"p",{},"The TrustData Web Tag loads the SDK from a Google Tag Manager web container. Use it\ninstead of the snippet when your site already runs Google Tag Manager. The tag reads\nGoogle Consent Mode and captures IAB TCF consent choices with no extra setup.",[182,183,185],"h2",{"id":184},"install-the-template","Install the template",[187,188,189,198,208],"ol",{},[190,191,192,193,197],"li",{},"In Google Tag Manager, open ",[194,195,196],"strong",{},"Templates",".",[190,199,200,201,204,205,197],{},"Under ",[194,202,203],{},"Tag Templates",", click ",[194,206,207],{},"Search Gallery",[190,209,210,211,214,215,197],{},"Search for ",[194,212,213],{},"TrustData Web Tag"," and click ",[194,216,217],{},"Add to workspace",[182,219,221],{"id":220},"create-the-tag","Create the tag",[187,223,224,231,234,239,242,252],{},[190,225,226,227,230],{},"In TrustData, open your property's ",[194,228,229],{},"Attribution IDs"," page.",[190,232,233],{},"Copy the Attribution ID of the web stream.",[190,235,236,237,197],{},"In Google Tag Manager, create a tag of type ",[194,238,213],{},[190,240,241],{},"Paste the Attribution ID.",[190,243,244,245,248,249,197],{},"Set ",[194,246,247],{},"Command"," to ",[194,250,251],{},"Initialize + send event (All Pages)",[190,253,254,255,258],{},"Add the ",[194,256,257],{},"All Pages"," trigger and save.",[260,261,264],"callout",{"color":262,"icon":263},"warning","i-lucide-alert-circle","Use the Attribution ID, not the property ID. Both are UUIDs, and events sent with a\nproperty ID are not attributed.",[178,266,267,268,272,273,276],{},"Most sites need only this tag. It loads the SDK and sends a ",[269,270,271],"code",{},"page_view"," on every page.\nTest it in ",[194,274,275],{},"Preview"," before you publish the container.",[182,278,280],{"id":279},"commands","Commands",[178,282,283,284,286],{},"One template covers every job. The ",[194,285,247],{}," field picks the job, and the trigger has\nto match it.",[288,289,290,305],"table",{},[291,292,293],"thead",{},[294,295,296,299,302],"tr",{},[297,298,247],"th",{},[297,300,301],{},"Trigger",[297,303,304],{},"What it does",[306,307,308,320,331,342],"tbody",{},[294,309,310,313,315],{},[311,312,251],"td",{},[311,314,257],{},[311,316,317,318],{},"Loads the SDK and sends ",[269,319,271],{},[294,321,322,325,328],{},[311,323,324],{},"Send event",[311,326,327],{},"Any trigger",[311,329,330],{},"Sends an event. It loads the SDK first if no TrustData tag has",[294,332,333,336,339],{},[311,334,335],{},"Send consent decision (CMP event)",[311,337,338],{},"Your consent platform's event",[311,340,341],{},"Records a consent choice. Needed only when Decision capture is Manual",[294,343,344,347,350],{},[311,345,346],{},"Initialize only",[311,348,349],{},"Consent Initialization or All Pages",[311,351,352],{},"Loads the SDK without sending an event",[182,354,356],{"id":355},"send-an-event","Send an event",[178,358,359,360,362,363,366,367,370,371,374],{},"Create a second tag with the command ",[194,361,324],{},", then pick an event name such as\n",[269,364,365],{},"purchase"," or ",[269,368,369],{},"generate_lead",". Choose ",[194,372,373],{},"Custom…"," to send your own name.",[178,376,377],{},"Add parameters two ways, and combine them freely:",[379,380,381,387],"ul",{},[190,382,383,386],{},[194,384,385],{},"Event parameters",": a table of names and values.",[190,388,389,392,393,197],{},[194,390,391],{},"Event parameters from a variable",": a variable that returns an object, such as a\nData Layer Variable for ",[269,394,395],{},"ecommerce",[178,397,398],{},"When both set the same key, the table value is sent.",[400,401,406],"pre",{"className":402,"code":403,"language":404,"meta":405,"style":405},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// A Data Layer Variable pointing at this object fills the event in one field.\ndataLayer.push({\n  event: 'purchase',\n  ecommerce: {\n    transaction_id: 'T-4821',\n    value: 149.9,\n    currency: 'EUR'\n  }\n});\n","javascript","",[269,407,408,417,437,459,470,487,501,517,523],{"__ignoreMap":405},[409,410,413],"span",{"class":411,"line":412},"line",1,[409,414,416],{"class":415},"sHwdD","// A Data Layer Variable pointing at this object fills the event in one field.\n",[409,418,420,424,427,431,434],{"class":411,"line":419},2,[409,421,423],{"class":422},"sTEyZ","dataLayer",[409,425,197],{"class":426},"sMK4o",[409,428,430],{"class":429},"s2Zo4","push",[409,432,433],{"class":422},"(",[409,435,436],{"class":426},"{\n",[409,438,440,444,447,450,453,456],{"class":411,"line":439},3,[409,441,443],{"class":442},"swJcz","  event",[409,445,446],{"class":426},":",[409,448,449],{"class":426}," '",[409,451,365],{"class":452},"sfazB",[409,454,455],{"class":426},"'",[409,457,458],{"class":426},",\n",[409,460,462,465,467],{"class":411,"line":461},4,[409,463,464],{"class":442},"  ecommerce",[409,466,446],{"class":426},[409,468,469],{"class":426}," {\n",[409,471,473,476,478,480,483,485],{"class":411,"line":472},5,[409,474,475],{"class":442},"    transaction_id",[409,477,446],{"class":426},[409,479,449],{"class":426},[409,481,482],{"class":452},"T-4821",[409,484,455],{"class":426},[409,486,458],{"class":426},[409,488,490,493,495,499],{"class":411,"line":489},6,[409,491,492],{"class":442},"    value",[409,494,446],{"class":426},[409,496,498],{"class":497},"sbssI"," 149.9",[409,500,458],{"class":426},[409,502,504,507,509,511,514],{"class":411,"line":503},7,[409,505,506],{"class":442},"    currency",[409,508,446],{"class":426},[409,510,449],{"class":426},[409,512,513],{"class":452},"EUR",[409,515,516],{"class":426},"'\n",[409,518,520],{"class":411,"line":519},8,[409,521,522],{"class":426},"  }\n",[409,524,526,529,532],{"class":411,"line":525},9,[409,527,528],{"class":426},"}",[409,530,531],{"class":422},")",[409,533,534],{"class":426},";\n",[182,536,538],{"id":537},"track-funnel-steps","Track funnel steps",[178,540,541,542,545,546,458,549,545,552,545,555,557,558,560],{},"Use the standard event names for standard moments: ",[269,543,544],{},"view_item",", ",[269,547,548],{},"add_to_cart",[269,550,551],{},"begin_checkout",[269,553,554],{},"add_payment_info",[269,556,365],{}," and ",[269,559,369],{},". TrustData places\nthese in a funnel with no setup, counts them in sessions, and forwards the ones ad\nplatforms support.",[178,562,563,564,567],{},"A booking flow or a configurator has steps with no standard name. Send those as\n",[269,565,566],{},"funnel_step"," and fill in two fields:",[379,569,570,576],{},[190,571,572,575],{},[194,573,574],{},"Step index",": the position of the step, starting at 1.",[190,577,578,581,582,585],{},[194,579,580],{},"Step name",": an ID such as ",[269,583,584],{},"passenger_details",". Funnels match on it, so keep it\nstable when the page changes.",[178,587,588,589,591,592,595,596,599],{},"A ",[269,590,566],{}," tag without both fields fails and sends nothing. Add ",[269,593,594],{},"value"," and\n",[269,597,598],{},"currency"," as event parameters to record the basket at that step.",[182,601,603],{"id":602},"consent","Consent",[178,605,606,607,545,610,458,613,557,616,619],{},"The tag reads Google Consent Mode: ",[269,608,609],{},"analytics_storage",[269,611,612],{},"ad_storage",[269,614,615],{},"functionality_storage",[269,617,618],{},"ad_user_data",". Without analytics consent, the SDK stores\nnothing on the device and sends no visitor ID. TrustData still measures the visit, which\nis what keeps your traffic numbers whole.",[178,621,622,625],{},[194,623,624],{},"Decision capture"," controls how a real choice is recorded, which is what the consent\nrate counts:",[288,627,628,639],{},[291,629,630],{},[294,631,632,634,637],{},[297,633,624],{},[297,635,636],{},"When to use it",[297,638,145],{},[306,640,641,652],{},[294,642,643,646,649],{},[311,644,645],{},"Auto (IAB TCF)",[311,647,648],{},"Your consent platform supports IAB TCF",[311,650,651],{},"None. This is the default",[294,653,654,657,660],{},[311,655,656],{},"Manual",[311,658,659],{},"Your consent platform has no TCF support",[311,661,662],{},"A second tag, below",[178,664,665,666,668],{},"For Manual capture, create a tag with the command ",[194,667,335],{},"\nand fire it on the event your consent platform pushes when a visitor accepts, rejects or\nsaves a choice. Fire it on that event, never on page load: a page load is not a\ndecision.",[178,670,671,672,675,676,679,680,366,683,197],{},"If your consent platform does not set Consent Mode at all, set ",[194,673,674],{},"Consent source"," to\n",[194,677,678],{},"Manual (CMP variables)"," and map each consent type to a variable that returns\n",[269,681,682],{},"granted",[269,684,685],{},"denied",[182,687,689],{"id":688},"personal-data","Personal data",[178,691,692,693,696],{},"Pass an email or a phone number in a ",[269,694,695],{},"user_data"," parameter. The tag hashes both with\nSHA-256 in the browser, so a raw value never leaves the page. A value that is already a\nSHA-256 hash is sent unchanged.",[379,698,699,702,709,720],{},[190,700,701],{},"Emails are trimmed and lowercased before hashing.",[190,703,704,705,708],{},"A phone number that starts with ",[269,706,707],{},"+"," is hashed as it is.",[190,710,711,712,715,716,719],{},"A phone number in national format, such as ",[269,713,714],{},"06 01 02 03 04",", needs ",[194,717,718],{},"Default phone\ncountry code"," under Identity. Without it, the tag drops the phone rather than hash\nthe wrong number.",[190,721,722],{},"If hashing fails, the tag drops that field. It never sends an unhashed value.",[182,724,726],{"id":725},"settings","Settings",[288,728,729,741],{},[291,730,731],{},[294,732,733,736,739],{},[297,734,735],{},"Field",[297,737,738],{},"Default",[297,740,304],{},[306,742,743,754,764,773,783,794,804,817,830],{},[294,744,745,748,751],{},[311,746,747],{},"Attribution ID",[311,749,750],{},"none",[311,752,753],{},"The web stream to send events to. Required",[294,755,756,758,761],{},[311,757,247],{},[311,759,760],{},"Initialize + send event",[311,762,763],{},"The job this tag does",[294,765,766,768,770],{},[311,767,624],{},[311,769,645],{},[311,771,772],{},"How a consent choice is recorded",[294,774,775,777,780],{},[311,776,674],{},[311,778,779],{},"Google Consent Mode",[311,781,782],{},"Where consent values are read from",[294,784,785,788,791],{},[311,786,787],{},"User ID",[311,789,790],{},"empty",[311,792,793],{},"Your authenticated user ID. Sent only with advertising consent",[294,795,796,799,801],{},[311,797,798],{},"Default phone country code",[311,800,790],{},[311,802,803],{},"Country code for phone numbers in national format",[294,805,806,809,814],{},[311,807,808],{},"API host",[311,810,811],{},[269,812,813],{},"https://t.trustdata.tech",[311,815,816],{},"Change it only if you serve the collector from your own domain",[294,818,819,822,824],{},[311,820,821],{},"Ignore domains",[311,823,790],{},[311,825,826,827],{},"Hostnames to drop, such as ",[269,828,829],{},"staging.example.com",[294,831,832,835,838],{},[311,833,834],{},"Enable verbose SDK logging",[311,836,837],{},"off",[311,839,840],{},"Extra console output while you debug",[182,842,844],{"id":843},"troubleshooting","Troubleshooting",[178,846,847,850,851,854,855,675,857,557,860,863],{},[194,848,849],{},"The tag shows Failed in Tag Assistant."," The browser did not load ",[269,852,853],{},"t.js",". An ad blocker\nor a Content Security Policy usually blocks it. Add ",[269,856,813],{},[269,858,859],{},"script-src",[269,861,862],{},"connect-src"," in your Content Security Policy.",[178,865,866,869],{},[194,867,868],{},"The tag succeeds but no events arrive in TrustData."," Check that the Attribution ID\nbelongs to the web stream of the property you are looking at.",[178,871,872,875,876,197],{},[194,873,874],{},"Preview shows \"Phone dropped\"."," The phone number is in national format. Set ",[194,877,878],{},"Default\nphone country code",[178,880,881,884,885,887,888,197],{},[194,882,883],{},"A funnel_step tag fails."," Set ",[194,886,574],{}," to 1 or more and fill in ",[194,889,580],{},[178,891,892,895,896,898],{},[194,893,894],{},"The consent rate stays at zero."," Your consent platform has no TCF support, so set\n",[194,897,624],{}," to Manual and add the consent decision tag above.",[900,901,902],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":405,"searchDepth":419,"depth":419,"links":904},[905,906,907,908,909,910,911,912,913],{"id":184,"depth":419,"text":185},{"id":220,"depth":419,"text":221},{"id":279,"depth":419,"text":280},{"id":355,"depth":419,"text":356},{"id":537,"depth":419,"text":538},{"id":602,"depth":419,"text":603},{"id":688,"depth":419,"text":689},{"id":725,"depth":419,"text":726},{"id":843,"depth":419,"text":844},"Install TrustData through the TrustData Web Tag template for Google Tag Manager.","md",null,{},true,{"title":38,"description":914},"dUQLRTk6l674geDLTdriz9FECdfpESe0cwQGpBSy1zk",[922,924],{"title":34,"path":35,"stem":36,"description":923,"children":-1},"Install and configure the TrustData JavaScript SDK.",{"title":42,"path":43,"stem":44,"description":925,"children":-1},"Track page views and conversions with TrustData.",1790009402901]