The video tutorial: the same steps as this guide, in 6 minutes and with narration.
A pixel without a website
The classic pixel is a piece of code that lives on a website and tells Meta every time someone buys. In a WhatsApp funnel there is no website and no browser, so that code doesn’t exist. What there is, is this: when a customer matches one of your rules — reaching a chapter of the sales playbook, or your agent recording a sale — DarkFunnels sends Meta a notification (Meta calls it an “event”) through its Conversions API, the channel Meta offers for notifications that don’t come from a website. Along with the notification travel the data Meta needs to recognize the person: the phone number, the name and the country, always converted into a fingerprint that cannot be reversed (Meta never receives the data in the clear). What does not travel is the conversation. What it’s good for, in three sentences: Meta can optimize your campaigns for purchases and not only for conversations started, when it enables that objective on your account (further down we tell you when); you can normally build audiences of real buyers and lookalike audiences from them; and in Ads Manager you see purchases next to each ad, not just chats.Before you start: the three things to know
What you need to get from Events Manager
Three pieces of information, all three from the same place: Meta’s Events Manager (atbusiness.facebook.com/events_manager). If your ad account
already has a pixel, skip to step 2.
To get there, from Ads Manager hover over the icon bar on the left: the menu
expands with the names and Events Manager is at the bottom.
The screenshots are from the Spanish interface: the DarkFunnels dashboard is in
Spanish, and Meta’s own screens appear in whatever language your Meta account
uses.
The Ads Manager left-hand menu, expanded. “Events Manager” is the second-to-last option.
Create the dataset, if you don't have one
The Events Manager left-hand panel: “Connect data” is the first option.
“Connect data” offers Web, App, Offline, CRM and Messaging. For a number connected by QR, the option is Web.
Meta proposes a paid partner; “See other options” reveals “Set up manually”, which is the route with no extra code.
Copy the pixel ID
The Settings tab shows the ID that goes into DarkFunnels.
Generate the access token
The “Generate access token” button. If it's greyed out, you're missing the permission on the business portfolio.
EAA, and Meta
warns that it does not store it: if you close the page without copying
it, you generate another one.The token appears only once, with the notice to keep it somewhere safe (here, masked).
Copy the test code
test_event_code (it starts with TEST). That’s what lets you check the
connection instantly. You can save it in the pixel or paste it only when you
test.The test code lives inside the “Website” channel, in the server events block.
Connect it in DarkFunnels
Open the pixels dashboard
The Pixels tab: the collapsed help at the top and, below it, each pixel with its rules and its sends.
Fill in the form
The creation form. The token is stored encrypted and is not shown again.
Save and test the connection
“Test connection” asks for the code if it isn't saved; every attempt is recorded in “Recent sends”.
Remove the test code when you're done
The rules: when each event is sent
Each rule is a sentence: when a customer in this funnel does such a thing, Meta receives such an event. You write it with Add rule:Choose the funnel
Say what has to happen
Leave the suggested event or change it
The rule reads as a whole before you save it: funnel, chapter and event.
- Chapter 1 can’t be chosen. Every contact is born there, so nobody “reaches” it. Rules start at 2.
- The rule points at the chapter number, not at its name. If you reorder or delete chapters in the sales playbook, the rule keeps pointing at the same number: the dashboard reminds you of this when you create it, and it’s worth reviewing your rules after touching the playbook.
- A jump skips the ones in between. If your agent moves the customer from chapter 2 to 4, the rule for 3 doesn’t fire.
- Each arrival is sent once. The system records what it has already delivered and doesn’t repeat it. If the customer leaves the chapter and comes back in later, that’s another arrival and another notification goes out. If two rules on the same pixel match the same occurrence, the first one you wrote wins.
- Moving the customer between chapters by hand also counts. If you drag a customer in the funnel or change their chapter from their profile, the rule fires just as if your agent had done it.
- Voiding a sale doesn’t subtract anything. The Conversions API has no
refund notification and doesn’t accept subtracting a purchase: the
Purchasealready sent stays. - With click attribution, Meta understands a short list of events (purchase,
lead, cart, order…). We translate
Leadinto the name Meta expects there; an appointment or an event with its own name may not count in that mode.
What each send tells you
Recent sends, on the pixel card, is the proof of life: the last 20 notifications, one row each with its outcome. You don’t have to ask anyone for a technical log: here you see what happened to each one.The ad click
When a customer messages you from a “Send WhatsApp message” ad, their first message usually carries hidden the ad they came from and a click identifier. We store it alongside the contact without you having to do anything (you won’t see it on their profile: only the send to Meta uses it), and if the same customer comes back through another ad, the latest one is kept. With that there are two ways of telling Meta about the sale:- By phone number, which is the usual one. Meta receives the fingerprint of the number and matches it to the person; if that person saw or tapped your ads, it attributes it with its usual rules. It works with a number connected by QR as long as the customer writes with a visible number and with a country: the ones that arrive with a hidden number are skipped.
- By the exact click, if you also save the WhatsApp Business account ID in the pixel. That ID belongs to numbers that are on the WhatsApp Business Platform (Meta’s official API, the one for numbers registered through a provider or with Meta directly), and it’s visible in Business settings → Accounts → WhatsApp accounts. If you connected by QR, you normally won’t have it: leave it empty. With both pieces of information, the notification goes out marked as a messaging conversion and Meta hangs it off the specific ad.
In Ads Manager
For purchases to appear in the campaign results, the ad has to read from the same dataset. Edit the click-to-WhatsApp ad and scroll down to the Tracking block, below the welcome template: tick Website events and check that the dataset shown is the one you connected here. Click Publish.The ad's Tracking block, before ticking anything.
Ticking “Website events” reveals the dataset with its ID. The “Your Meta pixel is not active” notice is normal: there is no website loading the pixel; the notifications arrive from the server.
Common problems
“Generate access token” is greyed out
“Generate access token” is greyed out
In “Connect data” I chose “Messaging” and it says no Page meets the requirements
In “Connect data” I chose “Messaging” and it says no Page meets the requirements
“Test connection” says Meta received it, but I don't see anything in “Test events”
“Test connection” says Meta received it, but I don't see anything in “Test events”
Meta rejected the event: “Invalid OAuth access token”
Meta rejected the event: “Invalid OAuth access token”
A customer bought and there's no send at all
A customer bought and there's no send at all
Almost everything comes out as “Skipped”
Almost everything comes out as “Skipped”
I want to change the token or the name
I want to change the token or the name
I don't want to send anything yet
I don't want to send anything yet
What the pixel doesn’t do
So you don’t get a surprise:- It doesn’t send the sales you record by hand from Customers. Nor the sale the system records on its own when an order your agent didn’t record in the chat is charged: for Meta only what the agent recorded exists.
- It doesn’t subtract anything when a sale is voided.
- It doesn’t send notifications more than 7 days old, nor while the pixel is paused or has no rules.
- It doesn’t pass Meta the content of any conversation. What does travel: the fingerprints of the phone number, the name, the country and of an internal contact identifier; on sales, the amount, the currency, the product code and the order number; and, if you use click attribution, the click identifier and the one for your WhatsApp Business account, which are Meta’s data, not yours.
- It doesn’t move money and doesn’t touch your campaigns or your ads: it only sends notifications to Meta.