[{"data":1,"prerenderedAt":2829},["ShallowReactive",2],{"navigation_docs":3,"-essentials-personalization":70,"-essentials-personalization-surround":2824},[4,30,60],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F4.quick-start","i-lucide-rocket",{"title":26,"path":27,"stem":28,"icon":29},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F5.configuration","i-lucide-settings",{"title":31,"path":32,"stem":33,"children":34,"page":6},"Essentials","\u002Fessentials","2.essentials",[35,40,45,50,55],{"title":36,"path":37,"stem":38,"icon":39},"Composables","\u002Fessentials\u002Fcomposables","2.essentials\u002F1.composables","i-lucide-code",{"title":41,"path":42,"stem":43,"icon":44},"Components","\u002Fessentials\u002Fcomponents","2.essentials\u002F2.components","i-lucide-layers",{"title":46,"path":47,"stem":48,"icon":49},"Image Optimization","\u002Fessentials\u002Fimage-optimization","2.essentials\u002F3.image-optimization","i-lucide-image",{"title":51,"path":52,"stem":53,"icon":54},"Personalization","\u002Fessentials\u002Fpersonalization","2.essentials\u002F4.personalization","i-lucide-users",{"title":56,"path":57,"stem":58,"icon":59},"Performance Optimization","\u002Fessentials\u002Fperformance","2.essentials\u002F5.performance","i-lucide-zap",{"title":61,"path":62,"stem":63,"children":64,"page":6},"Features","\u002Ffeatures","3.features",[65],{"title":66,"path":67,"stem":68,"icon":69},"Live Preview","\u002Ffeatures\u002Flive-preview","3.features\u002F1.live-preview","i-lucide-eye",{"id":71,"title":51,"body":72,"description":2817,"extension":2818,"links":2819,"meta":2820,"navigation":2821,"path":52,"seo":2822,"stem":53,"__hash__":2823},"docs\u002F2.essentials\u002F4.personalization.md",{"type":73,"value":74,"toc":2783},"minimark",[75,79,97,102,116,119,147,151,154,198,202,207,423,427,446,453,457,461,621,625,793,797,810,814,944,947,950,1142,1145,1148,1337,1341,1344,1538,1542,1546,1561,1786,1790,1793,1892,1896,1899,2022,2026,2030,2288,2292,2510,2514,2518,2529,2533,2544,2548,2556,2560,2565,2619,2624,2701,2706,2763,2767,2779],[76,77,78],"p",{},"Nuxt Contentstack provides seamless integration with Contentstack Personalize, enabling you to deliver personalized content experiences based on user attributes, behavior, and preferences.",[80,81,84,88,89,96],"callout",{"icon":82,"color":83},"i-lucide-video","primary",[85,86,87],"strong",{},"Master Personalization",": Deepen your understanding of Contentstack Personalize with the ",[90,91,95],"a",{"href":92,"rel":93},"https:\u002F\u002Fwww.contentstack.com\u002Facademy\u002Fcourses\u002Fpersonalize-foundations",[94],"nofollow","Personalize Foundations"," Academy course. Learn to set up projects, configure segmented experiences, run A\u002FB tests, and leverage attributes and audiences effectively.",[98,99,101],"h2",{"id":100},"overview","Overview",[76,103,104,105,110,111,115],{},"The Nuxt module automatically initializes the ",[90,106,109],{"href":107,"rel":108},"https:\u002F\u002Fwww.contentstack.com\u002Fdocs\u002Fdevelopers\u002Fsdks\u002Fpersonalize-edge-sdk\u002Fjavascript\u002Freference",[94],"Personalize Edge SDK"," and provides easy access through the ",[112,113,114],"code",{},"$contentstack.personalizeSdk"," object (client-side only; server-side personalization is handled by the built-in middleware).",[76,117,118],{},"Key features:",[120,121,122,129,135,141],"ul",{},[123,124,125,128],"li",{},[85,126,127],{},"User Attributes",": Set and track user properties",[123,130,131,134],{},[85,132,133],{},"Event Tracking",": Monitor user interactions and conversions",[123,136,137,140],{},[85,138,139],{},"Variant Delivery",": Serve different content based on user segments",[123,142,143,146],{},[85,144,145],{},"Real-time Personalization",": Dynamic content adaptation",[98,148,150],{"id":149},"how-it-works","How It Works",[76,152,153],{},"When personalization is enabled, the module:",[155,156,157,166,175,192],"ol",{},[123,158,159,162,163],{},[85,160,161],{},"Registers a server middleware"," that intercepts all requests, initializes the Personalize Edge SDK, extracts variant aliases from the request, and stores them in ",[112,164,165],{},"event.context.p13n",[123,167,168,171,172],{},[85,169,170],{},"Provides the Personalize SDK"," on the client through ",[112,173,174],{},"useContentstack().personalizeSdk",[123,176,177,180,181,184,185,184,188,191],{},[85,178,179],{},"Automatically applies variant aliases"," to all entry composable queries (e.g., ",[112,182,183],{},"useGetEntry",", ",[112,186,187],{},"useGetEntryByUrl",[112,189,190],{},"useGetEntries",")",[123,193,194,197],{},[85,195,196],{},"Manages cookies"," for variant persistence across requests",[98,199,201],{"id":200},"quick-setup","Quick Setup",[203,204,206],"h3",{"id":205},"_1-enable-personalization","1. Enable Personalization",[208,209,215],"pre",{"className":210,"code":211,"filename":212,"language":213,"meta":214,"style":214},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-contentstack'],\n\n  'nuxt-contentstack': {\n    apiKey: process.env.NUXT_CONTENTSTACK_API_KEY,\n    deliveryToken: process.env.NUXT_CONTENTSTACK_DELIVERY_TOKEN,\n    environment: 'production',\n\n    personalization: {\n      enable: true,\n      projectUid: process.env.NUXT_CONTENTSTACK_PERSONALIZE_PROJECT_UID\n    }\n  }\n})\n","nuxt.config.ts","ts","",[112,216,217,241,269,276,291,315,336,354,359,369,383,402,408,414],{"__ignoreMap":214},[218,219,222,226,229,233,237],"span",{"class":220,"line":221},"line",1,[218,223,225],{"class":224},"s7zQu","export",[218,227,228],{"class":224}," default",[218,230,232],{"class":231},"s2Zo4"," defineNuxtConfig",[218,234,236],{"class":235},"sTEyZ","(",[218,238,240],{"class":239},"sMK4o","{\n",[218,242,244,248,251,254,257,261,263,266],{"class":220,"line":243},2,[218,245,247],{"class":246},"swJcz","  modules",[218,249,250],{"class":239},":",[218,252,253],{"class":235}," [",[218,255,256],{"class":239},"'",[218,258,260],{"class":259},"sfazB","nuxt-contentstack",[218,262,256],{"class":239},[218,264,265],{"class":235},"]",[218,267,268],{"class":239},",\n",[218,270,272],{"class":220,"line":271},3,[218,273,275],{"emptyLinePlaceholder":274},true,"\n",[218,277,279,282,284,286,288],{"class":220,"line":278},4,[218,280,281],{"class":239},"  '",[218,283,260],{"class":246},[218,285,256],{"class":239},[218,287,250],{"class":239},[218,289,290],{"class":239}," {\n",[218,292,294,297,299,302,305,308,310,313],{"class":220,"line":293},5,[218,295,296],{"class":246},"    apiKey",[218,298,250],{"class":239},[218,300,301],{"class":235}," process",[218,303,304],{"class":239},".",[218,306,307],{"class":235},"env",[218,309,304],{"class":239},[218,311,312],{"class":235},"NUXT_CONTENTSTACK_API_KEY",[218,314,268],{"class":239},[218,316,318,321,323,325,327,329,331,334],{"class":220,"line":317},6,[218,319,320],{"class":246},"    deliveryToken",[218,322,250],{"class":239},[218,324,301],{"class":235},[218,326,304],{"class":239},[218,328,307],{"class":235},[218,330,304],{"class":239},[218,332,333],{"class":235},"NUXT_CONTENTSTACK_DELIVERY_TOKEN",[218,335,268],{"class":239},[218,337,339,342,344,347,350,352],{"class":220,"line":338},7,[218,340,341],{"class":246},"    environment",[218,343,250],{"class":239},[218,345,346],{"class":239}," '",[218,348,349],{"class":259},"production",[218,351,256],{"class":239},[218,353,268],{"class":239},[218,355,357],{"class":220,"line":356},8,[218,358,275],{"emptyLinePlaceholder":274},[218,360,362,365,367],{"class":220,"line":361},9,[218,363,364],{"class":246},"    personalization",[218,366,250],{"class":239},[218,368,290],{"class":239},[218,370,372,375,377,381],{"class":220,"line":371},10,[218,373,374],{"class":246},"      enable",[218,376,250],{"class":239},[218,378,380],{"class":379},"sfNiH"," true",[218,382,268],{"class":239},[218,384,386,389,391,393,395,397,399],{"class":220,"line":385},11,[218,387,388],{"class":246},"      projectUid",[218,390,250],{"class":239},[218,392,301],{"class":235},[218,394,304],{"class":239},[218,396,307],{"class":235},[218,398,304],{"class":239},[218,400,401],{"class":235},"NUXT_CONTENTSTACK_PERSONALIZE_PROJECT_UID\n",[218,403,405],{"class":220,"line":404},12,[218,406,407],{"class":239},"    }\n",[218,409,411],{"class":220,"line":410},13,[218,412,413],{"class":239},"  }\n",[218,415,417,420],{"class":220,"line":416},14,[218,418,419],{"class":239},"}",[218,421,422],{"class":235},")\n",[203,424,426],{"id":425},"_2-environment-variables","2. Environment Variables",[208,428,433],{"className":429,"code":430,"filename":431,"language":432,"meta":214,"style":214},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_CONTENTSTACK_PERSONALIZE_PROJECT_UID=your_project_uid\n",".env","bash",[112,434,435],{"__ignoreMap":214},[218,436,437,440,443],{"class":220,"line":221},[218,438,439],{"class":235},"NUXT_CONTENTSTACK_PERSONALIZE_PROJECT_UID",[218,441,442],{"class":239},"=",[218,444,445],{"class":259},"your_project_uid\n",[80,447,449,452],{"icon":448},"i-lucide-key",[85,450,451],{},"Project UID",": Find your project UID in Contentstack under Personalize → Project Settings.",[98,454,456],{"id":455},"basic-usage","Basic Usage",[203,458,460],{"id":459},"setting-user-attributes","Setting User Attributes",[208,462,465],{"className":210,"code":463,"filename":464,"language":213,"meta":214,"style":214},"export const usePersonalization = () => {\n  const { personalizeSdk } = useContentstack()\n\n  const setUserAttributes = async (attributes: Record\u003Cstring, any>) => {\n    if (personalizeSdk) {\n      await personalizeSdk.set(attributes)\n    }\n  }\n\n  return { setUserAttributes }\n}\n","composables\u002FusePersonalization.ts",[112,466,467,488,511,515,559,574,592,596,600,604,616],{"__ignoreMap":214},[218,468,469,471,475,478,480,483,486],{"class":220,"line":221},[218,470,225],{"class":224},[218,472,474],{"class":473},"spNyl"," const",[218,476,477],{"class":235}," usePersonalization ",[218,479,442],{"class":239},[218,481,482],{"class":239}," ()",[218,484,485],{"class":473}," =>",[218,487,290],{"class":239},[218,489,490,493,496,499,502,505,508],{"class":220,"line":243},[218,491,492],{"class":473},"  const",[218,494,495],{"class":239}," {",[218,497,498],{"class":235}," personalizeSdk",[218,500,501],{"class":239}," }",[218,503,504],{"class":239}," =",[218,506,507],{"class":231}," useContentstack",[218,509,510],{"class":246},"()\n",[218,512,513],{"class":220,"line":271},[218,514,275],{"emptyLinePlaceholder":274},[218,516,517,519,522,524,527,530,534,536,540,543,546,549,552,555,557],{"class":220,"line":278},[218,518,492],{"class":473},[218,520,521],{"class":235}," setUserAttributes",[218,523,504],{"class":239},[218,525,526],{"class":473}," async",[218,528,529],{"class":239}," (",[218,531,533],{"class":532},"sHdIc","attributes",[218,535,250],{"class":239},[218,537,539],{"class":538},"sBMFI"," Record",[218,541,542],{"class":239},"\u003C",[218,544,545],{"class":538},"string",[218,547,548],{"class":239},",",[218,550,551],{"class":538}," any",[218,553,554],{"class":239},">)",[218,556,485],{"class":473},[218,558,290],{"class":239},[218,560,561,564,566,569,572],{"class":220,"line":293},[218,562,563],{"class":224},"    if",[218,565,529],{"class":246},[218,567,568],{"class":235},"personalizeSdk",[218,570,571],{"class":246},") ",[218,573,240],{"class":239},[218,575,576,579,581,583,586,588,590],{"class":220,"line":317},[218,577,578],{"class":224},"      await",[218,580,498],{"class":235},[218,582,304],{"class":239},[218,584,585],{"class":231},"set",[218,587,236],{"class":246},[218,589,533],{"class":235},[218,591,422],{"class":246},[218,593,594],{"class":220,"line":338},[218,595,407],{"class":239},[218,597,598],{"class":220,"line":356},[218,599,413],{"class":239},[218,601,602],{"class":220,"line":361},[218,603,275],{"emptyLinePlaceholder":274},[218,605,606,609,611,613],{"class":220,"line":371},[218,607,608],{"class":224},"  return",[218,610,495],{"class":239},[218,612,521],{"class":235},[218,614,615],{"class":239}," }\n",[218,617,618],{"class":220,"line":385},[218,619,620],{"class":239},"}\n",[203,622,624],{"id":623},"tracking-events","Tracking Events",[208,626,631],{"className":627,"code":628,"filename":629,"language":630,"meta":214,"style":214},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nconst { personalizeSdk } = useContentstack()\n\nconst trackPurchase = async (productId: string, amount: number) => {\n  await personalizeSdk?.triggerEvent('purchase')\n}\n\nconst trackImpression = async (experienceShortUid: string) => {\n  await personalizeSdk?.triggerImpression(experienceShortUid)\n}\n\u003C\u002Fscript>\n","components\u002FProductCard.vue","vue",[112,632,633,646,664,668,705,729,733,737,763,780,784],{"__ignoreMap":214},[218,634,635,637,640,643],{"class":220,"line":221},[218,636,542],{"class":239},[218,638,639],{"class":246},"script",[218,641,642],{"class":473}," setup",[218,644,645],{"class":239},">\n",[218,647,648,651,653,656,658,660,662],{"class":220,"line":243},[218,649,650],{"class":473},"const",[218,652,495],{"class":239},[218,654,655],{"class":235}," personalizeSdk ",[218,657,419],{"class":239},[218,659,504],{"class":239},[218,661,507],{"class":231},[218,663,510],{"class":235},[218,665,666],{"class":220,"line":271},[218,667,275],{"emptyLinePlaceholder":274},[218,669,670,672,675,677,679,681,684,686,689,691,694,696,699,701,703],{"class":220,"line":278},[218,671,650],{"class":473},[218,673,674],{"class":235}," trackPurchase ",[218,676,442],{"class":239},[218,678,526],{"class":473},[218,680,529],{"class":239},[218,682,683],{"class":532},"productId",[218,685,250],{"class":239},[218,687,688],{"class":538}," string",[218,690,548],{"class":239},[218,692,693],{"class":532}," amount",[218,695,250],{"class":239},[218,697,698],{"class":538}," number",[218,700,191],{"class":239},[218,702,485],{"class":473},[218,704,290],{"class":239},[218,706,707,710,712,715,718,720,722,725,727],{"class":220,"line":293},[218,708,709],{"class":224},"  await",[218,711,498],{"class":235},[218,713,714],{"class":239},"?.",[218,716,717],{"class":231},"triggerEvent",[218,719,236],{"class":246},[218,721,256],{"class":239},[218,723,724],{"class":259},"purchase",[218,726,256],{"class":239},[218,728,422],{"class":246},[218,730,731],{"class":220,"line":317},[218,732,620],{"class":239},[218,734,735],{"class":220,"line":338},[218,736,275],{"emptyLinePlaceholder":274},[218,738,739,741,744,746,748,750,753,755,757,759,761],{"class":220,"line":356},[218,740,650],{"class":473},[218,742,743],{"class":235}," trackImpression ",[218,745,442],{"class":239},[218,747,526],{"class":473},[218,749,529],{"class":239},[218,751,752],{"class":532},"experienceShortUid",[218,754,250],{"class":239},[218,756,688],{"class":538},[218,758,191],{"class":239},[218,760,485],{"class":473},[218,762,290],{"class":239},[218,764,765,767,769,771,774,776,778],{"class":220,"line":361},[218,766,709],{"class":224},[218,768,498],{"class":235},[218,770,714],{"class":239},[218,772,773],{"class":231},"triggerImpression",[218,775,236],{"class":246},[218,777,752],{"class":235},[218,779,422],{"class":246},[218,781,782],{"class":220,"line":371},[218,783,620],{"class":239},[218,785,786,789,791],{"class":220,"line":385},[218,787,788],{"class":239},"\u003C\u002F",[218,790,639],{"class":246},[218,792,645],{"class":239},[98,794,796],{"id":795},"core-sdk-methods","Core SDK Methods",[80,798,800,803,804,806,807,809],{"icon":799},"i-lucide-info",[85,801,802],{},"Client-side only",": The ",[112,805,568],{}," instance is only available on the client. On the server, personalization is handled automatically by the built-in middleware. Always check ",[112,808,568],{}," is not null before calling methods.",[203,811,813],{"id":812},"available-methods","Available Methods",[815,816,817,830],"table",{},[818,819,820],"thead",{},[821,822,823,827],"tr",{},[824,825,826],"th",{},"Method",[824,828,829],{},"Description",[831,832,833,844,854,864,874,884,894,904,914,924,934],"tbody",{},[821,834,835,841],{},[836,837,838],"td",{},[112,839,840],{},"set(attributes)",[836,842,843],{},"Set user attributes for targeting",[821,845,846,851],{},[836,847,848],{},[112,849,850],{},"triggerEvent(eventKey)",[836,852,853],{},"Track a conversion event",[821,855,856,861],{},[836,857,858],{},[112,859,860],{},"triggerImpression(experienceShortUid)",[836,862,863],{},"Track an experience impression",[821,865,866,871],{},[836,867,868],{},[112,869,870],{},"triggerImpressions(options)",[836,872,873],{},"Track multiple impressions at once",[821,875,876,881],{},[836,877,878],{},[112,879,880],{},"setUserId(userId, options?)",[836,882,883],{},"Set a custom user ID",[821,885,886,891],{},[836,887,888],{},[112,889,890],{},"getUserId()",[836,892,893],{},"Get the current user ID",[821,895,896,901],{},[836,897,898],{},[112,899,900],{},"getVariants()",[836,902,903],{},"Get all active variants",[821,905,906,911],{},[836,907,908],{},[112,909,910],{},"getVariantAliases()",[836,912,913],{},"Get variant aliases for CMS queries",[821,915,916,921],{},[836,917,918],{},[112,919,920],{},"getVariantParam()",[836,922,923],{},"Get the variant query parameter string",[821,925,926,931],{},[836,927,928],{},[112,929,930],{},"getActiveVariant(experienceShortUid)",[836,932,933],{},"Get active variant for a specific experience",[821,935,936,941],{},[836,937,938],{},[112,939,940],{},"addStateToResponse(response)",[836,942,943],{},"Add personalization state to a Response object",[203,945,127],{"id":946},"user-attributes",[76,948,949],{},"Set user attributes for personalization targeting:",[208,951,955],{"className":952,"code":953,"language":954,"meta":214,"style":214},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const { personalizeSdk } = useContentstack()\n\n\u002F\u002F Set demographic attributes\nawait personalizeSdk.set({\n  age: 30,\n  location: 'San Francisco',\n  membership: 'premium'\n})\n\n\u002F\u002F Set behavioral attributes\nawait personalizeSdk.set({\n  page_views: 15,\n  interests: ['technology', 'design'],\n  last_visit: new Date().toISOString()\n})\n","typescript",[112,956,957,973,977,983,998,1011,1027,1042,1048,1052,1057,1071,1083,1112,1135],{"__ignoreMap":214},[218,958,959,961,963,965,967,969,971],{"class":220,"line":221},[218,960,650],{"class":473},[218,962,495],{"class":239},[218,964,655],{"class":235},[218,966,419],{"class":239},[218,968,504],{"class":239},[218,970,507],{"class":231},[218,972,510],{"class":235},[218,974,975],{"class":220,"line":243},[218,976,275],{"emptyLinePlaceholder":274},[218,978,979],{"class":220,"line":271},[218,980,982],{"class":981},"sHwdD","\u002F\u002F Set demographic attributes\n",[218,984,985,988,990,992,994,996],{"class":220,"line":278},[218,986,987],{"class":224},"await",[218,989,498],{"class":235},[218,991,304],{"class":239},[218,993,585],{"class":231},[218,995,236],{"class":235},[218,997,240],{"class":239},[218,999,1000,1003,1005,1009],{"class":220,"line":293},[218,1001,1002],{"class":246},"  age",[218,1004,250],{"class":239},[218,1006,1008],{"class":1007},"sbssI"," 30",[218,1010,268],{"class":239},[218,1012,1013,1016,1018,1020,1023,1025],{"class":220,"line":317},[218,1014,1015],{"class":246},"  location",[218,1017,250],{"class":239},[218,1019,346],{"class":239},[218,1021,1022],{"class":259},"San Francisco",[218,1024,256],{"class":239},[218,1026,268],{"class":239},[218,1028,1029,1032,1034,1036,1039],{"class":220,"line":338},[218,1030,1031],{"class":246},"  membership",[218,1033,250],{"class":239},[218,1035,346],{"class":239},[218,1037,1038],{"class":259},"premium",[218,1040,1041],{"class":239},"'\n",[218,1043,1044,1046],{"class":220,"line":356},[218,1045,419],{"class":239},[218,1047,422],{"class":235},[218,1049,1050],{"class":220,"line":361},[218,1051,275],{"emptyLinePlaceholder":274},[218,1053,1054],{"class":220,"line":371},[218,1055,1056],{"class":981},"\u002F\u002F Set behavioral attributes\n",[218,1058,1059,1061,1063,1065,1067,1069],{"class":220,"line":385},[218,1060,987],{"class":224},[218,1062,498],{"class":235},[218,1064,304],{"class":239},[218,1066,585],{"class":231},[218,1068,236],{"class":235},[218,1070,240],{"class":239},[218,1072,1073,1076,1078,1081],{"class":220,"line":404},[218,1074,1075],{"class":246},"  page_views",[218,1077,250],{"class":239},[218,1079,1080],{"class":1007}," 15",[218,1082,268],{"class":239},[218,1084,1085,1088,1090,1092,1094,1097,1099,1101,1103,1106,1108,1110],{"class":220,"line":410},[218,1086,1087],{"class":246},"  interests",[218,1089,250],{"class":239},[218,1091,253],{"class":235},[218,1093,256],{"class":239},[218,1095,1096],{"class":259},"technology",[218,1098,256],{"class":239},[218,1100,548],{"class":239},[218,1102,346],{"class":239},[218,1104,1105],{"class":259},"design",[218,1107,256],{"class":239},[218,1109,265],{"class":235},[218,1111,268],{"class":239},[218,1113,1114,1117,1119,1122,1125,1128,1130,1133],{"class":220,"line":416},[218,1115,1116],{"class":246},"  last_visit",[218,1118,250],{"class":239},[218,1120,1121],{"class":239}," new",[218,1123,1124],{"class":231}," Date",[218,1126,1127],{"class":235},"()",[218,1129,304],{"class":239},[218,1131,1132],{"class":231},"toISOString",[218,1134,510],{"class":235},[218,1136,1138,1140],{"class":220,"line":1137},15,[218,1139,419],{"class":239},[218,1141,422],{"class":235},[203,1143,133],{"id":1144},"event-tracking",[76,1146,1147],{},"Track user interactions and conversions:",[208,1149,1151],{"className":952,"code":1150,"language":954,"meta":214,"style":214},"const { personalizeSdk } = useContentstack()\n\n\u002F\u002F Track conversion events\nawait personalizeSdk.triggerEvent('signup')\nawait personalizeSdk.triggerEvent('purchase')\nawait personalizeSdk.triggerEvent('newsletter_subscribe')\n\n\u002F\u002F Track experience impressions\nconst experienceShortUid = 'a' \u002F\u002F From Contentstack Personalize\nawait personalizeSdk.triggerImpression(experienceShortUid)\n\n\u002F\u002F Track multiple impressions at once\nawait personalizeSdk.triggerImpressions({\n  experienceShortUids: ['a', 'b']\n})\n",[112,1152,1153,1169,1173,1178,1199,1219,1240,1244,1249,1267,1280,1284,1289,1304,1331],{"__ignoreMap":214},[218,1154,1155,1157,1159,1161,1163,1165,1167],{"class":220,"line":221},[218,1156,650],{"class":473},[218,1158,495],{"class":239},[218,1160,655],{"class":235},[218,1162,419],{"class":239},[218,1164,504],{"class":239},[218,1166,507],{"class":231},[218,1168,510],{"class":235},[218,1170,1171],{"class":220,"line":243},[218,1172,275],{"emptyLinePlaceholder":274},[218,1174,1175],{"class":220,"line":271},[218,1176,1177],{"class":981},"\u002F\u002F Track conversion events\n",[218,1179,1180,1182,1184,1186,1188,1190,1192,1195,1197],{"class":220,"line":278},[218,1181,987],{"class":224},[218,1183,498],{"class":235},[218,1185,304],{"class":239},[218,1187,717],{"class":231},[218,1189,236],{"class":235},[218,1191,256],{"class":239},[218,1193,1194],{"class":259},"signup",[218,1196,256],{"class":239},[218,1198,422],{"class":235},[218,1200,1201,1203,1205,1207,1209,1211,1213,1215,1217],{"class":220,"line":293},[218,1202,987],{"class":224},[218,1204,498],{"class":235},[218,1206,304],{"class":239},[218,1208,717],{"class":231},[218,1210,236],{"class":235},[218,1212,256],{"class":239},[218,1214,724],{"class":259},[218,1216,256],{"class":239},[218,1218,422],{"class":235},[218,1220,1221,1223,1225,1227,1229,1231,1233,1236,1238],{"class":220,"line":317},[218,1222,987],{"class":224},[218,1224,498],{"class":235},[218,1226,304],{"class":239},[218,1228,717],{"class":231},[218,1230,236],{"class":235},[218,1232,256],{"class":239},[218,1234,1235],{"class":259},"newsletter_subscribe",[218,1237,256],{"class":239},[218,1239,422],{"class":235},[218,1241,1242],{"class":220,"line":338},[218,1243,275],{"emptyLinePlaceholder":274},[218,1245,1246],{"class":220,"line":356},[218,1247,1248],{"class":981},"\u002F\u002F Track experience impressions\n",[218,1250,1251,1253,1256,1258,1260,1262,1264],{"class":220,"line":361},[218,1252,650],{"class":473},[218,1254,1255],{"class":235}," experienceShortUid ",[218,1257,442],{"class":239},[218,1259,346],{"class":239},[218,1261,90],{"class":259},[218,1263,256],{"class":239},[218,1265,1266],{"class":981}," \u002F\u002F From Contentstack Personalize\n",[218,1268,1269,1271,1273,1275,1277],{"class":220,"line":371},[218,1270,987],{"class":224},[218,1272,498],{"class":235},[218,1274,304],{"class":239},[218,1276,773],{"class":231},[218,1278,1279],{"class":235},"(experienceShortUid)\n",[218,1281,1282],{"class":220,"line":385},[218,1283,275],{"emptyLinePlaceholder":274},[218,1285,1286],{"class":220,"line":404},[218,1287,1288],{"class":981},"\u002F\u002F Track multiple impressions at once\n",[218,1290,1291,1293,1295,1297,1300,1302],{"class":220,"line":410},[218,1292,987],{"class":224},[218,1294,498],{"class":235},[218,1296,304],{"class":239},[218,1298,1299],{"class":231},"triggerImpressions",[218,1301,236],{"class":235},[218,1303,240],{"class":239},[218,1305,1306,1309,1311,1313,1315,1317,1319,1321,1323,1326,1328],{"class":220,"line":416},[218,1307,1308],{"class":246},"  experienceShortUids",[218,1310,250],{"class":239},[218,1312,253],{"class":235},[218,1314,256],{"class":239},[218,1316,90],{"class":259},[218,1318,256],{"class":239},[218,1320,548],{"class":239},[218,1322,346],{"class":239},[218,1324,1325],{"class":259},"b",[218,1327,256],{"class":239},[218,1329,1330],{"class":235},"]\n",[218,1332,1333,1335],{"class":220,"line":1137},[218,1334,419],{"class":239},[218,1336,422],{"class":235},[203,1338,1340],{"id":1339},"variant-management","Variant Management",[76,1342,1343],{},"Access active variants for personalized content:",[208,1345,1347],{"className":952,"code":1346,"language":954,"meta":214,"style":214},"const { personalizeSdk, variantAlias } = useContentstack()\n\n\u002F\u002F Get all active variants\nconst variants = personalizeSdk.getVariants() \u002F\u002F {a: '0', b: '1'}\n\n\u002F\u002F Get variant aliases for CMS queries\nconst aliases = personalizeSdk.getVariantAliases()\n\u002F\u002F ['cs_personalize_a_0', 'cs_personalize_b_1']\n\n\u002F\u002F Get the variant query parameter string\nconst variantParam = personalizeSdk.getVariantParam()\n\n\u002F\u002F Get active variant for specific experience\nconst activeVariant = personalizeSdk.getActiveVariant('a') \u002F\u002F '0'\n\n\u002F\u002F Access the reactive variant alias used by composables\nconsole.log('Current alias:', variantAlias?.value)\n",[112,1348,1349,1370,1374,1379,1401,1405,1410,1428,1433,1437,1442,1460,1464,1469,1498,1502,1508],{"__ignoreMap":214},[218,1350,1351,1353,1355,1357,1359,1362,1364,1366,1368],{"class":220,"line":221},[218,1352,650],{"class":473},[218,1354,495],{"class":239},[218,1356,498],{"class":235},[218,1358,548],{"class":239},[218,1360,1361],{"class":235}," variantAlias ",[218,1363,419],{"class":239},[218,1365,504],{"class":239},[218,1367,507],{"class":231},[218,1369,510],{"class":235},[218,1371,1372],{"class":220,"line":243},[218,1373,275],{"emptyLinePlaceholder":274},[218,1375,1376],{"class":220,"line":271},[218,1377,1378],{"class":981},"\u002F\u002F Get all active variants\n",[218,1380,1381,1383,1386,1388,1390,1392,1395,1398],{"class":220,"line":278},[218,1382,650],{"class":473},[218,1384,1385],{"class":235}," variants ",[218,1387,442],{"class":239},[218,1389,498],{"class":235},[218,1391,304],{"class":239},[218,1393,1394],{"class":231},"getVariants",[218,1396,1397],{"class":235},"() ",[218,1399,1400],{"class":981},"\u002F\u002F {a: '0', b: '1'}\n",[218,1402,1403],{"class":220,"line":293},[218,1404,275],{"emptyLinePlaceholder":274},[218,1406,1407],{"class":220,"line":317},[218,1408,1409],{"class":981},"\u002F\u002F Get variant aliases for CMS queries\n",[218,1411,1412,1414,1417,1419,1421,1423,1426],{"class":220,"line":338},[218,1413,650],{"class":473},[218,1415,1416],{"class":235}," aliases ",[218,1418,442],{"class":239},[218,1420,498],{"class":235},[218,1422,304],{"class":239},[218,1424,1425],{"class":231},"getVariantAliases",[218,1427,510],{"class":235},[218,1429,1430],{"class":220,"line":356},[218,1431,1432],{"class":981},"\u002F\u002F ['cs_personalize_a_0', 'cs_personalize_b_1']\n",[218,1434,1435],{"class":220,"line":361},[218,1436,275],{"emptyLinePlaceholder":274},[218,1438,1439],{"class":220,"line":371},[218,1440,1441],{"class":981},"\u002F\u002F Get the variant query parameter string\n",[218,1443,1444,1446,1449,1451,1453,1455,1458],{"class":220,"line":385},[218,1445,650],{"class":473},[218,1447,1448],{"class":235}," variantParam ",[218,1450,442],{"class":239},[218,1452,498],{"class":235},[218,1454,304],{"class":239},[218,1456,1457],{"class":231},"getVariantParam",[218,1459,510],{"class":235},[218,1461,1462],{"class":220,"line":404},[218,1463,275],{"emptyLinePlaceholder":274},[218,1465,1466],{"class":220,"line":410},[218,1467,1468],{"class":981},"\u002F\u002F Get active variant for specific experience\n",[218,1470,1471,1473,1476,1478,1480,1482,1485,1487,1489,1491,1493,1495],{"class":220,"line":416},[218,1472,650],{"class":473},[218,1474,1475],{"class":235}," activeVariant ",[218,1477,442],{"class":239},[218,1479,498],{"class":235},[218,1481,304],{"class":239},[218,1483,1484],{"class":231},"getActiveVariant",[218,1486,236],{"class":235},[218,1488,256],{"class":239},[218,1490,90],{"class":259},[218,1492,256],{"class":239},[218,1494,571],{"class":235},[218,1496,1497],{"class":981},"\u002F\u002F '0'\n",[218,1499,1500],{"class":220,"line":1137},[218,1501,275],{"emptyLinePlaceholder":274},[218,1503,1505],{"class":220,"line":1504},16,[218,1506,1507],{"class":981},"\u002F\u002F Access the reactive variant alias used by composables\n",[218,1509,1511,1514,1516,1519,1521,1523,1526,1528,1530,1533,1535],{"class":220,"line":1510},17,[218,1512,1513],{"class":235},"console",[218,1515,304],{"class":239},[218,1517,1518],{"class":231},"log",[218,1520,236],{"class":235},[218,1522,256],{"class":239},[218,1524,1525],{"class":259},"Current alias:",[218,1527,256],{"class":239},[218,1529,548],{"class":239},[218,1531,1532],{"class":235}," variantAlias",[218,1534,714],{"class":239},[218,1536,1537],{"class":235},"value)\n",[98,1539,1541],{"id":1540},"personalized-content-fetching","Personalized Content Fetching",[203,1543,1545],{"id":1544},"automatic-variant-application","Automatic Variant Application",[76,1547,1548,1549,1552,1553,1556,1557,1560],{},"All composables automatically apply active variants. The module adds ",[112,1550,1551],{},"include_applied_variants"," and ",[112,1554,1555],{},"include_dimension"," parameters and calls ",[112,1558,1559],{},".variants()"," on queries when a variant alias is present:",[208,1562,1565],{"className":627,"code":1563,"filename":1564,"language":630,"meta":214,"style":214},"\u003Cscript setup>\n\u002F\u002F Content will be personalized based on user attributes\nconst { data: content } = await useGetEntryByUrl({\n  contentTypeUid: 'landing_page',\n  url: '\u002Fhome'\n})\n\n\u002F\u002F Variant aliases are automatically applied\nconst { variantAlias } = useContentstack()\nconsole.log('Active variants:', variantAlias?.value)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"content\">\n    \u003C!-- Renders personalized variant -->\n    \u003CHero v-bind=\"content.hero\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","pages\u002Fpersonalized-page.vue",[112,1566,1567,1577,1582,1610,1626,1640,1646,1650,1655,1671,1696,1704,1708,1717,1740,1745,1768,1777],{"__ignoreMap":214},[218,1568,1569,1571,1573,1575],{"class":220,"line":221},[218,1570,542],{"class":239},[218,1572,639],{"class":246},[218,1574,642],{"class":473},[218,1576,645],{"class":239},[218,1578,1579],{"class":220,"line":243},[218,1580,1581],{"class":981},"\u002F\u002F Content will be personalized based on user attributes\n",[218,1583,1584,1586,1588,1591,1593,1596,1598,1600,1603,1606,1608],{"class":220,"line":271},[218,1585,650],{"class":473},[218,1587,495],{"class":239},[218,1589,1590],{"class":246}," data",[218,1592,250],{"class":239},[218,1594,1595],{"class":235}," content ",[218,1597,419],{"class":239},[218,1599,504],{"class":239},[218,1601,1602],{"class":224}," await",[218,1604,1605],{"class":231}," useGetEntryByUrl",[218,1607,236],{"class":235},[218,1609,240],{"class":239},[218,1611,1612,1615,1617,1619,1622,1624],{"class":220,"line":278},[218,1613,1614],{"class":246},"  contentTypeUid",[218,1616,250],{"class":239},[218,1618,346],{"class":239},[218,1620,1621],{"class":259},"landing_page",[218,1623,256],{"class":239},[218,1625,268],{"class":239},[218,1627,1628,1631,1633,1635,1638],{"class":220,"line":293},[218,1629,1630],{"class":246},"  url",[218,1632,250],{"class":239},[218,1634,346],{"class":239},[218,1636,1637],{"class":259},"\u002Fhome",[218,1639,1041],{"class":239},[218,1641,1642,1644],{"class":220,"line":317},[218,1643,419],{"class":239},[218,1645,422],{"class":235},[218,1647,1648],{"class":220,"line":338},[218,1649,275],{"emptyLinePlaceholder":274},[218,1651,1652],{"class":220,"line":356},[218,1653,1654],{"class":981},"\u002F\u002F Variant aliases are automatically applied\n",[218,1656,1657,1659,1661,1663,1665,1667,1669],{"class":220,"line":361},[218,1658,650],{"class":473},[218,1660,495],{"class":239},[218,1662,1361],{"class":235},[218,1664,419],{"class":239},[218,1666,504],{"class":239},[218,1668,507],{"class":231},[218,1670,510],{"class":235},[218,1672,1673,1675,1677,1679,1681,1683,1686,1688,1690,1692,1694],{"class":220,"line":371},[218,1674,1513],{"class":235},[218,1676,304],{"class":239},[218,1678,1518],{"class":231},[218,1680,236],{"class":235},[218,1682,256],{"class":239},[218,1684,1685],{"class":259},"Active variants:",[218,1687,256],{"class":239},[218,1689,548],{"class":239},[218,1691,1532],{"class":235},[218,1693,714],{"class":239},[218,1695,1537],{"class":235},[218,1697,1698,1700,1702],{"class":220,"line":385},[218,1699,788],{"class":239},[218,1701,639],{"class":246},[218,1703,645],{"class":239},[218,1705,1706],{"class":220,"line":404},[218,1707,275],{"emptyLinePlaceholder":274},[218,1709,1710,1712,1715],{"class":220,"line":410},[218,1711,542],{"class":239},[218,1713,1714],{"class":246},"template",[218,1716,645],{"class":239},[218,1718,1719,1722,1725,1728,1730,1733,1736,1738],{"class":220,"line":416},[218,1720,1721],{"class":239},"  \u003C",[218,1723,1724],{"class":246},"div",[218,1726,1727],{"class":473}," v-if",[218,1729,442],{"class":239},[218,1731,1732],{"class":239},"\"",[218,1734,1735],{"class":259},"content",[218,1737,1732],{"class":239},[218,1739,645],{"class":239},[218,1741,1742],{"class":220,"line":1137},[218,1743,1744],{"class":981},"    \u003C!-- Renders personalized variant -->\n",[218,1746,1747,1750,1753,1756,1758,1760,1763,1765],{"class":220,"line":1504},[218,1748,1749],{"class":239},"    \u003C",[218,1751,1752],{"class":246},"Hero",[218,1754,1755],{"class":473}," v-bind",[218,1757,442],{"class":239},[218,1759,1732],{"class":239},[218,1761,1762],{"class":259},"content.hero",[218,1764,1732],{"class":239},[218,1766,1767],{"class":239}," \u002F>\n",[218,1769,1770,1773,1775],{"class":220,"line":1510},[218,1771,1772],{"class":239},"  \u003C\u002F",[218,1774,1724],{"class":246},[218,1776,645],{"class":239},[218,1778,1780,1782,1784],{"class":220,"line":1779},18,[218,1781,788],{"class":239},[218,1783,1714],{"class":246},[218,1785,645],{"class":239},[203,1787,1789],{"id":1788},"user-identity","User Identity",[76,1791,1792],{},"Manage user identity for cross-session personalization:",[208,1794,1796],{"className":952,"code":1795,"language":954,"meta":214,"style":214},"const { personalizeSdk } = useContentstack()\n\n\u002F\u002F Set a custom user ID\nawait personalizeSdk.setUserId('user-123', {\n  preserveUserAttributes: true \u002F\u002F Keep existing attributes\n})\n\n\u002F\u002F Get the current user ID\nconst userId = personalizeSdk.getUserId()\n",[112,1797,1798,1814,1818,1823,1847,1859,1865,1869,1874],{"__ignoreMap":214},[218,1799,1800,1802,1804,1806,1808,1810,1812],{"class":220,"line":221},[218,1801,650],{"class":473},[218,1803,495],{"class":239},[218,1805,655],{"class":235},[218,1807,419],{"class":239},[218,1809,504],{"class":239},[218,1811,507],{"class":231},[218,1813,510],{"class":235},[218,1815,1816],{"class":220,"line":243},[218,1817,275],{"emptyLinePlaceholder":274},[218,1819,1820],{"class":220,"line":271},[218,1821,1822],{"class":981},"\u002F\u002F Set a custom user ID\n",[218,1824,1825,1827,1829,1831,1834,1836,1838,1841,1843,1845],{"class":220,"line":278},[218,1826,987],{"class":224},[218,1828,498],{"class":235},[218,1830,304],{"class":239},[218,1832,1833],{"class":231},"setUserId",[218,1835,236],{"class":235},[218,1837,256],{"class":239},[218,1839,1840],{"class":259},"user-123",[218,1842,256],{"class":239},[218,1844,548],{"class":239},[218,1846,290],{"class":239},[218,1848,1849,1852,1854,1856],{"class":220,"line":293},[218,1850,1851],{"class":246},"  preserveUserAttributes",[218,1853,250],{"class":239},[218,1855,380],{"class":379},[218,1857,1858],{"class":981}," \u002F\u002F Keep existing attributes\n",[218,1860,1861,1863],{"class":220,"line":317},[218,1862,419],{"class":239},[218,1864,422],{"class":235},[218,1866,1867],{"class":220,"line":338},[218,1868,275],{"emptyLinePlaceholder":274},[218,1870,1871],{"class":220,"line":356},[218,1872,1873],{"class":981},"\u002F\u002F Get the current user ID\n",[218,1875,1876,1878,1881,1883,1885,1887,1890],{"class":220,"line":361},[218,1877,650],{"class":473},[218,1879,1880],{"class":235}," userId ",[218,1882,442],{"class":239},[218,1884,498],{"class":235},[218,1886,304],{"class":239},[218,1888,1889],{"class":231},"getUserId",[218,1891,510],{"class":235},[203,1893,1895],{"id":1894},"manual-variant-handling","Manual Variant Handling",[76,1897,1898],{},"For advanced use cases:",[208,1900,1902],{"className":952,"code":1901,"language":954,"meta":214,"style":214},"\u002F\u002F Get current variants\nconst { personalizeSdk } = useContentstack()\nconst variantAliases = personalizeSdk.getVariantAliases()\n\n\u002F\u002F Use in custom queries\nconst { data } = await $fetch('\u002Fapi\u002Fcontent', {\n  query: { variants: variantAliases.join(',') }\n})\n",[112,1903,1904,1909,1925,1942,1946,1951,1982,2016],{"__ignoreMap":214},[218,1905,1906],{"class":220,"line":221},[218,1907,1908],{"class":981},"\u002F\u002F Get current variants\n",[218,1910,1911,1913,1915,1917,1919,1921,1923],{"class":220,"line":243},[218,1912,650],{"class":473},[218,1914,495],{"class":239},[218,1916,655],{"class":235},[218,1918,419],{"class":239},[218,1920,504],{"class":239},[218,1922,507],{"class":231},[218,1924,510],{"class":235},[218,1926,1927,1929,1932,1934,1936,1938,1940],{"class":220,"line":271},[218,1928,650],{"class":473},[218,1930,1931],{"class":235}," variantAliases ",[218,1933,442],{"class":239},[218,1935,498],{"class":235},[218,1937,304],{"class":239},[218,1939,1425],{"class":231},[218,1941,510],{"class":235},[218,1943,1944],{"class":220,"line":278},[218,1945,275],{"emptyLinePlaceholder":274},[218,1947,1948],{"class":220,"line":293},[218,1949,1950],{"class":981},"\u002F\u002F Use in custom queries\n",[218,1952,1953,1955,1957,1960,1962,1964,1966,1969,1971,1973,1976,1978,1980],{"class":220,"line":317},[218,1954,650],{"class":473},[218,1956,495],{"class":239},[218,1958,1959],{"class":235}," data ",[218,1961,419],{"class":239},[218,1963,504],{"class":239},[218,1965,1602],{"class":224},[218,1967,1968],{"class":231}," $fetch",[218,1970,236],{"class":235},[218,1972,256],{"class":239},[218,1974,1975],{"class":259},"\u002Fapi\u002Fcontent",[218,1977,256],{"class":239},[218,1979,548],{"class":239},[218,1981,290],{"class":239},[218,1983,1984,1987,1989,1991,1994,1996,1999,2001,2004,2006,2008,2010,2012,2014],{"class":220,"line":338},[218,1985,1986],{"class":246},"  query",[218,1988,250],{"class":239},[218,1990,495],{"class":239},[218,1992,1993],{"class":246}," variants",[218,1995,250],{"class":239},[218,1997,1998],{"class":235}," variantAliases",[218,2000,304],{"class":239},[218,2002,2003],{"class":231},"join",[218,2005,236],{"class":235},[218,2007,256],{"class":239},[218,2009,548],{"class":259},[218,2011,256],{"class":239},[218,2013,571],{"class":235},[218,2015,620],{"class":239},[218,2017,2018,2020],{"class":220,"line":356},[218,2019,419],{"class":239},[218,2021,422],{"class":235},[98,2023,2025],{"id":2024},"real-world-examples","Real-world Examples",[203,2027,2029],{"id":2028},"user-onboarding-flow","User Onboarding Flow",[208,2031,2034],{"className":627,"code":2032,"filename":2033,"language":630,"meta":214,"style":214},"\u003Cscript setup>\nconst { personalizeSdk } = useContentstack()\n\nconst completeOnboardingStep = async (step: string) => {\n  \u002F\u002F Set user attributes\n  await personalizeSdk?.set({\n    onboarding_step: step,\n    onboarding_completed: step === 'complete'\n  })\n\n  \u002F\u002F Track event\n  await personalizeSdk?.triggerEvent('onboarding_step_completed')\n}\n\n\u002F\u002F Track page view\nonMounted(async () => {\n  await personalizeSdk?.set({\n    last_page: 'onboarding',\n    page_views: (currentPageViews || 0) + 1\n  })\n})\n\u003C\u002Fscript>\n","components\u002FOnboardingFlow.vue",[112,2035,2036,2046,2062,2066,2092,2097,2111,2123,2142,2149,2153,2158,2179,2183,2187,2192,2208,2222,2238,2265,2272,2279],{"__ignoreMap":214},[218,2037,2038,2040,2042,2044],{"class":220,"line":221},[218,2039,542],{"class":239},[218,2041,639],{"class":246},[218,2043,642],{"class":473},[218,2045,645],{"class":239},[218,2047,2048,2050,2052,2054,2056,2058,2060],{"class":220,"line":243},[218,2049,650],{"class":473},[218,2051,495],{"class":239},[218,2053,655],{"class":235},[218,2055,419],{"class":239},[218,2057,504],{"class":239},[218,2059,507],{"class":231},[218,2061,510],{"class":235},[218,2063,2064],{"class":220,"line":271},[218,2065,275],{"emptyLinePlaceholder":274},[218,2067,2068,2070,2073,2075,2077,2079,2082,2084,2086,2088,2090],{"class":220,"line":278},[218,2069,650],{"class":473},[218,2071,2072],{"class":235}," completeOnboardingStep ",[218,2074,442],{"class":239},[218,2076,526],{"class":473},[218,2078,529],{"class":239},[218,2080,2081],{"class":532},"step",[218,2083,250],{"class":239},[218,2085,688],{"class":538},[218,2087,191],{"class":239},[218,2089,485],{"class":473},[218,2091,290],{"class":239},[218,2093,2094],{"class":220,"line":293},[218,2095,2096],{"class":981},"  \u002F\u002F Set user attributes\n",[218,2098,2099,2101,2103,2105,2107,2109],{"class":220,"line":317},[218,2100,709],{"class":224},[218,2102,498],{"class":235},[218,2104,714],{"class":239},[218,2106,585],{"class":231},[218,2108,236],{"class":246},[218,2110,240],{"class":239},[218,2112,2113,2116,2118,2121],{"class":220,"line":338},[218,2114,2115],{"class":246},"    onboarding_step",[218,2117,250],{"class":239},[218,2119,2120],{"class":235}," step",[218,2122,268],{"class":239},[218,2124,2125,2128,2130,2132,2135,2137,2140],{"class":220,"line":356},[218,2126,2127],{"class":246},"    onboarding_completed",[218,2129,250],{"class":239},[218,2131,2120],{"class":235},[218,2133,2134],{"class":239}," ===",[218,2136,346],{"class":239},[218,2138,2139],{"class":259},"complete",[218,2141,1041],{"class":239},[218,2143,2144,2147],{"class":220,"line":361},[218,2145,2146],{"class":239},"  }",[218,2148,422],{"class":246},[218,2150,2151],{"class":220,"line":371},[218,2152,275],{"emptyLinePlaceholder":274},[218,2154,2155],{"class":220,"line":385},[218,2156,2157],{"class":981},"  \u002F\u002F Track event\n",[218,2159,2160,2162,2164,2166,2168,2170,2172,2175,2177],{"class":220,"line":404},[218,2161,709],{"class":224},[218,2163,498],{"class":235},[218,2165,714],{"class":239},[218,2167,717],{"class":231},[218,2169,236],{"class":246},[218,2171,256],{"class":239},[218,2173,2174],{"class":259},"onboarding_step_completed",[218,2176,256],{"class":239},[218,2178,422],{"class":246},[218,2180,2181],{"class":220,"line":410},[218,2182,620],{"class":239},[218,2184,2185],{"class":220,"line":416},[218,2186,275],{"emptyLinePlaceholder":274},[218,2188,2189],{"class":220,"line":1137},[218,2190,2191],{"class":981},"\u002F\u002F Track page view\n",[218,2193,2194,2197,2199,2202,2204,2206],{"class":220,"line":1504},[218,2195,2196],{"class":231},"onMounted",[218,2198,236],{"class":235},[218,2200,2201],{"class":473},"async",[218,2203,482],{"class":239},[218,2205,485],{"class":473},[218,2207,290],{"class":239},[218,2209,2210,2212,2214,2216,2218,2220],{"class":220,"line":1510},[218,2211,709],{"class":224},[218,2213,498],{"class":235},[218,2215,714],{"class":239},[218,2217,585],{"class":231},[218,2219,236],{"class":246},[218,2221,240],{"class":239},[218,2223,2224,2227,2229,2231,2234,2236],{"class":220,"line":1779},[218,2225,2226],{"class":246},"    last_page",[218,2228,250],{"class":239},[218,2230,346],{"class":239},[218,2232,2233],{"class":259},"onboarding",[218,2235,256],{"class":239},[218,2237,268],{"class":239},[218,2239,2241,2244,2246,2248,2251,2254,2257,2259,2262],{"class":220,"line":2240},19,[218,2242,2243],{"class":246},"    page_views",[218,2245,250],{"class":239},[218,2247,529],{"class":246},[218,2249,2250],{"class":235},"currentPageViews",[218,2252,2253],{"class":239}," ||",[218,2255,2256],{"class":1007}," 0",[218,2258,571],{"class":246},[218,2260,2261],{"class":239},"+",[218,2263,2264],{"class":1007}," 1\n",[218,2266,2268,2270],{"class":220,"line":2267},20,[218,2269,2146],{"class":239},[218,2271,422],{"class":246},[218,2273,2275,2277],{"class":220,"line":2274},21,[218,2276,419],{"class":239},[218,2278,422],{"class":235},[218,2280,2282,2284,2286],{"class":220,"line":2281},22,[218,2283,788],{"class":239},[218,2285,639],{"class":246},[218,2287,645],{"class":239},[203,2289,2291],{"id":2290},"product-recommendations","Product Recommendations",[208,2293,2296],{"className":627,"code":2294,"filename":2295,"language":630,"meta":214,"style":214},"\u003Cscript setup>\nconst { personalizeSdk } = useContentstack()\n\n\u002F\u002F Set user preferences\nconst updatePreferences = async (categories: string[]) => {\n  await personalizeSdk?.set({\n    preferred_categories: categories,\n    last_updated: new Date().toISOString()\n  })\n  \n  \u002F\u002F Refetch personalized recommendations\n  await refresh()\n}\n\n\u002F\u002F Fetch personalized content\nconst { data: recommendations } = await useGetEntries({\n  contentTypeUid: 'product_recommendation',\n  limit: 6\n})\n\u003C\u002Fscript>\n","components\u002FRecommendations.vue",[112,2297,2298,2308,2324,2328,2333,2362,2376,2388,2407,2413,2418,2423,2432,2436,2440,2445,2471,2486,2496,2502],{"__ignoreMap":214},[218,2299,2300,2302,2304,2306],{"class":220,"line":221},[218,2301,542],{"class":239},[218,2303,639],{"class":246},[218,2305,642],{"class":473},[218,2307,645],{"class":239},[218,2309,2310,2312,2314,2316,2318,2320,2322],{"class":220,"line":243},[218,2311,650],{"class":473},[218,2313,495],{"class":239},[218,2315,655],{"class":235},[218,2317,419],{"class":239},[218,2319,504],{"class":239},[218,2321,507],{"class":231},[218,2323,510],{"class":235},[218,2325,2326],{"class":220,"line":271},[218,2327,275],{"emptyLinePlaceholder":274},[218,2329,2330],{"class":220,"line":278},[218,2331,2332],{"class":981},"\u002F\u002F Set user preferences\n",[218,2334,2335,2337,2340,2342,2344,2346,2349,2351,2353,2356,2358,2360],{"class":220,"line":293},[218,2336,650],{"class":473},[218,2338,2339],{"class":235}," updatePreferences ",[218,2341,442],{"class":239},[218,2343,526],{"class":473},[218,2345,529],{"class":239},[218,2347,2348],{"class":532},"categories",[218,2350,250],{"class":239},[218,2352,688],{"class":538},[218,2354,2355],{"class":235},"[]",[218,2357,191],{"class":239},[218,2359,485],{"class":473},[218,2361,290],{"class":239},[218,2363,2364,2366,2368,2370,2372,2374],{"class":220,"line":317},[218,2365,709],{"class":224},[218,2367,498],{"class":235},[218,2369,714],{"class":239},[218,2371,585],{"class":231},[218,2373,236],{"class":246},[218,2375,240],{"class":239},[218,2377,2378,2381,2383,2386],{"class":220,"line":338},[218,2379,2380],{"class":246},"    preferred_categories",[218,2382,250],{"class":239},[218,2384,2385],{"class":235}," categories",[218,2387,268],{"class":239},[218,2389,2390,2393,2395,2397,2399,2401,2403,2405],{"class":220,"line":356},[218,2391,2392],{"class":246},"    last_updated",[218,2394,250],{"class":239},[218,2396,1121],{"class":239},[218,2398,1124],{"class":231},[218,2400,1127],{"class":246},[218,2402,304],{"class":239},[218,2404,1132],{"class":231},[218,2406,510],{"class":246},[218,2408,2409,2411],{"class":220,"line":361},[218,2410,2146],{"class":239},[218,2412,422],{"class":246},[218,2414,2415],{"class":220,"line":371},[218,2416,2417],{"class":246},"  \n",[218,2419,2420],{"class":220,"line":385},[218,2421,2422],{"class":981},"  \u002F\u002F Refetch personalized recommendations\n",[218,2424,2425,2427,2430],{"class":220,"line":404},[218,2426,709],{"class":224},[218,2428,2429],{"class":231}," refresh",[218,2431,510],{"class":246},[218,2433,2434],{"class":220,"line":410},[218,2435,620],{"class":239},[218,2437,2438],{"class":220,"line":416},[218,2439,275],{"emptyLinePlaceholder":274},[218,2441,2442],{"class":220,"line":1137},[218,2443,2444],{"class":981},"\u002F\u002F Fetch personalized content\n",[218,2446,2447,2449,2451,2453,2455,2458,2460,2462,2464,2467,2469],{"class":220,"line":1504},[218,2448,650],{"class":473},[218,2450,495],{"class":239},[218,2452,1590],{"class":246},[218,2454,250],{"class":239},[218,2456,2457],{"class":235}," recommendations ",[218,2459,419],{"class":239},[218,2461,504],{"class":239},[218,2463,1602],{"class":224},[218,2465,2466],{"class":231}," useGetEntries",[218,2468,236],{"class":235},[218,2470,240],{"class":239},[218,2472,2473,2475,2477,2479,2482,2484],{"class":220,"line":1510},[218,2474,1614],{"class":246},[218,2476,250],{"class":239},[218,2478,346],{"class":239},[218,2480,2481],{"class":259},"product_recommendation",[218,2483,256],{"class":239},[218,2485,268],{"class":239},[218,2487,2488,2491,2493],{"class":220,"line":1779},[218,2489,2490],{"class":246},"  limit",[218,2492,250],{"class":239},[218,2494,2495],{"class":1007}," 6\n",[218,2497,2498,2500],{"class":220,"line":2240},[218,2499,419],{"class":239},[218,2501,422],{"class":235},[218,2503,2504,2506,2508],{"class":220,"line":2267},[218,2505,788],{"class":239},[218,2507,639],{"class":246},[218,2509,645],{"class":239},[98,2511,2513],{"id":2512},"best-practices","Best Practices",[203,2515,2517],{"id":2516},"performance","Performance",[120,2519,2520,2523,2526],{},[123,2521,2522],{},"Batch attribute updates when possible",[123,2524,2525],{},"Cache personalized content appropriately",[123,2527,2528],{},"Use specific variant queries only when needed",[203,2530,2532],{"id":2531},"privacy","Privacy",[120,2534,2535,2538,2541],{},[123,2536,2537],{},"Implement consent management",[123,2539,2540],{},"Only collect necessary attributes",[123,2542,2543],{},"Respect user privacy preferences",[203,2545,2547],{"id":2546},"development","Development",[120,2549,2550,2553],{},[123,2551,2552],{},"Test personalization in preview mode",[123,2554,2555],{},"Monitor performance impact",[98,2557,2559],{"id":2558},"troubleshooting","Troubleshooting",[76,2561,2562],{},[85,2563,2564],{},"Check if personalization is enabled:",[208,2566,2568],{"className":952,"code":2567,"language":954,"meta":214,"style":214},"const { personalizeSdk } = useContentstack()\nconsole.log(personalizeSdk ? 'Enabled' : 'Disabled')\n",[112,2569,2570,2586],{"__ignoreMap":214},[218,2571,2572,2574,2576,2578,2580,2582,2584],{"class":220,"line":221},[218,2573,650],{"class":473},[218,2575,495],{"class":239},[218,2577,655],{"class":235},[218,2579,419],{"class":239},[218,2581,504],{"class":239},[218,2583,507],{"class":231},[218,2585,510],{"class":235},[218,2587,2588,2590,2592,2594,2597,2600,2602,2605,2607,2610,2612,2615,2617],{"class":220,"line":243},[218,2589,1513],{"class":235},[218,2591,304],{"class":239},[218,2593,1518],{"class":231},[218,2595,2596],{"class":235},"(personalizeSdk ",[218,2598,2599],{"class":239},"?",[218,2601,346],{"class":239},[218,2603,2604],{"class":259},"Enabled",[218,2606,256],{"class":239},[218,2608,2609],{"class":239}," :",[218,2611,346],{"class":239},[218,2613,2614],{"class":259},"Disabled",[218,2616,256],{"class":239},[218,2618,422],{"class":235},[76,2620,2621],{},[85,2622,2623],{},"Verify variant delivery:",[208,2625,2627],{"className":952,"code":2626,"language":954,"meta":214,"style":214},"const { variantAlias, personalizeSdk } = useContentstack()\nconsole.log('Current variant alias:', variantAlias?.value)\nconsole.log('Active variants:', personalizeSdk?.getVariants())\n",[112,2628,2629,2649,2674],{"__ignoreMap":214},[218,2630,2631,2633,2635,2637,2639,2641,2643,2645,2647],{"class":220,"line":221},[218,2632,650],{"class":473},[218,2634,495],{"class":239},[218,2636,1532],{"class":235},[218,2638,548],{"class":239},[218,2640,655],{"class":235},[218,2642,419],{"class":239},[218,2644,504],{"class":239},[218,2646,507],{"class":231},[218,2648,510],{"class":235},[218,2650,2651,2653,2655,2657,2659,2661,2664,2666,2668,2670,2672],{"class":220,"line":243},[218,2652,1513],{"class":235},[218,2654,304],{"class":239},[218,2656,1518],{"class":231},[218,2658,236],{"class":235},[218,2660,256],{"class":239},[218,2662,2663],{"class":259},"Current variant alias:",[218,2665,256],{"class":239},[218,2667,548],{"class":239},[218,2669,1532],{"class":235},[218,2671,714],{"class":239},[218,2673,1537],{"class":235},[218,2675,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698],{"class":220,"line":271},[218,2677,1513],{"class":235},[218,2679,304],{"class":239},[218,2681,1518],{"class":231},[218,2683,236],{"class":235},[218,2685,256],{"class":239},[218,2687,1685],{"class":259},[218,2689,256],{"class":239},[218,2691,548],{"class":239},[218,2693,498],{"class":235},[218,2695,714],{"class":239},[218,2697,1394],{"class":231},[218,2699,2700],{"class":235},"())\n",[76,2702,2703],{},[85,2704,2705],{},"Debug attribute setting:",[208,2707,2709],{"className":952,"code":2708,"language":954,"meta":214,"style":214},"const { personalizeSdk } = useContentstack()\nawait personalizeSdk?.set({ test_attribute: 'value' })\n\u002F\u002F Check network requests in browser developer tools\n",[112,2710,2711,2727,2758],{"__ignoreMap":214},[218,2712,2713,2715,2717,2719,2721,2723,2725],{"class":220,"line":221},[218,2714,650],{"class":473},[218,2716,495],{"class":239},[218,2718,655],{"class":235},[218,2720,419],{"class":239},[218,2722,504],{"class":239},[218,2724,507],{"class":231},[218,2726,510],{"class":235},[218,2728,2729,2731,2733,2735,2737,2739,2742,2745,2747,2749,2752,2754,2756],{"class":220,"line":243},[218,2730,987],{"class":224},[218,2732,498],{"class":235},[218,2734,714],{"class":239},[218,2736,585],{"class":231},[218,2738,236],{"class":235},[218,2740,2741],{"class":239},"{",[218,2743,2744],{"class":246}," test_attribute",[218,2746,250],{"class":239},[218,2748,346],{"class":239},[218,2750,2751],{"class":259},"value",[218,2753,256],{"class":239},[218,2755,501],{"class":239},[218,2757,422],{"class":235},[218,2759,2760],{"class":220,"line":271},[218,2761,2762],{"class":981},"\u002F\u002F Check network requests in browser developer tools\n",[98,2764,2766],{"id":2765},"next-steps","Next Steps",[1724,2768,2775],{"className":2769},[2770,2771,2772,2773,2774],"grid","grid-cols-1","md:grid-cols-2","gap-4","mt-6",[2776,2777,2778],"card",{"icon":69,"title":66,"to":67},"Combine personalization with real-time content editing.",[2780,2781,2782],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":214,"searchDepth":243,"depth":243,"links":2784},[2785,2786,2787,2791,2795,2801,2806,2810,2815,2816],{"id":100,"depth":243,"text":101},{"id":149,"depth":243,"text":150},{"id":200,"depth":243,"text":201,"children":2788},[2789,2790],{"id":205,"depth":271,"text":206},{"id":425,"depth":271,"text":426},{"id":455,"depth":243,"text":456,"children":2792},[2793,2794],{"id":459,"depth":271,"text":460},{"id":623,"depth":271,"text":624},{"id":795,"depth":243,"text":796,"children":2796},[2797,2798,2799,2800],{"id":812,"depth":271,"text":813},{"id":946,"depth":271,"text":127},{"id":1144,"depth":271,"text":133},{"id":1339,"depth":271,"text":1340},{"id":1540,"depth":243,"text":1541,"children":2802},[2803,2804,2805],{"id":1544,"depth":271,"text":1545},{"id":1788,"depth":271,"text":1789},{"id":1894,"depth":271,"text":1895},{"id":2024,"depth":243,"text":2025,"children":2807},[2808,2809],{"id":2028,"depth":271,"text":2029},{"id":2290,"depth":271,"text":2291},{"id":2512,"depth":243,"text":2513,"children":2811},[2812,2813,2814],{"id":2516,"depth":271,"text":2517},{"id":2531,"depth":271,"text":2532},{"id":2546,"depth":271,"text":2547},{"id":2558,"depth":243,"text":2559},{"id":2765,"depth":243,"text":2766},"Deliver personalized content experiences with Contentstack Personalize integration, including user attributes, events, and variant-based content delivery.","md",null,{},{"icon":54},{"title":51,"description":2817},"Pvx4kQb63olAedAQZggTJ_GfQFIbLtL34xyr_OF_jBA",[2825,2827],{"title":46,"path":47,"stem":48,"description":2826,"icon":49,"children":-1},"Optimize images with Contentstack's Image Delivery API and @nuxt\u002Fimage integration for responsive, fast-loading images with advanced transformations.",{"title":56,"path":57,"stem":58,"description":2828,"icon":59,"children":-1},"Optimize your Nuxt Contentstack application for speed, efficiency, and scalability with best practices, caching strategies, and performance tips.",1775639653935]