Canonical index. Measurement almost never breaks from a bug — it breaks from a wrong setting that gives no warning. Each row: symptom → cause → what to do. Items marked 🔴 fail silently (no on-screen error; the number just doesn’t add up).
11.1 Acquisition & ad
| # | Symptom | Cause | What to do |
|---|---|---|---|
| 1 🔴 | CPL/ROAS stay “—” on a campaign running on Meta | Channel ≠ Meta, OR Meta channel without the campaign ID filled in. Cost only syncs with the Meta channel and the Ads Manager ID | Make sure the channel is Meta and open Editar campanha → paste the Meta campaign ID. There’s no automatic match by name (§5.1) |
| 2 🔴 | Everything lands in “Sem atribuição” on the scoreboard | Ad without the URL parameters | Paste utm_content={{ad.name}}&utm_term={{adset.name}}&utm_id={{ad.id}} (§5.4) |
| 3 🔴 | Nothing tracked; everything “Orgânico” | The ad’s destination is not the /r/ link |
Use the /r/ link as the destination (§5.2) |
| 4 🔴 | Creative blank even with the right landing page | Your landing doesn’t pass the utm_* through to the /r/ button |
Make sure they’re passed through, or point the ad straight to /r/ (§5.4) |
| 5 🔴 | Leads arriving at the WhatsApp of someone you turned off | Blocked the operator, but their links keep routing | Reassign/disable their links before blocking (§4.6) |
| 6 | Visitor sees “this link expired or doesn’t exist” | Link paused/deleted with the ad still pointing to it | Pause the ad first; only then touch the link (§5.2) |
| 7 | Click lands on “indisponível” | Tracking link without an operator | Assign an operator to the link (§5.2) |
| 8 🔴 | Customer gets a raw “Olá {nome}” | Invalid placeholder (only 6 work) | Use only the 6: {utm_source} {utm_campaign} {utm_content} {utm_term} {campaign_name} {tracking_link_slug} (§5.2) |
| 9 | I can’t save the operator’s WhatsApp (or a legacy number would route wrong) | Registration requires a valid BR mobile (area code + 9 — +55 DD 9XXXX-XXXX); a non-BR/malformed one is rejected on creation/edit with an error. Only legacy data would slip through and route wrong |
Enter a valid BR number; non-BR isn’t supported today. Suspect legacy data? Edit the operator and re-save |
11.2 Integrations
| # | Symptom | Cause | What to do |
|---|---|---|---|
| 10 🔴 | CAPI stopped sending conversions | Credential disabled/unverified/revoked, OR Meta disconnected | Check “Envio CAPI: Ativo”; reconnect Meta if needed (§7.2) |
| 11 🔴 | Cost frozen / ROAS out of date | Meta token expired and nobody reconnected (banner state D) | Reconnect before the token expires (<7 days warns you) (§7.1) |
| 12 🔴 | Connected Meta but no ad account came in | Facebook user without access to the account (banner state C) | Reconnect with the user who can see the account in Ads Manager (§7.1) |
| 13 🔴 | CTWA leads with no cost, no CPL/ROAS, no creative | CTWA enters as Meta paid in the funnel, but with no cost/creative (it doesn’t go through /r/); active only on Cloud |
To get cost and creative, use the /r/ link as the destination instead of native CTWA (§5.4) |
| 14 🔴 | An operator’s conversations don’t correlate | Operator registered with a WhatsApp different from the connected number — the match is by number | Register the operator with the same number connected in WhatsApp connect (§7.4) |
| 15 | Two WhatsApp connections on the same number | Migrated Evolution→Official; Evolution doesn’t turn itself off | Disconnect Evolution manually after confirming the Official one (§7.4) |
| 16 | Google campaign cost doesn’t show up | Expected: Google still has no cost import | Treat Google CPL/ROAS as partial (§7.6) |
11.3 Public & operation
| # | Symptom | Cause | What to do |
|---|---|---|---|
| 17 | Published bio looks abandoned | Published without buttons | Add at least one button before publishing (§6.1) |
| 18 | My click test doesn’t count | Bot/preview or the click limit (10/60s from the same IP) | Test from your phone, without reloading several times; the real click counts (§6.3) |
| 19 | “Today/Yesterday” look off | Wrong company timezone | Adjust the company timezone |
| 20 | Cost only shows up the next day | Expected: the cost sync runs overnight (~5–6am) | Wait for the next cycle; if it persists >1 day, check the channel (§5.1) and the Meta banner (§7.1) |
11.4 “No-gaps activation” script (do it in this order)
- Create the campaign on the right channel (Meta, if it runs on Meta) — item 1.
- Create the tracking link with an operator and a message using only the 6 placeholders — items 7, 8.
- Check the operator’s WhatsApp in BR format and matching the connected number — items 9, 14.
- On the ad, use the
/r/link as the destination and paste the URL parameters — items 2, 3, 4. - Use Validar oferta to check destination + message + tagging before publishing (§5.3).
- Connect Meta with the right user, confirm the green banner, and paste the Meta campaign ID into each campaign (Editar campanha) — otherwise cost won’t add up — items 11, 12, 1.
- If you use CAPI, confirm “Envio CAPI: Ativo” — item 10.
- Publish. Do not pause/delete the link or block the operator without first handling the live ads — items 5, 6.