Meta — manual setup
Manual flow for connecting Meta's Conversions API. Use this when OAuth doesn't work for your Business Manager — common for agency-managed Business Managers, accounts with custom roles, or pixels owned by a different business than your AdsPing-linked account.
Before you start
Make sure these three things are true. If any aren't, fix them first — otherwise the steps below won't complete.
- You have admin access to the Business Manager that owns the pixel. "Owns" means the pixel was created inside that Business — visible at business.facebook.com/settings/owned-pixels. Personal Facebook accounts can't generate Conversions API tokens — pixels need to live inside a Business.
- The pixel exists and is associated with your domain. If you don't have one yet, create it: Events Manager →
+ Connect Data Sources→Web→Connect→ name + URL. - (Recommended) Your domain is verified in Business Manager. Domain verification isn't strictly required for Conversions API to forward events, but it unlocks Aggregated Event Measurement (AEM) — which you need for iOS 14.5+ campaigns. Verify at business.facebook.com/settings/owned-domains.
Open Meta Events Manager
Sign in with the email tied to your Business Manager. Personal Facebook accounts that aren't linked to a Business can browse Events Manager but can't generate API tokens.
Direct link: business.facebook.com/events_manager2/list/dataset. If Facebook redirects you to a personal feed, you're not signed in to Business Manager — switch accounts via the avatar in the top-right.
Note:If you manage multiple Business Managers (common for agencies), Events Manager scopes to one at a time. The Business name is shown in the top-left header — click it to switch.
Meta Events Manager — Business switcher
Top-left dropdown shows the active Business Manager. Click to see the list of Businesses you have access to. Real screenshot to be inserted here.
Locate your dataset (formerly "pixel")
Events Manager opens to the "Data sources" list. Each row is one pixel/dataset.
Click the row that matches your domain. If you have many datasets and aren't sure which is which, the dataset name + URL hints are usually enough. Pixel IDs that match your install snippet on your site (fbq('init', '…')) are the ones to pick.
- ◉Data sources
- ✓Custom conversions
- ⚙Partner integrations
- ⚙Events Manager Settings
Data sources
Click a row to open the dataset detail
Acme Inc — Web Pixel
Dataset ID · 1234567890123456 · acme.com
Acme Inc — App SDK
App ID · 9876543210987654
Old test pixel
Dataset ID · 5555555555555555
Meta Events Manager — Data sources list
Real screenshot of your Events Manager Data sources list. Useful so users see exactly which row layout to look for.
Copy the Pixel ID (Dataset ID)
The 15-16 digit numeric ID that uniquely identifies your pixel. It's the same value Meta calls "Pixel ID" in older UI and "Dataset ID" in the newer rollout.
The ID appears in three places on the dataset detail page:
- In the URL.
business.facebook.com/events_manager2/list/dataset/1234567890123456 - In the page header subtitle, right under the dataset name.
- On the Settings tab → "Dataset" section, with a copy-to-clipboard icon.
Any of the three is fine — pick the easiest one for you.
Acme Inc — Web Pixel
Last 7 days
2,431
+12% events
Event Match Quality
7.4 / 10
Browser + Server
Active events
8 types
PageView, Lead, …
Meta Events Manager — dataset detail page header showing Pixel ID
Capture the top of the dataset detail page so the Pixel/Dataset ID location is unambiguous. Highlight or arrow it if possible.
Note:Old test pixels reuse 16-digit IDs. Always copy from the dataset you actually use in production. Mismatched IDs are the #1 reason new setups don't show events.
Generate an access token
Settings tab → scroll to "Conversions API" → click "Generate access token". Meta shows the token exactly once — copy it the moment it appears.
Open the Settings tab (last tab in the row). Scroll past the "Dataset" basics section until you see Conversions API. Inside that block, the "Set up manually" option (or simply "Generate access token") is what you want.
Conversions API
Send web events server-side, bypassing browser tracking limitations
Use the Conversions API to share web events directly from your server. This complements the browser pixel and helps you recover events that ad blockers and iOS 14.5+ tracking limitations would otherwise drop.
Set up via partner
Pick from a list of integrations (Shopify, Zapier, …). AdsPing isn't in this list.
Set up manually
Generate an access token to use with your own server. ← pick this for AdsPing.
Clicking "Generate access token" opens a dialog with the token, plus an option to attach a description (so future-you can tell which integration it's for).
Generate access token
Use this token with your custom server-side integration. Treat it like a password — it has full read/write on this dataset.
Description (optional)
Your access token
⚠ Save this somewhere safe — Meta won't show it again. If lost, generate a new one.
Meta Events Manager — Conversions API token generation modal
Capture the dialog that pops up when you click 'Generate access token'. Mask the actual token value before sharing — just show the dialog layout.
Paste both values into AdsPing
Pixel detail page → Meta card → Manual setup. Two fields, two paste-and-save.
Meta CAPI — Manual setup
Server-side conversion forwarding to Meta CAPI
The 15–16 digit number from step 3 above
The long string from step 4 — usually starts with EAA...
You'll fill this in later when testing — see step 6
When you click Save, AdsPing immediately calls Meta's Graph API at GET /v20.0/{pixel_id} using your token. If the token is valid and has access to the pixel, the Meta card flips green within ~2 seconds. If not, AdsPing surfaces the exact error (e.g. (#190) The access token could not be decrypted) so you know what to fix.
Note:AdsPing encrypts the token with AES-256-GCM before storing it. Plaintext is never written to disk or logs — even our own ops team can't read it back.
Verify the connection
Don't fire fake conversions into your production attribution data. Use Meta's Test Events tab and AdsPing's per-pipeline Test Event Code to verify before going live.
- Go to Meta Events Manager → your dataset → Test events tab.
- Copy the test event code shown at the top (format
TEST12345). - In AdsPing → pixel detail → Pipelines section → click the pencil on the Meta pipeline.
- Paste the code into Test Event Code field → Save.
- The pipeline gets an orange "Test mode" badge in the list — visual confirmation events are routed to Meta's test stream.
- Trigger an event on your site. Within ~2 seconds it should appear in Meta's Test Events tab with source =
Server. If your browser pixel is also installed, you'll seeBothwith a Deduplicated badge. - When verified, clear the Test Event Code on the AdsPing pipeline → Save. Production events flow into your normal attribution from then on.
Test events
Validate setup without affecting production reporting
Your test code: TEST12345
Send any event with this code in the body and it'll show up here instead of production reporting.
Just now · event_id=abc-123 · em ✓ ph ✓ fbp ✓
2 seconds ago · event_id=def-456 · em ✓ ph ✓ fbp ✓ fbc ✓
Both · Deduplicated means AdsPing's server-side fire and Meta's browser pixel are arriving with the same event_id and Meta merged them. That's the gold standard — server reliability with browser fingerprint match signals.Common issues
(#190) The access token could not be decrypted
The token you pasted is malformed (extra whitespace, partial copy) or was revoked. Go back to step 4, generate a fresh token, and paste again. Make sure you copy the entire string — Meta's token boxes have horizontal scroll that can hide the tail end.
(#200) Permissions error
The token is valid but doesn't have ads_management on the dataset. Two possible fixes:
- The user who generated the token isn't a pixel admin — go to Business Manager → Owned Pixels → click the pixel → Add People → grant
Manage. - The pixel isn't owned by the same Business as the user. Move the pixel to the right Business (or generate the token from a user inside the owning Business).
Events look correct in AdsPing but not in Meta
- Test Events tab requires a Test Event Code — without it events go to production, not Test Events.
- Meta's production reporting has 1-3 minute delay during peak hours. The Test Events tab is real-time though.
- If
Diagnosticstab shows your events but they're flagged with warnings (e.g. "missing user_data fields"), match quality is low — fix the underlying data issue (typically missing email/phone capture in the form).
Match Quality below 6
- The single biggest contributor:
email+phoneon form-submit events. Make sure your form fields use the standard attributesname="email"andname="phone"— pb.js scrapes these automatically. fbpcookie not present = browser pixel never loaded on this user's session. Check that pb.js is in<head>(not bottom-of-body) and that pixel auto-injection is firing.fbcclick ID requires the visitor to have arrived with?fbclid=in the URL. Direct visitors won't have it — that's normal and not fixable.
System User token (advanced — recommended for production)
Tokens generated through the "Generate access token" UI button (steps 4 above) are User Access Tokens — they belong to you personally. If you leave the company, get logged out, or rotate Facebook passwords, the token can stop working without warning.
For long-running production setups, generate a System User Access Token instead. System Users are non-human Business accounts; their tokens never expire and survive staff turnover. The setup is two extra clicks.
Create a System User
- Go to business.facebook.com/settings/system-users.
- Click + Add → name it
adsping-prod(or similar) → Role: Admin. - Save.
Grant pixel access to the System User
- Click the System User you just created → Add Assets → Pixels.
- Pick your pixel → set permission to Manage Pixel (= the toggle for full read/write).
- Save.
Generate a token
- Same System User detail page → Generate New Token.
- Pick the App: any Meta app you have access to (or create a stub one).
- Permissions: tick
ads_management+business_management. - Token expiration: Never.
- Generate → copy the token.
Paste this System User token into AdsPing's Meta card (same field as the User Token in step 5). Same token format, same Graph API endpoints — AdsPing can't tell them apart, but Meta's backend trusts the System User token indefinitely.
Next
- Set a Test Event Code — verify Meta receives events before going live.
- Diagnostics — what to do when events arrive but match quality is low.
- Wire up TikTok manually — same shape, slightly different terminology.