[{"data":1,"prerenderedAt":1200},["ShallowReactive",2],{"docs-navigation-en":3,"docs-\u002Fen\u002Fdocs\u002Fdevelopers\u002Finstall":66,"docs-surround-\u002Fen\u002Fdocs\u002Fdevelopers\u002Finstall":1195},[4],{"title":5,"path":6,"stem":7,"children":8,"page":65},"En","\u002Fen","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":65},"Docs","\u002Fen\u002Fdocs","en\u002Fdocs",[14,22,41],{"title":15,"path":16,"stem":17,"children":18,"icon":21},"Getting started","\u002Fen\u002Fdocs\u002Fgetting-started","en\u002Fdocs\u002F1.getting-started\u002F1.index",[19],{"title":20,"path":16,"stem":17},"What Flowfy is","i-lucide-rocket",{"title":23,"path":24,"stem":25,"children":26,"icon":40},"Destinations","\u002Fen\u002Fdocs\u002Fdestinations","en\u002Fdocs\u002F2.destinations\u002F1.index",[27,28,32,36],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Meta","\u002Fen\u002Fdocs\u002Fdestinations\u002Fmeta","en\u002Fdocs\u002F2.destinations\u002F2.meta",{"title":33,"path":34,"stem":35},"TikTok","\u002Fen\u002Fdocs\u002Fdestinations\u002Ftiktok","en\u002Fdocs\u002F2.destinations\u002F3.tiktok",{"title":37,"path":38,"stem":39},"Snapchat","\u002Fen\u002Fdocs\u002Fdestinations\u002Fsnapchat","en\u002Fdocs\u002F2.destinations\u002F4.snapchat","i-lucide-share-2",{"title":42,"path":43,"stem":44,"children":45,"icon":64},"For developers","\u002Fen\u002Fdocs\u002Fdevelopers","en\u002Fdocs\u002F9.developers\u002F1.index",[46,48,52,56,60],{"title":47,"path":43,"stem":44},"Developer overview",{"title":49,"path":50,"stem":51},"Install the SDK","\u002Fen\u002Fdocs\u002Fdevelopers\u002Finstall","en\u002Fdocs\u002F9.developers\u002F2.install",{"title":53,"path":54,"stem":55},"Tracking","\u002Fen\u002Fdocs\u002Fdevelopers\u002Ftracking","en\u002Fdocs\u002F9.developers\u002F3.tracking",{"title":57,"path":58,"stem":59},"Event reference","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fevents","en\u002Fdocs\u002F9.developers\u002F4.events",{"title":61,"path":62,"stem":63},"HTTP API","\u002Fen\u002Fdocs\u002Fdevelopers\u002Fhttp-api","en\u002Fdocs\u002F9.developers\u002F5.http-api","i-lucide-code",false,{"id":67,"title":49,"audience":68,"body":69,"description":1190,"extension":1191,"meta":1192,"navigation":228,"path":50,"seo":1193,"stem":51,"__hash__":1194},"docs_en\u002Fen\u002Fdocs\u002F9.developers\u002F2.install.md","developer",{"type":70,"value":71,"toc":1180},"minimark",[72,81,84,89,101,105,112,728,735,739,767,823,827,830,847,869,876,879,882,1026,1036,1040,1043,1123,1129,1133,1149,1155,1161,1170,1173,1176],[73,74,75,76,80],"p",{},"The SDK is a script you add once to every page. It gives you a ",[77,78,79],"code",{},"flowfyanalytics"," object that queues calls made before the script finishes downloading, so you can start tracking on the same page that loads it.",[73,82,83],{},"Salla stores get this automatically through the Flowfy app. Install it by hand only for a custom storefront.",[85,86,88],"h2",{"id":87},"before-you-start","Before you start",[73,90,91,92,96,97,100],{},"You need a ",[93,94,95],"strong",{},"write key",". Open your source in Flowfy and copy it from the source's page. Everything below refers to it as ",[77,98,99],{},"YOUR_WRITE_KEY",".",[85,102,104],{"id":103},"add-the-script","Add the script",[73,106,107,108,111],{},"Put this in ",[77,109,110],{},"\u003Chead>",", before anything that tracks.",[113,114,119],"pre",{"className":115,"code":116,"language":117,"meta":118,"style":118},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript>\n  (function () {\n    var key = \"flowfyanalytics\";\n    var analytics = (window[key] = window[key] || []);\n\n    if (analytics.snippetExecuted) return;\n    analytics.snippetExecuted = true;\n\n    var methods = [\n      \"setDefaultInstanceKey\", \"load\", \"ready\", \"page\", \"track\", \"identify\",\n      \"alias\", \"group\", \"reset\", \"setAnonymousId\", \"startSession\",\n      \"endSession\", \"consent\", \"addCustomIntegration\"\n    ];\n\n    methods.forEach(function (method) {\n      analytics[method] = function () {\n        analytics.push([method].concat(Array.prototype.slice.call(arguments)));\n      };\n    });\n\n    var script = document.createElement(\"script\");\n    script.src = \"https:\u002F\u002Fcdn.flofy.co\u002Fv3\u002Fmodern\u002Fiife\u002Fflowfy.min.js\";\n    script.async = true;\n    document.head.appendChild(script);\n\n    analytics.load(\"YOUR_WRITE_KEY\", \"https:\u002F\u002Fedge.flofy.co\");\n    analytics.page();\n  })();\n\u003C\u002Fscript>\n","html","",[77,120,121,137,154,178,223,230,255,273,278,291,351,399,428,436,441,469,490,545,551,561,566,596,618,634,658,663,693,707,718],{"__ignoreMap":118},[122,123,126,130,134],"span",{"class":124,"line":125},"line",1,[122,127,129],{"class":128},"sMK4o","\u003C",[122,131,133],{"class":132},"swJcz","script",[122,135,136],{"class":128},">\n",[122,138,140,144,148,151],{"class":124,"line":139},2,[122,141,143],{"class":142},"sTEyZ","  (",[122,145,147],{"class":146},"spNyl","function",[122,149,150],{"class":128}," ()",[122,152,153],{"class":128}," {\n",[122,155,157,160,163,166,169,172,175],{"class":124,"line":156},3,[122,158,159],{"class":146},"    var",[122,161,162],{"class":142}," key",[122,164,165],{"class":128}," =",[122,167,168],{"class":128}," \"",[122,170,79],{"class":171},"sfazB",[122,173,174],{"class":128},"\"",[122,176,177],{"class":128},";\n",[122,179,181,183,186,188,191,194,197,200,203,206,209,211,213,215,218,221],{"class":124,"line":180},4,[122,182,159],{"class":146},[122,184,185],{"class":142}," analytics",[122,187,165],{"class":128},[122,189,190],{"class":132}," (",[122,192,193],{"class":142},"window",[122,195,196],{"class":132},"[",[122,198,199],{"class":142},"key",[122,201,202],{"class":132},"] ",[122,204,205],{"class":128},"=",[122,207,208],{"class":142}," window",[122,210,196],{"class":132},[122,212,199],{"class":142},[122,214,202],{"class":132},[122,216,217],{"class":128},"||",[122,219,220],{"class":132}," [])",[122,222,177],{"class":128},[122,224,226],{"class":124,"line":225},5,[122,227,229],{"emptyLinePlaceholder":228},true,"\n",[122,231,233,237,239,242,244,247,250,253],{"class":124,"line":232},6,[122,234,236],{"class":235},"s7zQu","    if",[122,238,190],{"class":132},[122,240,241],{"class":142},"analytics",[122,243,100],{"class":128},[122,245,246],{"class":142},"snippetExecuted",[122,248,249],{"class":132},") ",[122,251,252],{"class":235},"return",[122,254,177],{"class":128},[122,256,258,261,263,265,267,271],{"class":124,"line":257},7,[122,259,260],{"class":142},"    analytics",[122,262,100],{"class":128},[122,264,246],{"class":142},[122,266,165],{"class":128},[122,268,270],{"class":269},"sfNiH"," true",[122,272,177],{"class":128},[122,274,276],{"class":124,"line":275},8,[122,277,229],{"emptyLinePlaceholder":228},[122,279,281,283,286,288],{"class":124,"line":280},9,[122,282,159],{"class":146},[122,284,285],{"class":142}," methods",[122,287,165],{"class":128},[122,289,290],{"class":132}," [\n",[122,292,294,297,300,302,305,307,310,312,314,316,319,321,323,325,328,330,332,334,337,339,341,343,346,348],{"class":124,"line":293},10,[122,295,296],{"class":128},"      \"",[122,298,299],{"class":171},"setDefaultInstanceKey",[122,301,174],{"class":128},[122,303,304],{"class":128},",",[122,306,168],{"class":128},[122,308,309],{"class":171},"load",[122,311,174],{"class":128},[122,313,304],{"class":128},[122,315,168],{"class":128},[122,317,318],{"class":171},"ready",[122,320,174],{"class":128},[122,322,304],{"class":128},[122,324,168],{"class":128},[122,326,327],{"class":171},"page",[122,329,174],{"class":128},[122,331,304],{"class":128},[122,333,168],{"class":128},[122,335,336],{"class":171},"track",[122,338,174],{"class":128},[122,340,304],{"class":128},[122,342,168],{"class":128},[122,344,345],{"class":171},"identify",[122,347,174],{"class":128},[122,349,350],{"class":128},",\n",[122,352,354,356,359,361,363,365,368,370,372,374,377,379,381,383,386,388,390,392,395,397],{"class":124,"line":353},11,[122,355,296],{"class":128},[122,357,358],{"class":171},"alias",[122,360,174],{"class":128},[122,362,304],{"class":128},[122,364,168],{"class":128},[122,366,367],{"class":171},"group",[122,369,174],{"class":128},[122,371,304],{"class":128},[122,373,168],{"class":128},[122,375,376],{"class":171},"reset",[122,378,174],{"class":128},[122,380,304],{"class":128},[122,382,168],{"class":128},[122,384,385],{"class":171},"setAnonymousId",[122,387,174],{"class":128},[122,389,304],{"class":128},[122,391,168],{"class":128},[122,393,394],{"class":171},"startSession",[122,396,174],{"class":128},[122,398,350],{"class":128},[122,400,402,404,407,409,411,413,416,418,420,422,425],{"class":124,"line":401},12,[122,403,296],{"class":128},[122,405,406],{"class":171},"endSession",[122,408,174],{"class":128},[122,410,304],{"class":128},[122,412,168],{"class":128},[122,414,415],{"class":171},"consent",[122,417,174],{"class":128},[122,419,304],{"class":128},[122,421,168],{"class":128},[122,423,424],{"class":171},"addCustomIntegration",[122,426,427],{"class":128},"\"\n",[122,429,431,434],{"class":124,"line":430},13,[122,432,433],{"class":132},"    ]",[122,435,177],{"class":128},[122,437,439],{"class":124,"line":438},14,[122,440,229],{"emptyLinePlaceholder":228},[122,442,444,447,449,453,456,458,460,464,467],{"class":124,"line":443},15,[122,445,446],{"class":142},"    methods",[122,448,100],{"class":128},[122,450,452],{"class":451},"s2Zo4","forEach",[122,454,455],{"class":132},"(",[122,457,147],{"class":146},[122,459,190],{"class":128},[122,461,463],{"class":462},"sHdIc","method",[122,465,466],{"class":128},")",[122,468,153],{"class":128},[122,470,472,475,477,479,481,483,486,488],{"class":124,"line":471},16,[122,473,474],{"class":142},"      analytics",[122,476,196],{"class":132},[122,478,463],{"class":142},[122,480,202],{"class":132},[122,482,205],{"class":128},[122,484,485],{"class":146}," function",[122,487,150],{"class":128},[122,489,153],{"class":128},[122,491,493,496,498,501,504,506,509,511,514,516,520,522,525,527,530,532,535,537,540,543],{"class":124,"line":492},17,[122,494,495],{"class":142},"        analytics",[122,497,100],{"class":128},[122,499,500],{"class":451},"push",[122,502,503],{"class":132},"([",[122,505,463],{"class":142},[122,507,508],{"class":132},"]",[122,510,100],{"class":128},[122,512,513],{"class":451},"concat",[122,515,455],{"class":132},[122,517,519],{"class":518},"sBMFI","Array",[122,521,100],{"class":128},[122,523,524],{"class":142},"prototype",[122,526,100],{"class":128},[122,528,529],{"class":142},"slice",[122,531,100],{"class":128},[122,533,534],{"class":451},"call",[122,536,455],{"class":132},[122,538,539],{"class":142},"arguments",[122,541,542],{"class":132},")))",[122,544,177],{"class":128},[122,546,548],{"class":124,"line":547},18,[122,549,550],{"class":128},"      };\n",[122,552,554,557,559],{"class":124,"line":553},19,[122,555,556],{"class":128},"    }",[122,558,466],{"class":132},[122,560,177],{"class":128},[122,562,564],{"class":124,"line":563},20,[122,565,229],{"emptyLinePlaceholder":228},[122,567,569,571,574,576,579,581,584,586,588,590,592,594],{"class":124,"line":568},21,[122,570,159],{"class":146},[122,572,573],{"class":142}," script",[122,575,165],{"class":128},[122,577,578],{"class":142}," document",[122,580,100],{"class":128},[122,582,583],{"class":451},"createElement",[122,585,455],{"class":132},[122,587,174],{"class":128},[122,589,133],{"class":171},[122,591,174],{"class":128},[122,593,466],{"class":132},[122,595,177],{"class":128},[122,597,599,602,604,607,609,611,614,616],{"class":124,"line":598},22,[122,600,601],{"class":142},"    script",[122,603,100],{"class":128},[122,605,606],{"class":142},"src",[122,608,165],{"class":128},[122,610,168],{"class":128},[122,612,613],{"class":171},"https:\u002F\u002Fcdn.flofy.co\u002Fv3\u002Fmodern\u002Fiife\u002Fflowfy.min.js",[122,615,174],{"class":128},[122,617,177],{"class":128},[122,619,621,623,625,628,630,632],{"class":124,"line":620},23,[122,622,601],{"class":142},[122,624,100],{"class":128},[122,626,627],{"class":142},"async",[122,629,165],{"class":128},[122,631,270],{"class":269},[122,633,177],{"class":128},[122,635,637,640,642,645,647,650,652,654,656],{"class":124,"line":636},24,[122,638,639],{"class":142},"    document",[122,641,100],{"class":128},[122,643,644],{"class":142},"head",[122,646,100],{"class":128},[122,648,649],{"class":451},"appendChild",[122,651,455],{"class":132},[122,653,133],{"class":142},[122,655,466],{"class":132},[122,657,177],{"class":128},[122,659,661],{"class":124,"line":660},25,[122,662,229],{"emptyLinePlaceholder":228},[122,664,666,668,670,672,674,676,678,680,682,684,687,689,691],{"class":124,"line":665},26,[122,667,260],{"class":142},[122,669,100],{"class":128},[122,671,309],{"class":451},[122,673,455],{"class":132},[122,675,174],{"class":128},[122,677,99],{"class":171},[122,679,174],{"class":128},[122,681,304],{"class":128},[122,683,168],{"class":128},[122,685,686],{"class":171},"https:\u002F\u002Fedge.flofy.co",[122,688,174],{"class":128},[122,690,466],{"class":132},[122,692,177],{"class":128},[122,694,696,698,700,702,705],{"class":124,"line":695},27,[122,697,260],{"class":142},[122,699,100],{"class":128},[122,701,327],{"class":451},[122,703,704],{"class":132},"()",[122,706,177],{"class":128},[122,708,710,713,716],{"class":124,"line":709},28,[122,711,712],{"class":128},"  }",[122,714,715],{"class":142},")()",[122,717,177],{"class":128},[122,719,721,724,726],{"class":124,"line":720},29,[122,722,723],{"class":128},"\u003C\u002F",[122,725,133],{"class":132},[122,727,136],{"class":128},[73,729,730,731,734],{},"That is the whole install. The loop is what lets ",[77,732,733],{},"flowfyanalytics.track(...)"," work before the real SDK has arrived — calls are pushed onto an array and replayed once it loads.",[85,736,738],{"id":737},"what-the-arguments-mean","What the arguments mean",[113,740,744],{"className":741,"code":742,"language":743,"meta":118,"style":118},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flowfyanalytics.load(writeKey, dataPlaneUrl, options)\n","js",[77,745,746],{"__ignoreMap":118},[122,747,748,750,752,754,757,759,762,764],{"class":124,"line":125},[122,749,79],{"class":142},[122,751,100],{"class":128},[122,753,309],{"class":451},[122,755,756],{"class":142},"(writeKey",[122,758,304],{"class":128},[122,760,761],{"class":142}," dataPlaneUrl",[122,763,304],{"class":128},[122,765,766],{"class":142}," options)\n",[768,769,770,783],"table",{},[771,772,773],"thead",{},[774,775,776,780],"tr",{},[777,778,779],"th",{},"Argument",[777,781,782],{},"Value",[784,785,786,797,808],"tbody",{},[774,787,788,794],{},[789,790,791],"td",{},[77,792,793],{},"writeKey",[789,795,796],{},"Your source's write key",[774,798,799,804],{},[789,800,801],{},[77,802,803],{},"dataPlaneUrl",[789,805,806],{},[77,807,686],{},[774,809,810,815],{},[789,811,812],{},[77,813,814],{},"options",[789,816,817,818],{},"Optional — see ",[819,820,822],"a",{"href":821},"#batching","batching",[85,824,826],{"id":825},"check-that-it-works","Check that it works",[73,828,829],{},"Load a page and open the browser console:",[113,831,833],{"className":741,"code":832,"language":743,"meta":118,"style":118},"flowfyanalytics.getAnonymousId()\n",[77,834,835],{"__ignoreMap":118},[122,836,837,839,841,844],{"class":124,"line":125},[122,838,79],{"class":142},[122,840,100],{"class":128},[122,842,843],{"class":451},"getAnonymousId",[122,845,846],{"class":142},"()\n",[73,848,849,850,853,854,857,858,861,862,865,866,100],{},"A string means the SDK loaded. Then open the Network tab, filter on ",[77,851,852],{},"edge.flofy.co",", and trigger an event — you should see a ",[77,855,856],{},"POST"," to ",[77,859,860],{},"\u002Fv1\u002Fpage"," or ",[77,863,864],{},"\u002Fv1\u002Ftrack"," answered with ",[93,867,868],{},"204",[73,870,871,872,875],{},"If both look right, open ",[93,873,874],{},"Live events"," on the source's page in Flowfy. Events appear there within a few seconds.",[85,877,878],{"id":822},"Batching",[73,880,881],{},"By default the SDK sends each event as its own request. On a busy storefront you can batch them:",[113,883,885],{"className":741,"code":884,"language":743,"meta":118,"style":118},"flowfyanalytics.load(\"YOUR_WRITE_KEY\", \"https:\u002F\u002Fedge.flofy.co\", {\n  plugins: [\"XhrQueue\"],\n  queueOptions: {\n    batch: {\n      enabled: true,\n      maxItems: 50,\n      maxSize: 512 * 1024,\n      flushInterval: 60000\n    }\n  }\n});\n",[77,886,887,915,937,946,955,966,979,997,1007,1012,1017],{"__ignoreMap":118},[122,888,889,891,893,895,897,899,901,903,905,907,909,911,913],{"class":124,"line":125},[122,890,79],{"class":142},[122,892,100],{"class":128},[122,894,309],{"class":451},[122,896,455],{"class":142},[122,898,174],{"class":128},[122,900,99],{"class":171},[122,902,174],{"class":128},[122,904,304],{"class":128},[122,906,168],{"class":128},[122,908,686],{"class":171},[122,910,174],{"class":128},[122,912,304],{"class":128},[122,914,153],{"class":128},[122,916,917,920,923,926,928,931,933,935],{"class":124,"line":139},[122,918,919],{"class":132},"  plugins",[122,921,922],{"class":128},":",[122,924,925],{"class":142}," [",[122,927,174],{"class":128},[122,929,930],{"class":171},"XhrQueue",[122,932,174],{"class":128},[122,934,508],{"class":142},[122,936,350],{"class":128},[122,938,939,942,944],{"class":124,"line":156},[122,940,941],{"class":132},"  queueOptions",[122,943,922],{"class":128},[122,945,153],{"class":128},[122,947,948,951,953],{"class":124,"line":180},[122,949,950],{"class":132},"    batch",[122,952,922],{"class":128},[122,954,153],{"class":128},[122,956,957,960,962,964],{"class":124,"line":225},[122,958,959],{"class":132},"      enabled",[122,961,922],{"class":128},[122,963,270],{"class":269},[122,965,350],{"class":128},[122,967,968,971,973,977],{"class":124,"line":232},[122,969,970],{"class":132},"      maxItems",[122,972,922],{"class":128},[122,974,976],{"class":975},"sbssI"," 50",[122,978,350],{"class":128},[122,980,981,984,986,989,992,995],{"class":124,"line":257},[122,982,983],{"class":132},"      maxSize",[122,985,922],{"class":128},[122,987,988],{"class":975}," 512",[122,990,991],{"class":128}," *",[122,993,994],{"class":975}," 1024",[122,996,350],{"class":128},[122,998,999,1002,1004],{"class":124,"line":275},[122,1000,1001],{"class":132},"      flushInterval",[122,1003,922],{"class":128},[122,1005,1006],{"class":975}," 60000\n",[122,1008,1009],{"class":124,"line":280},[122,1010,1011],{"class":128},"    }\n",[122,1013,1014],{"class":124,"line":293},[122,1015,1016],{"class":128},"  }\n",[122,1018,1019,1022,1024],{"class":124,"line":353},[122,1020,1021],{"class":128},"}",[122,1023,466],{"class":142},[122,1025,177],{"class":128},[73,1027,1028,1031,1032,1035],{},[77,1029,1030],{},"flushInterval"," is in milliseconds and ",[77,1033,1034],{},"maxSize"," in bytes. Batched events wait in the browser until one of the three limits is reached, so a shopper who closes the tab early loses whatever is still queued. Leave batching off unless request volume is an actual problem.",[85,1037,1039],{"id":1038},"identifying-a-logged-in-shopper","Identifying a logged-in shopper",[73,1041,1042],{},"If you already know who the shopper is when the page renders, say so on load:",[113,1044,1046],{"className":741,"code":1045,"language":743,"meta":118,"style":118},"flowfyanalytics.identify(\"customer_9931\", {\n  name: \"Sara Al-Otaibi\",\n  email: \"sara@example.com\",\n  phone: \"+966500000000\"\n});\n",[77,1047,1048,1069,1085,1101,1115],{"__ignoreMap":118},[122,1049,1050,1052,1054,1056,1058,1060,1063,1065,1067],{"class":124,"line":125},[122,1051,79],{"class":142},[122,1053,100],{"class":128},[122,1055,345],{"class":451},[122,1057,455],{"class":142},[122,1059,174],{"class":128},[122,1061,1062],{"class":171},"customer_9931",[122,1064,174],{"class":128},[122,1066,304],{"class":128},[122,1068,153],{"class":128},[122,1070,1071,1074,1076,1078,1081,1083],{"class":124,"line":139},[122,1072,1073],{"class":132},"  name",[122,1075,922],{"class":128},[122,1077,168],{"class":128},[122,1079,1080],{"class":171},"Sara Al-Otaibi",[122,1082,174],{"class":128},[122,1084,350],{"class":128},[122,1086,1087,1090,1092,1094,1097,1099],{"class":124,"line":156},[122,1088,1089],{"class":132},"  email",[122,1091,922],{"class":128},[122,1093,168],{"class":128},[122,1095,1096],{"class":171},"sara@example.com",[122,1098,174],{"class":128},[122,1100,350],{"class":128},[122,1102,1103,1106,1108,1110,1113],{"class":124,"line":180},[122,1104,1105],{"class":132},"  phone",[122,1107,922],{"class":128},[122,1109,168],{"class":128},[122,1111,1112],{"class":171},"+966500000000",[122,1114,427],{"class":128},[122,1116,1117,1119,1121],{"class":124,"line":225},[122,1118,1021],{"class":128},[122,1120,466],{"class":142},[122,1122,177],{"class":128},[73,1124,1125,1126,100],{},"The rest of the methods are on the ",[819,1127,1128],{"href":54},"tracking page",[85,1130,1132],{"id":1131},"if-nothing-arrives","If nothing arrives",[73,1134,1135,1141,1142,1145,1146,100],{},[93,1136,1137,1138,1140],{},"No ",[77,1139,79],{}," in the console."," The script did not load. Look for ",[77,1143,1144],{},"flowfy.min.js"," in the Network tab — a blocked request usually means an ad blocker, or a Content-Security-Policy that does not allow ",[77,1147,1148],{},"cdn.flofy.co",[73,1150,1151,1154],{},[93,1152,1153],{},"Requests answered with 400."," The write key is missing or malformed. Re-copy it from the source page.",[73,1156,1157,1160],{},[93,1158,1159],{},"Requests answered with 204, but nothing in Live events."," The request was well-formed but the write key does not match a source. A 204 confirms receipt only — it is not a check that the key is valid.",[73,1162,1163,1166,1167,1169],{},[93,1164,1165],{},"Events fire twice."," The snippet is on the page more than once. ",[77,1168,246],{}," guards against that, so a duplicate usually means two different copies of the snippet, or a router re-running it on navigation.",[85,1171,1172],{"id":1172},"npm",[73,1174,1175],{},"There is no published npm package yet. Use the script tag above.",[1177,1178,1179],"style",{},"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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":118,"searchDepth":139,"depth":139,"links":1181},[1182,1183,1184,1185,1186,1187,1188,1189],{"id":87,"depth":139,"text":88},{"id":103,"depth":139,"text":104},{"id":737,"depth":139,"text":738},{"id":825,"depth":139,"text":826},{"id":822,"depth":139,"text":878},{"id":1038,"depth":139,"text":1039},{"id":1131,"depth":139,"text":1132},{"id":1172,"depth":139,"text":1172},"Add the Flowfy tracking script to a custom storefront and point it at your source.","md",{},{"title":49,"description":1190},"scHEqU0kYNdVgE6VwUTwI4tFhfy-VJw12k_6PdocSCM",[1196,1198],{"title":47,"path":43,"stem":44,"description":1197,"children":-1},"Send your store's events to Flowfy from the browser or from your server.",{"title":53,"path":54,"stem":55,"description":1199,"children":-1},"The SDK methods for recording what a shopper does and who they are.",1787611841787]