An extraction prompt for ad data usually asks for a set of fields: headline, body, call to action, price, landing page URL, and the audience or offer the ad promises. Message match auditing depends on exactly those fields, because the review asks whether a destination page continues the same promise across product, offer, proof and next action that the ad made the message match checklist. If the extractor returns an empty object, downstream code has a row with a schema shape but no content.
That row is dangerous in three ways. A scoring job that compares ad promise to page headline will compute a similarity against an empty string. A deduplication step may treat all empty rows as one cluster. A dashboard counting coverage will show 100 percent extraction success because every input produced valid JSON.
None of those failures announces itself. The extraction reports success at the syntactic level and fails at the semantic level. This is a known pattern with human-oriented JSON contracts: when a schema contains ambiguous or incomplete specifications, models struggle with entity boundaries and hallucinate values or fail to adhere to the schema the PARSE paper. The paper's response is to treat the schema itself as an LLM contract and to add reflection-based extraction with static and LLM-based guardrails, reporting that combined framework improvements reduce extraction errors within the first retry the PARSE paper. The skip instruction is the cheapest version of that guardrail you can ship today.
There is a second reason to care. Any audit built on ad copy is making factual claims about what advertisers promised, and a guessed price or a guessed discount contaminates that record. Regulators treat omissions as material when they leave a consumer with a misimpression the FTC advertising guide. If your extractor fills a missing price with a plausible number, your downstream analysis is now making claims that no page supports. A skip is the honest output.



