- The destination is assessed on its own terms. A clean creative does not carry a page that fails.
- The approval stage looks at four things: whether the page returns properly, whether it matches what the ad promises, whether legal and contact information exists, and whether one URL returns one body of content across contexts.
- Snapchat opens destinations in an in-app webview. Pages that depend on a referrer, third-party cookies or a desktop user agent can render blank or partial there, and that reads as a page that does not work.
- After a disapproval, the useful move is not rewriting copy but fetching your own page the way the ad reaches it: mobile user agent, no referrer, no cookies, from the target country. Most rejections reproduce immediately.
- One URL returning the same substance to everyone solves this entire class of problem: keep personalization at the presentation layer and leave the offer and the claims alone.
The destination is checked separately from the creative
Snapchat's ad approval runs on two parallel tracks. One assesses the creative itself — image, video, copy, and whether the category needs an additional permission. The other fetches the URL the ad points to and assesses it as an object in its own right. An ad goes live only when both clear. When the second one does not, the notice an advertiser receives is often fairly generic, while the actual cause sits on the page.
This distinction matters because it sets the order of investigation. Creative rejections usually point at something specific and are quick to act on. Page-level rejections often do not name an element, and an advertiser who treats them like creative problems can go several rounds without touching the real cause. Establishing which side the rejection lands on removes most of the wasted edits.
What the approval stage actually looks at
From the destination's point of view, the approval stage is not mysterious: it issues a request, assesses what comes back, and compares that against what the creative promises. What is worth knowing is which dimensions it weighs.
| Dimension | What is required | Typical failure |
|---|---|---|
| Reachability | The URL returns a normal status and complete content, and does not fail based on source, region or device | The page errors for requests without a referrer, or is only reachable from certain countries |
| Consistency | One URL returns the same substance in every context | The offer, product or promise an automated fetch receives differs from what a user receives |
| Relevance | Page content matches what the creative promises | The creative promotes a specific product and the page is a generic homepage or an unrelated category |
| Completeness | A complete commercial page: concrete product or service information, contact details, terms and privacy pages | A thin intermediate page, or missing legal pages and a working contact route |
Consistency behaves differently from the other three. The first three are quality issues: fix and resubmit. Consistency is treated as a policy matter, and the path it follows is not the same. That boundary is set out in full in Snapchat Ads landing-page routing: how detection works, policy risks and compliance, which is the companion piece to this one.
The six disapproval reasons that account for most rejections
1. The page did not return properly
The most common and the most underrated. It looks fine in the advertiser's own browser because that browser carries a referrer, carries existing cookies, and sends a desktop user agent. The request that reaches the approval stage may carry none of those. Any logic that branches into an error under those conditions — a regional restriction, a required parameter, an over-tight filtering rule — surfaces as a page that will not open.
2. The destination does not match the offer
The creative shows a specific product and price; the tap lands on a brand homepage, or on a category page two clicks away from that product. This is common in commerce accounts and is usually not deliberate — it is media buying and site building not lining up. The fix is direct: each creative points at the page it actually promises.
3. Missing legal and contact information
Terms, privacy policy, a working contact route, and the operating entity. This class is entirely preventable, yet accounts for a meaningful share of first-submission failures — particularly on single pages built with landing-page builders, whose default templates frequently do not include any of it.
4. The category requires a permission the account does not hold
Finance, health, gambling and crypto are restricted on most platforms and need a pre-granted permission, and the page content is what determines which category something falls into. Sometimes an advertiser believes they are running an ordinary product while one sentence on the page pulls it inside a restricted category's boundary.
5. Claims beyond what the product supports
Guaranteed earnings, absolute efficacy, unconditional outcome promises. These get flagged even when the page is perfectly consistent across every context: consistency and claims are two independent lines of assessment.
6. One URL returning different content
The first five are quality issues; this one is a policy issue. The test is not whether a page personalizes but whether the substance an automated fetch receives matches what a real user receives. Currency, language, layout and stock are outside it; a materially different offer, product or promise is inside it. The full boundary is in the red lines of traffic routing and where personalization ends and routing begins.
The in-app webview creates failures desktop testing cannot show
This is the most practical difference between Snapchat and the desktop-first platforms. When a user taps an ad, the destination loads inside Snapchat's in-app webview rather than the phone's default browser. Three properties of that environment affect how a page behaves: a different user agent string, restricted storage and third-party cookie behavior, and frequently no referrer at all.
The result is a class of failure that exists only there: single-page apps that blank out because initialization depends on localStorage; flows that cannot complete because the session needs a third-party cookie; filtering rules that treat a missing referrer as a suspicious signal and block ordinary Snapchat traffic along with everything else. None of these reproduce on a desktop browser, which is why self-testing so often comes back clean. The full inventory of these environment differences is in mobile webviews, referrers and fingerprinting.
An over-tight filtering rule is self-inflicted damage: it blocks invalid traffic, real users arriving from an in-app webview, and the approval-stage request alike. On calibrating that, see tuning pass rates between too strict and too loose.
What to do after a landing-page disapproval
There is only one useful order: reproduce first, then change. Fetch your own page the way an ad actually reaches it — mobile user agent, no referrer, no cookies, issued from the country being targeted — and look at what comes back. Most rejections reproduce immediately under those conditions and never appear when the page is opened by hand in a browser.
- Fetch the destination with a mobile user agent, no referrer and no cookies, and confirm a complete page comes back rather than an error or a stripped version.
- Repeat once from each country in the campaign to confirm there is no regional branch.
- Line up every promise in the creative against the corresponding content on the page.
- Confirm terms, privacy, contact details and the operating entity are present and reachable.
- Resubmit only after an actual change. Repeatedly resubmitting an unchanged page is the fastest way to turn one rejection into an account-level pattern.
Building a destination that clears the check first time
Everything above collapses into six configuration choices, none of which conflict with each other:
- One canonical destination per ad, containing the thing the creative promises.
- That destination is a complete commercial page rather than an intermediate one: concrete product or service information, terms, privacy, contact details, operating entity.
- The page does not need a referrer, third-party cookies or a desktop user agent to render, verified inside an in-app webview.
- Tracking parameters feed measurement and attribution only, and never render decisions.
- Personalization stays at the presentation layer — currency, language, layout, stock — while the offer and the claims stay identical for everyone.
- Keep exportable access and decision logs, so a question is answered with evidence rather than explanation.
Conversion optimization does not conflict with any of this. Same-URL bucketed testing routes every visitor by one rule, approval-stage requests included, and every variant is a real buyer-facing page, so a comparison registers no material difference — the method is in same-URL testing methodology. For how the platforms differ on this line, see the platform-by-platform policy comparison; to check your own page for consistency, see how to check whether a page stays consistent across contexts.
Frequently asked questions
Does Snapchat check the landing page or only the ad creative?
Both. The creative is checked against the usual content standards, and the destination is fetched and assessed on its own — whether it returns properly, whether it matches what the ad promises, whether the required legal pages exist, and whether it behaves the same way across contexts. Campaigns held at the approval stage purely because of the page, with nothing wrong with the creative, are common.
What are the most common landing-page disapproval reasons?
Six: the page did not return properly, the destination does not match the offer, legal and contact information is missing, the category needs a permission the account does not hold, claims go beyond what the product supports, and one URL returns different content. The first five are quality issues; the last is treated as a policy matter.
Why do pages that work on desktop fail inside Snapchat?
Snapchat opens destinations in an in-app webview rather than the device's default browser. That environment sends a different user agent, restricts some storage and third-party cookie behavior, and frequently arrives with no referrer. Any page that treats those signals as prerequisites for rendering can go blank, partial, or into an error branch there — which reads from the other side as a page that does not work or one that behaves inconsistently.
Is regional or language personalization allowed?
Yes. Currency, language, layout and stock differences are ordinary commerce and are expected on any page serving multiple markets. The line sits at the offer and the claims: the product, price and promise an automated fetch receives should match what a user receives at that URL. Presentation may vary; substance should not.
What is the first step after a disapproval?
Reproduce, not rewrite. Fetch your own destination the way the ad reaches it — mobile user agent, no referrer, no cookies, from the target country — and look at the response. Most rejections are visible immediately under those conditions. Fix the specific cause, then resubmit; repeatedly resubmitting an unchanged page accumulates single rejections into an account-level record.
Make every visit accountable
The ROAS365 console breaks visit data down by source, region and device, and exports the underlying decision logs — so a question gets answered with evidence rather than explanation.