Paste one snippet. Connect a Pixel.
That is the install. Pixel ID and CAPI token stay in the Caply dashboard. Then Match Forecast, Ads Coach, and Ghost run on the sales we actually receive.
<script>
!function(c,o,n,v,e){c.Caply=e,c[e]=c[e]||function(){(c[e].q=c[e].q||[]).push(arguments)};var s=o.createElement("script");s.async=true;s.src="https://trycaply.com/v1.js";var t=o.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t)}(window,document,"script",0,"cv");
cv("init", "YOUR_PIXEL_ID", "YOUR_API_KEY");
cv("track", "PageView");
</script>PageView is not Purchase. Fire cv("track", "Purchase", { value, currency, email }) from checkout with a real order value. Placeholders come from Dashboard → Pixel and a source API key.
What exists after that
Purchases reach Meta
Caply sends checkout and lead events from our servers. Meta can still see the sale when the Pixel is blocked.
How likely Meta is to recognize the sale
Each sale gets a 0–10 Match Forecast. Money events under 5/10 are unmatched — purchases Meta may miss. That is not Meta’s delayed match score and not Ads Manager ROAS.
Compare to Ads Manager later
On Pro/Team you can connect Ads Manager and see sales we sent vs sales Ads Manager counted, by day. Empty until then — never an invented campaign table.