Every mandatory campaign attribute must be explicitly set
The requirementstatement
The mandatory campaign boolean attributes — embeddedLink, embeddedPhone, ageGated, directLending and numberPool — must each be explicitly true or false, never left unset.
- Severityseverity
- BlockingBLOCKINGBreaking this rule gets the submission rejected. There is no partial credit.
- When it bitesphase
- Gates approvalapprovalGet this wrong and the brand or campaign is refused at registration.
- What is checkedobject
- campaign attributes
- Where it liveslayer
- CampaignCAMPAIGN
- How Ekas settles itdetectability
- DeterministicDETERMINISTIC
- Settled in code from the values you submitted. No model involved, no judgement call, same answer every time.
- What the fix involvesfailureClass
- Fix the fieldRETRY_FIELD
- A better value in the form fixes it. Ekas can rewrite it and re-check.
- Who requires itauthorities
- TCRBandwidthAWS
- When it appliesapplicabilityText
- Applies to every 10DLC registration.
Why this rule existsrationale
How to fix itremediation
Set every attribute explicitly to true or false rather than leaving it unset — including the ones that are false. Done when your submission payload carries all five keys with boolean values, not when the form merely looks complete.
A compliant exampleexample
embeddedLink: false · embeddedPhone: false · ageGated: false · directLending: false · numberPool: false
Common mistakespitfalls
- A PATCH-style integration that sends only changed fields will drop every attribute the user did not touch, which is why this fails most often on resubmission rather than first submission.
Rules you will hit next
One other rule reads campaign attributes. Fixing one field to satisfy a single rule is how a resubmission trades one rejection for another, so read these before you change anything.
CMP-017 is one of 94 campaign rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.