[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-en-\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fmeta-capi":3},{"id":4,"title":5,"body":6,"category":780,"code_examples":781,"demos":781,"description":782,"extension":783,"meta":784,"navigation":781,"order":769,"path":785,"seo":786,"sitemap":797,"stem":799,"tags":800,"toc":807,"videos":781,"__hash__":808},"docsEn\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fmeta-capi.md","Setup Meta Conversions API (CAPI)",{"type":7,"value":8,"toc":761},"minimark",[9,14,18,23,26,55,58,62,65,85,89,105,110,120,127,143,148,255,259,300,304,349,353,358,374,395,399,402,465,487,491,494,504,511,515,518,527,532,561,564,568,589,592,596,672,681,684,708,712,723,727,738,742],[10,11,13],"h1",{"id":12},"meta-conversions-api-capi","Meta Conversions API (CAPI)",[15,16,17],"p",{},"Meta Conversions API (CAPI) is an essential tool for modern advertisers. This feature allows you to send conversion data (like Leads, Purchases) directly from the Konektor server to Meta, bypassing the user's browser.",[19,20,22],"h2",{"id":21},"why-you-must-use-capi","Why You Must Use CAPI?",[15,24,25],{},"Regular browser Pixel is becoming increasingly inaccurate due to:",[27,28,29,37,43,49],"ol",{},[30,31,32,36],"li",{},[33,34,35],"strong",{},"Ad Blockers",": Extensions like uBlock Origin block pixels.",[30,38,39,42],{},[33,40,41],{},"Browser Privacy",": Safari (ITP) and Firefox limit cookie lifespan.",[30,44,45,48],{},[33,46,47],{},"Unstable Connections",": Slow page loading can fail to trigger the pixel.",[30,50,51,54],{},[33,52,53],{},"iOS14+",": Tracking Transparency (ATT) makes app\u002Fweb tracking difficult.",[15,56,57],{},"CAPI sends events from the server, which reduces dependence on browser delivery. Actual results depend on data quality, configuration, and Meta policies.",[19,59,61],{"id":60},"setup-requirements","Setup Requirements",[15,63,64],{},"Before starting, ensure you have:",[66,67,68,75,82],"ul",{},[30,69,70,71,74],{},"Admin access to ",[33,72,73],{},"Meta Business Manager",".",[30,76,77,78,81],{},"A ",[33,79,80],{},"Meta Pixel"," already created.",[30,83,84],{},"Admin access to Konektor Dashboard.",[19,86,88],{"id":87},"url-parameters-template-meta-ads","URL Parameters Template (Meta Ads)",[15,90,91,92,96,97,100,101,104],{},"Meta supports auto-tagging for IDs like ",[93,94,95],"code",{},"campaign_id",", ",[93,98,99],{},"adset_id",", and ",[93,102,103],{},"ad_id",". Add name snapshots for stable historical reporting and use official macros from Ads Manager.",[15,106,107],{},[33,108,109],{},"Recommended Template (UTM + Stable IDs):",[111,112,117],"pre",{"className":113,"code":115,"language":116},[114],"language-text","utm_source=meta&utm_medium=paid&utm_campaign={{campaign.name}}&utm_term={{adset.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_name={{ad.name}}&site_source_name={{site_source_name}}&ad_meta={{placement}}&ad_account_id=YOUR_AD_ACCOUNT_ID\n","text",[93,118,115],{"__ignoreMap":119},"",[15,121,122,123,126],{},"Fill ",[93,124,125],{},"ad_account_id"," with your ad account ID.",[128,129,131],"info",{"title":130},"Important Note",[15,132,133,134,138,139,142],{},"If you fill the ",[135,136,137],"em",{},"URL Parameters"," field in Meta Ads, ",[33,140,141],{},"do not add the question mark (?)",". Meta will append it automatically.",[144,145,147],"h3",{"id":146},"meta-dynamic-macros","Meta Dynamic Macros",[149,150,151,167],"table",{},[152,153,154],"thead",{},[155,156,157,161,164],"tr",{},[158,159,160],"th",{},"Macro",[158,162,163],{},"Description",[158,165,166],{},"Example",[168,169,170,186,201,216,231],"tbody",{},[155,171,172,178,181],{},[173,174,175],"td",{},[93,176,177],{},"{{campaign.name}}",[173,179,180],{},"Campaign Name",[173,182,183],{},[93,184,185],{},"Eid_Promo",[155,187,188,193,196],{},[173,189,190],{},[93,191,192],{},"{{adset.name}}",[173,194,195],{},"Ad Set Name",[173,197,198],{},[93,199,200],{},"Java_Bali_25-50",[155,202,203,208,211],{},[173,204,205],{},[93,206,207],{},"{{ad.name}}",[173,209,210],{},"Ad Name",[173,212,213],{},[93,214,215],{},"Testimonial_Video_1",[155,217,218,223,226],{},[173,219,220],{},[93,221,222],{},"{{placement}}",[173,224,225],{},"Placement",[173,227,228],{},[93,229,230],{},"Instagram_Stories",[155,232,233,238,241],{},[173,234,235],{},[93,236,237],{},"{{site_source_name}}",[173,239,240],{},"Source Platform",[173,242,243,96,246,96,249,96,252],{},[93,244,245],{},"fb",[93,247,248],{},"ig",[93,250,251],{},"an",[93,253,254],{},"msg",[19,256,258],{"id":257},"how-to-get-capi-token","How to Get CAPI Token",[27,260,261,271,274,281,288,294],{},[30,262,263,264,74],{},"Open ",[265,266,270],"a",{"href":267,"rel":268},"https:\u002F\u002Fbusiness.facebook.com\u002Fevents_manager",[269],"nofollow","Meta Events Manager",[30,272,273],{},"Select the Pixel you want to use.",[30,275,276,277,280],{},"Go to the ",[33,278,279],{},"Settings"," tab.",[30,282,283,284,287],{},"Scroll down to the ",[33,285,286],{},"Conversions API"," section.",[30,289,290,291,74],{},"Click ",[33,292,293],{},"Generate Access Token",[30,295,296,299],{},[33,297,298],{},"IMPORTANT",": Copy and save this token in a safe place (Notepad\u002FPassword Manager). Meta will not display this token again.",[19,301,303],{"id":302},"integration-in-konektor","Integration in Konektor",[27,305,306,309,315,321,327,338,344],{},[30,307,308],{},"Login to Konektor Dashboard.",[30,310,311,312,74],{},"Go to ",[33,313,314],{},"Settings > Pixel & Tracking",[30,316,317,318,74],{},"Select ",[33,319,320],{},"Meta \u002F Facebook",[30,322,323,324,74],{},"Enter your ",[33,325,326],{},"Pixel ID",[30,328,329,330,333,334,337],{},"Paste the ",[33,331,332],{},"Access Token"," you copied into the ",[135,335,336],{},"CAPI Access Token"," field.",[30,339,290,340,343],{},[33,341,342],{},"Test Connection"," to ensure successful connection.",[30,345,290,346,74],{},[33,347,348],{},"Save",[19,350,352],{"id":351},"setup-for-click-to-whatsapp-ctwa-ads","Setup for Click-to-WhatsApp (CTWA) Ads",[15,354,355,356,337],{},"CTWA uses a WABA dataset and permissions that differ from the CAPI token for a website Pixel. Do not paste a CTWA token into the ",[33,357,336],{},[15,359,360,361,364,365,368,369,373],{},"Save the WhatsApp Session that receives the lead. Select ",[33,362,363],{},"Set up CTWA"," or ",[33,366,367],{},"Manage CTWA",", then enter the WABA ID and select the connection method in the CTWA modal. Follow the ",[265,370,372],{"href":371},"\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fmeta-ctwa","Meta CTWA connection guide for a Meta App token"," for the complete steps and token safety rules.",[15,375,376,377,380,381,384,385,384,388,390,391,394],{},"If Sync Logs shows ",[33,378,379],{},"CTWA fallback",", check the connection under ",[33,382,383],{},"WhatsApp"," > ",[33,386,387],{},"Sessions",[33,389,367],{},". Run ",[33,392,393],{},"Check connection",", then create one new conversion. Meta event acceptance does not guarantee that Ads Manager will report or attribute it.",[19,396,398],{"id":397},"what-data-is-sent","What Data is Sent?",[15,400,401],{},"Konektor automatically sends the following standard events based on lead status:",[149,403,404,415],{},[152,405,406],{},[155,407,408,412],{},[158,409,411],{"align":410},"left","Lead Status",[158,413,414],{"align":410},"Meta Event",[168,416,417,429,441,453],{},[155,418,419,424],{},[173,420,421],{"align":410},[93,422,423],{},"new",[173,425,426],{"align":410},[93,427,428],{},"Lead",[155,430,431,436],{},[173,432,433],{"align":410},[93,434,435],{},"qualified",[173,437,438],{"align":410},[93,439,440],{},"InitiateCheckout",[155,442,443,448],{},[173,444,445],{"align":410},[93,446,447],{},"won",[173,449,450],{"align":410},[93,451,452],{},"Purchase",[155,454,455,460],{},[173,456,457],{"align":410},[93,458,459],{},"resubscribed",[173,461,462],{"align":410},[93,463,464],{},"Subscribe",[466,467,469],"warning",{"title":468},"Matching Quality",[15,470,471,472,474,475,478,479,482,483,486],{},"For CAPI events to match with Facebook users, we send hashed (SHA256) user data such as Email (",[93,473,135],{},"), Phone (",[93,476,477],{},"ph","), First Name (",[93,480,481],{},"fn","), and City (",[93,484,485],{},"ct",").",[19,488,490],{"id":489},"event-deduplication","Event Deduplication",[15,492,493],{},"If you have both Browser Pixel and CAPI installed, Meta may receive 2 events for the same occurrence (Double Counting).",[15,495,496,497,500,501,503],{},"Konektor sends a unique ",[93,498,499],{},"event_id"," for server-side events. Browser and server deduplication only works when your browser-side event also sends the same ",[93,502,499],{},". If the browser event uses a different ID, Meta will treat them as separate events.",[15,505,506,507,510],{},"For Click-to-WhatsApp flows, ",[93,508,509],{},"ctwa_clid"," is treated as webhook-derived data from WhatsApp \u002F ad metadata, not as a normal browser-tracked parameter.",[19,512,514],{"id":513},"why-are-my-events-not-showing-up-in-events-manager","Why are my events not showing up in Events Manager?",[15,516,517],{},"The most common issue is blocked events because the domain hasn't been added to Meta's Allow List. You might see a warning like:",[519,520,521],"blockquote",{},[15,522,523,524],{},"If an error has been detected in the last 3 days it will appear here...\n",[33,525,526],{},"Domain(s) recently started sending data. Confirm that they're yours by adding them to allowlist.",[15,528,529],{},[33,530,531],{},"Solution:",[27,533,534,539,544,550,556],{},[30,535,263,536,538],{},[33,537,279],{}," in Meta Events Manager.",[30,540,283,541,287],{},[33,542,543],{},"Traffic Permissions",[30,545,546,547,287],{},"Check the ",[33,548,549],{},"Allow List",[30,551,552,553,74],{},"Select your domain, then click ",[33,554,555],{},"Add to Allow List",[30,557,290,558,74],{},[33,559,560],{},"Confirm",[15,562,563],{},"Once your domain is whitelisted, events will start flowing normally.",[19,565,567],{"id":566},"why-is-my-custom-event-blocked-by-meta","Why is my custom event blocked by Meta?",[15,569,570,571,574,575,578,579,583,584,364,586,588],{},"An event with your own name, for example ",[93,572,573],{},"SpamLead"," from the class ",[93,576,577],{},"k-event-SpamLead",", can stay ",[265,580,582],{"href":581},"\u002Fen\u002Fglosarium\u002Fevent-blocking","blocked by Meta"," until the business owner confirms it. While it is blocked, you cannot use it for a custom conversion, a custom audience, or ad optimization. Standard events such as ",[93,585,428],{},[93,587,452],{}," do not fall under this rule.",[15,590,591],{},"Prerequisite: your Facebook account has full access to that pixel in the owner's Business Manager.",[15,593,594],{},[33,595,531],{},[27,597,598,607,612,626,637,647,659],{},[30,599,263,600,602,603,606],{},[33,601,270],{},", then click ",[33,604,605],{},"Datasets"," in the left menu.",[30,608,609,610,280],{},"Select your pixel, then open the ",[33,611,279],{},[30,613,614,615,618,619,622,623,74],{},"Scroll to ",[33,616,617],{},"Data restrictions",". Under ",[33,620,621],{},"Manage event blocking",", click ",[33,624,625],{},"Review",[30,627,628,629,632,633,636],{},"If the ",[33,630,631],{},"Acknowledge to continue"," dialog appears, read it, then click ",[33,634,635],{},"I acknowledge",". You declare that you only send data that follows Meta policy: no health data, no financial data, and no other sensitive data, the event name included.",[30,638,639,640,643,644,74],{},"On the ",[33,641,642],{},"Action required"," tab, tick the event name that you recognize, then click ",[33,645,646],{},"Next",[30,648,649,650,653,654,602,657,74],{},"Check the event name and the pixel name in the ",[33,651,652],{},"Event details"," dialog. Select ",[33,655,656],{},"Confirm the custom event",[33,658,560],{},[30,660,290,661,664,665,668,669,74],{},[33,662,663],{},"Done",". The event moves to the ",[33,666,667],{},"Confirmed"," tab with the status ",[33,670,671],{},"Confirmed by you",[466,673,675],{"title":674},"Confirm only the events you recognize",[15,676,677,678,680],{},"When you click ",[33,679,560],{},", your business declares to Meta that your system sends this event and that it follows Meta policy. If an event name is unfamiliar, ask your ad manager first.",[15,682,683],{},"Notes:",[66,685,686,692,698,705],{},[30,687,688,689,691],{},"This process does not ask for an event category. Select ",[33,690,656],{}," only.",[30,693,694,697],{},[33,695,696],{},"Inactive"," under an event name means the event did not arrive recently. The status changes again after the event arrives.",[30,699,700,701,704],{},"Did you block the wrong event? Open the ",[33,702,703],{},"Blocked"," tab, open that event, then request a review from Meta.",[30,706,707],{},"A button that you cannot click means your access to the pixel is not sufficient. Ask a Business Manager admin to give you full access to that pixel.",[19,709,711],{"id":710},"do-standard-events-need-confirmation-too","Do standard events need confirmation too?",[15,713,714,715,96,717,100,720,722],{},"No. The rule covers event names that you invented. Standard events such as ",[93,716,428],{},[93,718,719],{},"Contact",[93,721,452],{}," are already known to Meta, so you can use them for a custom conversion and for ad optimization immediately.",[19,724,726],{"id":725},"what-is-the-difference-between-a-custom-event-and-a-custom-conversion","What is the difference between a custom event and a custom conversion?",[15,728,729,730,734,735,737],{},"A custom event is the name of an action your system sends. A ",[265,731,733],{"href":732},"\u002Fen\u002Fglosarium\u002Fcustom-conversion","custom conversion"," is a rule you build on top of that event, for example counting only the ",[93,736,428],{}," events that come from one page. One event can feed many custom conversions, and you can only build the rule after the event is no longer blocked.",[19,739,741],{"id":740},"next-steps","Next Steps",[66,743,744,749,755],{},[30,745,746],{},[265,747,748],{"href":371},"Connect Meta CTWA with a Meta App token",[30,750,751],{},[265,752,754],{"href":753},"\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fmeta-emq","EMQ Score Optimization",[30,756,757],{},[265,758,760],{"href":759},"\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fcustomer-journey","View Customer Journey",{"title":119,"searchDepth":762,"depth":762,"links":763},2,[764,765,766,770,771,772,773,774,775,776,777,778,779],{"id":21,"depth":762,"text":22},{"id":60,"depth":762,"text":61},{"id":87,"depth":762,"text":88,"children":767},[768],{"id":146,"depth":769,"text":147},3,{"id":257,"depth":762,"text":258},{"id":302,"depth":762,"text":303},{"id":351,"depth":762,"text":352},{"id":397,"depth":762,"text":398},{"id":489,"depth":762,"text":490},{"id":513,"depth":762,"text":514},{"id":566,"depth":762,"text":567},{"id":710,"depth":762,"text":711},{"id":725,"depth":762,"text":726},{"id":740,"depth":762,"text":741},"platform-guides",null,"Complete guide on how to setup Meta CAPI for server-side tracking, improving data accuracy, and bypassing pixel blockers.","md",{},"\u002Fen\u002Fdocs\u002Fplatform-guides\u002Fmeta-capi",{"title":787,"description":57,"keywords":788,"canonical":785},"Meta Conversions API Guide | Konektor",[789,790,791,792,793,794,795,796,733],"meta capi","facebook conversions api","how to setup capi","server side tracking","facebook pixel","event blocking","blocked by meta","custom event meta",{"loc":785,"lastmod":798},"2026-09-11","en\u002Fdocs\u002Fplatform-guides\u002Fmeta-capi",[801,802,803,804,805,806],"meta","facebook ads","instagram ads","capi","pixel","server-side",true,"HfDbjVQsohq1FDeEeMK8MYc7z1Y8s0aWeJDRna6gvUI"]