1"use strict";(self.webpackChunkreddit_ads_api_site=self.webpackChunkreddit_ads_api_site||[]).push([[4724],{22510:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>g,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"guides/programs/capi/best-practices","title":"Best Practices","description":"Get accurate conversion data for your Reddit ads. This guide covers best practices for the Conversions API, including event deduplication and signal sharing.","source":"@site/docs/guides/programs/capi/best-practices.md","sourceDirName":"guides/programs/capi","slug":"/guides/programs/capi/best-practices","permalink":"/docs/v3/guides/programs/capi/best-practices","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Best Practices","sidebar_position":5,"description":"Get accurate conversion data for your Reddit ads. This guide covers best practices for the Conversions API, including event deduplication and signal sharing."},"sidebar":"tutorialSidebar","previous":{"title":"CAPI v2 to v3 Migration","permalink":"/docs/v3/guides/programs/capi/migration"},"next":{"title":"Reporting","permalink":"/docs/v3/guides/programs/reporting"}}');var t=s(74848),r=s(28453);const a={title:"Best Practices",sidebar_position:5,description:"Get accurate conversion data for your Reddit ads. This guide covers best practices for the Conversions API, including event deduplication and signal sharing."},o=void 0,d={},c=[];function l(e){const i={a:"a",admonition:"admonition",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Follow the API best practices."}),"\xa0Learn more about our\xa0",(0,t.jsx)(i.a,{href:"/docs/v3/guides/programs/capi/direct-integration",children:"general guidance"}),"."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Use the Conversions API and Reddit Pixel together."}),"\xa0This will improve conversion coverage, maximize campaign performance, and enable better targeting and optimization tools. Your measurement will be more resilient and adaptable to the shifting advertising landscape.","\n",(0,t.jsx)(i.admonition,{type:"note",children:(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.a,{href:"https://business.reddithelp.com/s/article/event-deduplication",children:"Event deduplication"}),"\xa0is required for advertisers using both the Reddit Pixel and Conversions API."]})}),"\n"]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Share as many matching signals as possible."}),"\xa0",(0,t.jsx)(i.a,{href:"https://business.reddithelp.com/s/article/about-match-keys",children:"Match keys"}),"\xa0are crucial to help attribute conversions to a Reddit ad engagement. These signals can be shared unhashed or pre-hashed. We strongly recommend sharing the IP address and click ID, and suggest including the email address, phone number, and user agent. If you\u2019re integrating CAPI with the Pixel, we recommend sharing UUID."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Set up CAPI with a conversion access token."}),"\xa0We recommend using\xa0",(0,t.jsx)(i.a,{href:"/docs/v3/guides/programs/capi/direct-integration",children:"this token"}),"\xa0over a\xa0",(0,t.jsx)(i.a,{href:"/docs/v3/guides/quick-start/create-dev-app",children:"developer access token"}),"\xa0because it\u2019s non-expiring and simple to generate."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Verify events before sending production traffic."}),"\xa0Learn more about event testing."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Stay within the rate limits."}),"\xa0You\u2019re limited to 1,000 requests/second, 1,000 events/request, and 10,000 events/second."]}),"\n",(0,t.jsxs)(i.li,{children:[(0,t.jsx)(i.strong,{children:"Avoid dual sending between versions."}),"\xa0Sending the same events in both v2 and v3 may cause event double-counting."]}),"\n"]})}function g(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.