Set up tracking on your site

Two integration paths - a one-line frontend snippet, or a server-side SDK that survives ad blockers. Pick per channel.

Funnelion.ai attributes every contact a visitor makes - phone call, email reply, form submission, Telegram message - back to the campaign that brought them to your site. Each channel has its own setup, but the integration shape is consistent:

  • Configure the channel in the dashboard (pool, addresses, routing rules).
  • Pick an integration path: the JS snippet (fast, browser-side) or the PHP SDK (ad-blocker proof, server-side).
  • Mark the elements on your site that should be swapped (data-funnelion="<Zone Name>").

Pick a channel

Two integration paths

Frontend snippet

One <script> tag on your site. The snippet runs in the visitor’s browser, talks to dash.funnelion.ai, swaps any element you mark with data-funnelion, and binds submit listeners to your forms. Zero backend work. The trade-off: ad blockers, content blockers, and strict CSPs can cut the snippet off before it loads, leaving the visitor with your static fallback content.

Backend SDK

Your server resolves Funnelion.ai at page-render time over a bearer-authenticated API and ships HTML with the addresses already swapped. The visitor’s browser never has to reach Funnelion.ai, so ad blockers and CSPs are not in play. Requires the funnelion/sdk Composer package (PHP) and one env var on your server.

Both paths share the same dashboard configuration - you can switch later without re-configuring. If you’re running PHP and you can afford a 0.5 s timeout on page render, the backend path is the recommended default.