Skip to main content
Use an official Plainrouter SDK to send consented conversions from your server and inspect their delivery. The SDKs call the Plainrouter Conversion API; they do not call Meta’s Graph API directly.

Choose your language

Each language guide covers installation, authentication, requests, and verification.

TypeScript

Typed operations and Zod schemas for server-side Node.js applications.

Python

Synchronous and asynchronous clients with typed request models.

Ruby

A client facade for sending events and reading delivery results.

Go

Typed requests with context-based authentication and error handling.
For a terminal workflow, start with the CLI quickstart, then use the command reference. To connect an AI agent to governed advertising workflows, use MCP setup.

Before you begin

Production requests require a Signals workspace secret stored on your server. Published clients retain names such as signalTrackerSecret and “tracker token” for this credential. An MCP workspace execution token is a separate credential and cannot authenticate Conversion API requests. See Authentication. To deliver conversions to Meta, connect the intended dataset and capture the required event consent. Without production setup, you can explore the request contract in the synthetic API sandbox.

Build your first integration

  1. Install and configure one client. Follow your language guide above. Pin its package version and keep the Signals secret out of browser bundles.
  2. Check access. Read recent events using the guide’s authenticated client. A successful empty response is valid; it does not prove that browser collection is installed.
  3. Verify ingestion. Use the SDK’s ingestion diagnostic. It records an identity-free verification event; it does not establish real arrival evidence or complete onboarding. See Verify Signal ingestion.
  4. Send a conversion and inspect delivery. Follow the Node.js and TypeScript recipe, or the purchase example in the Python, Ruby, or Go guide. Preserve the original event ID and payload on retries.
A new event’s 202 acknowledgement confirms ingestion. Check the event’s delivery trace separately: a delivery with status: "accepted" confirms destination acceptance. Acceptance does not establish attribution or improved advertising performance. See delivery status meanings.

What do the clients cover?

All four SDKs target signed API contract 0.5.0 and cover event creation and retrieval, ingestion verification, destination testing, delivery replay, reports, and user-data deletion. Package versions are independent of the API contract version. Review release notes before upgrading. For compatibility in published 0.5.x clients, see Read workspace identifiers. The CLI exposes nine API commands. It has no ingestion-verification or cursor-based event-listing command; use an SDK or REST for those operations. Install the CLI from npm, PyPI, or the official Homebrew tap. Choose one global installation so your shell runs the intended executable.

What if the integration does not work?

The language guides describe each client’s response and error handling. For terminal-specific failures, see CLI troubleshooting.