[{"data":1,"prerenderedAt":294},["ShallowReactive",2],{"docs-navigation-en":3,"docs-\u002Fen\u002Fdocs\u002Fdevelopers":66,"docs-surround-\u002Fen\u002Fdocs\u002Fdevelopers":289},[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":47,"audience":68,"body":69,"description":283,"extension":284,"meta":285,"navigation":286,"path":43,"seo":287,"stem":44,"__hash__":288},"docs_en\u002Fen\u002Fdocs\u002F9.developers\u002F1.index.md","developer",{"type":70,"value":71,"toc":275},"minimark",[72,76,79,84,152,155,159,166,172,187,191,201,212,216,237,241],[73,74,75],"p",{},"Flowfy receives events from your store, works out where each order came from, and forwards those events on to your advertising platforms. This section covers how to send them yourself.",[73,77,78],{},"If your store is on Salla you do not need any of this — the Flowfy app installs the tracking script for you. These pages are for custom storefronts, headless setups, and server-side tracking.",[80,81,83],"h2",{"id":82},"two-ways-in","Two ways in",[85,86,87,101],"table",{},[88,89,90],"thead",{},[91,92,93,96,99],"tr",{},[94,95],"th",{},[94,97,98],{},"JavaScript SDK",[94,100,61],{},[102,103,104,116,127,138],"tbody",{},[91,105,106,110,113],{},[107,108,109],"td",{},"Runs in",[107,111,112],{},"The shopper's browser",[107,114,115],{},"Anywhere that can make a request",[91,117,118,121,124],{},[107,119,120],{},"Best for",[107,122,123],{},"Storefront tracking",[107,125,126],{},"Orders, refunds, back-office systems",[91,128,129,132,135],{},[107,130,131],{},"Collects page, referrer and campaign for you",[107,133,134],{},"Yes",[107,136,137],{},"No — you send them",[91,139,140,143,148],{},[107,141,142],{},"Start at",[107,144,145],{},[146,147,49],"a",{"href":50},[107,149,150],{},[146,151,61],{"href":62},[73,153,154],{},"Most stores use both: the SDK for what the shopper does, and the API for what happens after the order leaves the browser.",[80,156,158],{"id":157},"three-things-to-know-first","Three things to know first",[73,160,161,165],{},[162,163,164],"strong",{},"A source is your store."," Every event belongs to one source, and you create it in Flowfy before sending anything.",[73,167,168,171],{},[162,169,170],{},"A write key identifies that source."," It is the only credential involved, it lives on the source's page in Flowfy, and it goes in every request. It is not a secret in the browser — it names your store, it does not grant access to your data — but keep your server-side copy out of public repositories anyway.",[73,173,174,177,178,182,183,186],{},[162,175,176],{},"An event is one thing that happened."," It has a name and a set of properties. The names are fixed: Flowfy matches ",[179,180,181],"code",{},"Order Completed"," to a purchase on Meta, TikTok and Snapchat, so use the names from the ",[146,184,185],{"href":58},"event reference"," rather than inventing your own.",[80,188,190],{"id":189},"where-events-go","Where events go",[192,193,199],"pre",{"className":194,"code":196,"language":197,"meta":198},[195],"language-text","your store  →  edge.flofy.co  →  Flowfy  →  Meta \u002F TikTok \u002F Snapchat\n","text","",[179,200,196],{"__ignoreMap":198},[73,202,203,204,207,208,211],{},"Events are accepted at ",[179,205,206],{},"https:\u002F\u002Fedge.flofy.co"," and answered immediately, before any processing. A success response means the event was received, not that it was understood — open ",[162,209,210],{},"Live events"," on the source's page in Flowfy to see what actually landed.",[80,213,215],{"id":214},"property-names-use-snake_case","Property names use snake_case",[73,217,218,219,222,223,222,226,229,230,232,233,236],{},"Every property in these docs is lower-case with underscores: ",[179,220,221],{},"order_id",", ",[179,224,225],{},"product_id",[179,227,228],{},"payment_method",". Flowfy reads ",[179,231,221],{},"; it does not read ",[179,234,235],{},"orderId",", and an order sent that way arrives with no order attached to it.",[80,238,240],{"id":239},"next","Next",[242,243,244,250,265,270],"ul",{},[245,246,247,249],"li",{},[146,248,49],{"href":50}," — the script tag and the load call",[245,251,252,254,255,222,258,222,261,264],{},[146,253,53],{"href":54}," — ",[179,256,257],{},"track",[179,259,260],{},"identify",[179,262,263],{},"page"," and the rest",[245,266,267,269],{},[146,268,57],{"href":58}," — all 30 events and their properties",[245,271,272,274],{},[146,273,61],{"href":62}," — sending events from a server",{"title":198,"searchDepth":276,"depth":276,"links":277},2,[278,279,280,281,282],{"id":82,"depth":276,"text":83},{"id":157,"depth":276,"text":158},{"id":189,"depth":276,"text":190},{"id":214,"depth":276,"text":215},{"id":239,"depth":276,"text":240},"Send your store's events to Flowfy from the browser or from your server.","md",{},true,{"title":47,"description":283},"xJVdkL4cEobMtDMPLKirWp7ISdx8Nef1jOMlOzOlyH4",[290,292],{"title":37,"path":38,"stem":39,"description":291,"children":-1},"Send your store's events to Snapchat ads through the Snapchat Conversions API.",{"title":49,"path":50,"stem":51,"description":293,"children":-1},"Add the Flowfy tracking script to a custom storefront and point it at your source.",1787611840801]