What we check.
Every check below runs on your browser — instantly, locally, no data sent anywhere. These are the rules Meta actually rejects or re-categorizes templates for, sourced from Meta's official template categorization docs.
✓Variable syntax — proper {{1}}, {{2}} format, sequential numbering, no adjacent variables
✓Variable position — Meta rejects variables at the start or end of the body
✓Sample values required — every {{n}} must have a realistic, non-placeholder example
✓Length limits — body 1024, header 60, footer 60, button text 25, template name 512
✓Promotional words in utility — Meta auto-recategorizes (and bills as marketing) for words like "sale", "discount", "מבצע", "הנחה"
✓Welcome / signup confirmations in utility — "thanks for signing up", "ברוך הבא", "תודה על ההרשמה" are marketing unless they reference a specific transaction
✓CTA verbs in utility — "visit", "shop", "browse", "discover", "בקרו", "הזמינו", "גלו" → Meta re-categorizes as marketing
✓Missing transaction specificity in utility — utility templates must reference a specific user-initiated transaction (order, booking, payment)
✓Percentage values in utility — discount-style numbers trigger re-categorization
✓Cross-sell / upsell language — "while you're here", "by the way", "בנוסף", P.S.-style additions
✓Re-engagement language — "we miss you", "long time no see", "התגעגענו" — pure marketing
✓Vague / generic body — "we have news", "important update" without specifics → Meta rejects as unclear
✓URL in body — Meta wants links inside CTA buttons, not message text (especially homepages)
✓Excessive caps — too many capital letters reads as spam
✓Excessive emoji / punctuation — !!!, ???, emoji spam
✓URL shorteners — bit.ly, tinyurl, etc. trigger automated rejection
✓Placeholder text — "test", "lorem ipsum", "asdf", "בדיקה" in production templates
✓Forbidden content — alcohol, weapons, gambling, adult, regulated industries (English + Hebrew)
✓Phone numbers in body — including Israeli formats. Meta wants these inside Call buttons
✓Authentication template rules — must contain OTP variable, no marketing copy, no URL buttons
✓Mixed languages — Hebrew + English in the same body triggers rejection
✓Whitespace formatting — multiple spaces, weird line breaks, trailing whitespace
✓Template name validity — lowercase letters, numbers, and underscores only
✓Button limits — max 3 buttons, max 25 chars each, URL & phone format
✓Suspicious domains — non-HTTPS URLs, IP addresses, unusual TLDs in button URLs
✓Birthday / anniversary patterns — these are marketing, not utility, even when personalized