Skip to main content
MARKETING is the highest-scrutiny, highest-cost template category. Meta uses it for anything promotional — offers, campaigns, re-engagement, newsletters — and bills it at a premium. Getting marketing templates approved on the first submit requires understanding the category boundaries, the opt-out requirement, and the category-migration behaviour. This page is the practical companion to the Template rules reference.

MARKETING vs UTILITY vs AUTHENTICATION

Meta categorises every template into exactly one of three buckets. Picking the wrong one means either a rejection, a silent re-categorisation, or a bill you did not budget for.

Decision tree

Signal words

If a UTILITY body contains any marketing signal words, Meta will either reject or migrate to MARKETING. Writing “Your order shipped — and here’s 20% off your next one!” is a MARKETING template, regardless of how you label it.

Billing differences

Meta moved to per-conversation pricing in 2024 and prices vary by recipient country. In every market, the relative ordering is stable:
  • AUTHENTICATION — cheapest, priced per message in some regions.
  • UTILITY — mid-tier, business-initiated transactional rate.
  • MARKETING — premium, typically 2–5× the UTILITY rate depending on market.
  • Service (user-initiated, 24h window) — free in most regions.
See Meta’s WhatsApp Business Platform pricing page for the current per-market rate card. Because a silent category migration from UTILITY to MARKETING can multiply your send cost, always inspect the post-approval category — not just the status — when reviewing a template.

Opt-out button requirement

EU and Brazil regulations (GDPR, LGPD) require every marketing message to carry a clear, low-friction opt-out path. Meta’s review team enforces this at the content-review stage for templates destined for those markets and strongly encourages it globally. The canonical pattern is a footer line plus a QUICK_REPLY button:
And in the buttons array:
Switchbord’s webhook worker recognises localised opt-out tokens (STOP, FERMA, PARAR, BLOQUEAR) and automatically flags the contact as marketing_opt_out = true. Subsequent campaign audiences exclude them by default.
An opt-out footer alone is not enough if the user cannot act on it. Make sure your inbox has automation that actually honours the reply — see Webhooks and opt-out.

Category migration

Meta may re-categorise a template during review. With allow_category_change: true (Switchbord’s default for MARKETING drafts), the template is moved silently instead of rejected.

When it happens

  • You submit as UTILITY but the content contains marketing signal words.
  • You submit as MARKETING but the content is actually a UTILITY update (less common, but happens).
  • Meta re-runs classification on already-approved templates and reclassifies post-hoc.

The webhook event

Meta fires message_template_status_update on the WABA webhook when status or category changes:
Detect a category change by comparing previous_category and new_category. In v22+ Meta also emits message_template_category_update for post-approval reclassification of a live template. Switchbord’s webhook worker:
  1. Stores both the submitted category and the Meta-assigned category on the templates row.
  2. Logs every migration to audit_log for billing reconciliation.
  3. Raises an internal alert when a UTILITY template is migrated to MARKETING (2–5× cost impact).

Best practices for high approval rates

  1. Put the sender in the first line. "Ciao Marco, GB Viaggi ha pensato a te..." — Meta’s reviewer needs to identify the business immediately.
  2. Avoid stacked emoji and exclamation marks. 🎉🔥💥!!! patterns trigger the spam classifier.
  3. No raw links in the body. Put URLs in buttons where Meta can parse them cleanly.
  4. One promotional idea per template. A template that pitches a sale AND announces new hours AND asks for a review will be rejected as vague.
  5. Realistic examples. Do not use "20" next to a % — bake the unit into the example ("20%"). See numeric-only-example.
  6. Opt-out everywhere. Footer line + quick reply, not just one.
  7. Set allow_category_change: true. Better a migrated approval than a rejection.
  8. Test in Italian first, translate second. GB Viaggi’s primary market is IT; approved IT templates clone cleanly to EN/DE. The opposite direction often trips on Italian-specific phrasing.

Sample marketing templates

These are the corrected bodies from BORD-336. All four passed review on the first resubmit. Copy them as starting points and adapt the variables.

Winback — 30-day lapsed customer

Seasonal — summer campaign

Referral — ask for a share

Flash sale — time-limited offer

Note how "20%" sits in the example with the % baked in — see numeric-only-example.

See also