Ship every campaign pre-flight checked.
LaunchProof inspects the parts of a launch that break quietly: UTM tags, landing page URLs, and ad copy that runs past platform limits. Paste your links, run the check, and read the verdict before the budget does.
What the paid run adds
The $29 Single Run
The free checker on this page cannot follow a redirect. A Single Run is an automated check of the redirect chain: it follows each hop and checks whether the UTM tags and click IDs (gclid, fbclid, and the rest) are still on the URL at the end. Jash then reviews the findings and writes up what is actually going wrong. Timing is confirmed when you book, not promised here.
Built and run by Jash Shah, a growth marketing analyst in Jersey City, NJ.
Instant free mini-check
No email. No sign-up.Your score and the top three issues will appear here.
Everything on this page runs in your browser. Nothing you paste is uploaded, stored on a server, or sent anywhere. The $29 Single Run checks the redirect chain, which this page cannot do.
Run the whole inspection
The full checker scores the landing URL, the UTM tags, and your ad copy against the selected platform's published limits. One URL at a time in Single check, or a whole launch list in Bulk check.
LaunchProof
Run this check again after you fix things and LaunchProof will compare the two runs. The comparison is saved in this browser.
The link contains the report itself, so anyone with the link can view it. Nothing is stored on a server.
Brand your report (Pro)
Your name and logo are used only in this browser to render your report. Nothing is uploaded or stored on a server.
Send this report to a webhook
The report is sent from your browser straight to the URL you enter. LaunchProof has no server and does not see or store the report.
LaunchProof
Saved campaigns
Saved in this browser on this device, so you can re-check a campaign in one click. No account needed, and nothing is sent to a server.
No saved campaigns yet. Run a check above and save it to re-check it later in one click.
What a finished inspection looks like
These are sample reports with fictional data, included so you can see the format before you run a real check. Four samples show the range: a redirect that strips the tracking tags, a mixed run with warnings and one fail, a clean pass, and a multi-issue fail. Scores follow the same rule as the real checker: 100 minus 12 points per fail and 4 points per warning.
Sample 1 of 4: a redirect strips gclid and UTM tags
This is the costly case. Every tag is on the link in the ad, so a check of the link alone passes, but a redirect on the way to the page drops them. The free checker cannot follow redirects; a paid Single Run checks the chain automatically and Jash reviews the findings. Three fails and one warning score 60, and no stamp is shown while a fail is open.
LaunchProof
- PASS
Campaign URL is a valid URL
The address parses cleanly: https://example.com/summer-tents?utm_source=google&utm_medium=cpc&utm_campaign=2026_summer_tents
- PASS
UTM tags are present on the tagged URL
utm_source, utm_medium, and utm_campaign are all set, lowercase, with no spaces.
- PASS
Hop 1 keeps every parameter
301 from https://example.com/summer-tents to https://www.example.com/summer-tents. The query string, including a test gclid, is carried across.
- FAIL
Hop 2 drops the query string
302 from https://www.example.com/summer-tents to https://www.example.com/shop/tents. Everything after the ? is removed, including gclid and all three UTM tags.
- FAIL
gclid does not reach the final page
The run added a test gclid, as Google auto-tagging does at click time. It is gone by the final page, so Google Ads may not be able to match a later conversion to this click.
- FAIL
UTM tags do not reach the final page
The final URL has no utm_source, utm_medium, or utm_campaign, so analytics never sees this campaign's tags on the visit.
- WARN
Tagged URL and final page are different addresses
The ad points at /summer-tents and visitors end on /shop/tents. Confirm that is the page you meant to send them to.
- PASS
Final page responds
https://www.example.com/shop/tents returned 200 after 2 redirects.
Sample 2 of 4: a mixed run
LaunchProof
- PASS
Landing URL is a valid URL
The address parses cleanly and uses https.
- PASS
utm_source is present
Value: facebook.
- PASS
utm_medium is present
Value: paid_social.
- FAIL
utm_campaign is missing
The tagged URL has no utm_campaign, so this campaign cannot be told apart in reporting.
- WARN
UTM values use mixed casing
Mixed casing splits one campaign into separate rows in analytics. Lowercase is the safer convention.
- WARN
Headline is longer than the Meta guideline
46 characters against a guideline of 40. Guideline lengths are recommended display lengths; the copy may be truncated in some placements.
- WARN
Page reachability could not be verified from the browser
Cross-origin rules stop this page from loading your landing page to confirm it responds. Open the URL once yourself before launch.
Sample 3 of 4: a clean pass, stamp shown
Every check a browser run can resolve passes here. The one warning is page reachability, which a browser run cannot verify, so 96 is the highest score a browser run can reach. The stamp is shown because this run has no fails.
LaunchProof
- PASS
Campaign URL is a valid URL
The address parses cleanly: https://example.com/city-bike-launch?utm_source=google&utm_medium=cpc&utm_campaign=2026_city_bike_launch
- PASS
Campaign URL uses https
The page address is secure.
- PASS
Tagged URL lands on the landing page
The UTM-tagged URL and the landing page URL point to the same address.
- PASS
utm_source is present
Value: google.
- PASS
utm_medium is present
Value: cpc.
- PASS
utm_campaign is present
Value: 2026_city_bike_launch.
- PASS
UTM values are consistently formatted
All lowercase, no spaces, nothing that will split your reporting rows.
- PASS
Headline fits the Google limit
26 characters, within the hard limit of 30. Headline: City Bikes for Daily Rides.
- PASS
Long headline fits the Google limit
83 characters, within the hard limit of 90.
- PASS
Description fits the Google limit
88 characters, within the hard limit of 90.
- WARN
Page reachability could not be verified from the browser
Cross-origin rules stop this page from loading your landing page to confirm it responds. Open the URL once yourself before launch.
Sample 4 of 4: a multi-issue fail, no stamp
Four fails and four warnings score 36. No stamp is shown while any fail is open, matching how the real checker treats a failing run.
LaunchProof
- PASS
Campaign URL is a valid URL
The address parses cleanly: http://example.com/spring-sale-final?utm_source=GoogleAds
- WARN
Campaign URL uses http instead of https
Some browsers and placements treat http pages as insecure, and some ad reviews flag them.
- WARN
Tagged URL and landing page point to different addresses
Traffic may land somewhere other than the page you meant to send it to. Confirm the tagged URL is the right destination.
- PASS
utm_source is present
Value: GoogleAds.
- FAIL
utm_medium is missing
Without utm_medium, reporting cannot group this traffic with the rest of the channel.
- FAIL
utm_campaign is missing
Without utm_campaign, this campaign cannot be told apart from other campaigns in reporting.
- WARN
UTM values are not consistently formatted
Found: a value uses uppercase letters. Mixed casing splits one campaign into separate rows in analytics. Lowercase is the safer convention.
- FAIL
Headline is over the Google hard limit
49 characters against a hard limit of 30. The platform will not accept it as written. Headline: Spring Sale On Every City Bike In The Store Today.
- PASS
Long headline fits the Google limit
57 characters, within the hard limit of 90.
- FAIL
Description is over the Google hard limit
149 characters against a hard limit of 90. The platform will not accept it as written.
- WARN
Page reachability could not be verified from the browser
Cross-origin rules stop this page from loading your landing page to confirm it responds. Open the URL once yourself before launch.
What you get in the report
-
A score you can act on
One number from 0 to 100, built from the individual checks. It is a summary of this run only, not a grade of your marketing.
-
Every check, in plain words
Each line says what was checked, whether it passed, warned, or failed, and what to fix when it did not.
-
A link you can send
The share link carries the report itself, so a client or teammate can open it and see exactly what you saw. Nothing sits on a server.
-
A record you control
Save a campaign in your browser and re-check it after fixes. The comparison shows what got fixed and what still needs work.
How the score works
Every check ends in one of three marks. The score starts at 100, loses 12 points per fail and 4 per warning, and never drops below zero.
-
Pass
Checked and fine
The item matches the rule: the tag is present, the URL is well formed, the copy fits the limit.
-
Warn
Works, with a risk
The item will run, but something about it can bite later: mixed casing, a guideline-length overrun, or a page this browser could not verify.
-
Fail
Fix before launch
The item breaks a hard rule: a required tag is missing, the URL is not valid, or copy exceeds a hard platform limit.
Common issues a pre-flight check catches
- The tagged URL points somewhere else. The UTM link and the landing page disagree, so traffic lands on the wrong page, or a redirect on the way strips gclid and the UTM tags and the visit arrives with no campaign attached.
- A missing utm_campaign. The ad runs, the clicks arrive, and reporting shows a blank where the campaign name should be.
- Mixed casing in UTM values. "Spring_Launch" and "spring_launch" become two different campaigns in analytics.
- Copy past the platform limit. A headline written for one platform gets cut mid-sentence on another, or fails review outright where the limit is hard.
- Spaces and stray characters in tags. They get encoded into unreadable values that nobody can filter on later.
- http instead of https. Some browsers and placements treat the page as insecure, and some ad reviews flag it.
Built for the person launching the ads
Solo marketers
You are the media buyer, the copywriter, and the QA department. A two minute pre-flight pass catches the typo in the UTM tag before it costs a week of dirty data.
Small GTM teams
Launches move fast and the tracking plan lives in someone's head. The report gives the whole team the same checklist and the same verdict.
Agencies
Run the check before a client launch, brand the report with your own name and logo, and send the client the share link as proof the basics were verified.
The exact limits the checker enforces
Every copy check on this page runs against this list. The table below is built in your browser from the same limit values the checker uses, so the reference and the checker cannot drift apart. A hard limit means the platform will not accept the copy as written. A guideline is a recommended display length: past it, the checker warns and the copy can be truncated in some placements.
| Platform | Field | Characters | Kind | Past the limit |
|---|
Character counts are the full length of the field as pasted, spaces included. LinkedIn carries both kinds in one field: a truncation point where the checker starts warning, and a higher hard limit where it fails.
Count ad copy against every platform at once
Paste a headline, primary text, and a description once, and see the live count for each field against Google, Meta, TikTok, and LinkedIn at the same time. No need to switch presets or re-paste. Counts update as you type and use the same limit values as the checker and the limits reference above. Everything runs in your browser.
| Platform | Field | Your count | Limit | Status |
|---|
A field a platform does not use is left out of that platform's rows. For Google, primary text is counted as the long headline and TikTok headline is counted as the display name, matching how the checker names those fields. Empty fields show 0 and no status. When a copy fits one platform and not another, shorten it here first, then run the full checker on the platform you are launching.
UTM builder
Build a tagged campaign URL and catch the common UTM mistakes before the ad goes live. Free, runs entirely in your browser. Need one for a launch? Build yours here, then run it through the checker. Not sure what to type in each field? The UTM naming guide directly below sets the convention this builder assumes.
Name UTM tags so reports stay readable
Analytics tools group traffic by the exact text of each tag. Google, google, and Google Ads are three different sources in a report, even though a person reads them as one. One small convention, used every time, keeps a launch attributable instead of splitting it across near-duplicate rows.
| Tag | What it names | Use values like | Never use |
|---|---|---|---|
| utm_source | Where the visit comes from: the platform, partner, or list. | google, facebook, newsletter | Google Ads, FB, paid search |
| utm_medium | The kind of traffic, not the platform. | cpc, paid_social, email | social, ads, banner ad |
| utm_campaign | Which launch it belongs to: when, plus what is being sold. | 2026_autumn_roast_launch | spring, final_v2, test |
| utm_content | Which variant ran, when source, medium, and campaign are the same. | video_review, static_offer | image1, new, copy2 |
| utm_term | Optional. The paid search keyword, where the platform supplies one. | coffee_subscription | a customer name or email |
- Lowercase only, underscores for spaces. No capitals, no spaces, no special characters. A space or a capital creates a separate row in most reports.
- One name per source and medium. Pick facebook once and use it every time, not fb, meta, and facebook_ads in rotation. Pair it with the medium that says how it ran: facebook plus paid_social, google plus cpc.
- Keep the campaign name stable across platforms. The same launch on Google and Meta should carry the same utm_campaign spelling, so the two rows can be compared and added up. A new creative variant changes utm_content, not the campaign name.
- Never put personal data in a tag. URLs get shared, copied into reports, and stored in server logs. Customer names, email addresses, and order details do not belong in any UTM field.
Good example, labeled as an example
https://example.com/autumn-roast?utm_source=google&utm_medium=cpc&utm_campaign=2026_autumn_roast_launch&utm_content=static_offer
Every value is lowercase, the source and medium answer different questions, and the campaign name says when the launch ran and what it sold. The same campaign on Meta would change only the source and medium.
Bad example, labeled as an example
https://example.com/autumn-roast?utm_source=GoogleAds&utm_medium=Paid Search&utm_campaign=FINAL_test2
Capitals and a space split this traffic away from every correctly tagged visit, the medium repeats the source instead of naming the kind of traffic, and FINAL_test2 tells nobody next month what actually ran.
Apply this in the UTM builder above, then paste the finished tagged URL into the checker so the tags are scored before the ad goes live.
Check any page with one click
The LaunchProof bookmarklet sends the page you are looking at straight into the checker, with the URL already filled in. Handy when you are reviewing a landing page or working inside an ads manager.
- Show your bookmarks bar (Ctrl+Shift+B on Windows, Cmd+Shift+B on Mac), then drag the button below into it.
- Open any landing page you want to check.
- Click the bookmarklet. LaunchProof opens in a new tab with that page's URL already in the checker, ready to run.
On a locked-down browser where dragging is blocked, create a new bookmark manually and paste this code as its address.
The bookmarklet only sends the current page's URL to LaunchProof. It does not read the page's contents, your passwords, or anything else on the page. It works on normal web pages; browser settings pages and some built-in pages block bookmarklets.
Remind yourself with n8n
If you track campaigns in a Google Sheet, this free n8n workflow watches the sheet and posts a reminder to a webhook you choose, for example a Slack incoming webhook, whenever a new campaign row is added, so the pre-flight check does not get skipped on launch day. The check itself still runs here in your browser. The workflow only sends the reminder.
- Copy the workflow JSON below.
- In n8n, create a new workflow and choose Import from File or paste from clipboard.
- Open the "New campaign row" node, connect your Google account, and pick your campaign tracker sheet. The sheet needs columns named Campaign and Landing URL.
- Open the "Send check reminder" node and replace the example webhook URL with your own, then activate the workflow.
Workflow JSON
Each new row in the sheet sends one reminder message with the campaign name and landing page URL. That is all the workflow does.
Pay for the full inspection, or run Pro
The tools on this page are free to try. A Single Run adds what the browser cannot do: an automated check that follows each redirect and tests whether the UTM tags and click IDs (gclid, fbclid, and the rest) survive, then a written report from Jash on what is actually going wrong. Timing is confirmed when you book, not promised here.
Free beta run
$0
- One pre-flight run during the beta
- Full scored report
- Invite only, during the early beta
Single Run
$29 per run
- Automated check of the redirects the browser checker cannot follow
- Whether UTM tags and click IDs (gclid, fbclid, and the rest) survive
- A written report from Jash. Timing is confirmed when you book, not promised here
- One re-check after your fixes
Pro
$79 per month
- Pre-flight runs for your launches, month to month
- White-label reports: your name and logo on every report
- Priority turnaround on launch days
LaunchProof is in early beta and has no paying customers yet. Paid plans use secure checkout via Stripe.
FAQ
What does LaunchProof check?
Three groups: the landing page URL (valid, well formed, https), the UTM tags on your campaign link (source, medium, and campaign present, consistently formatted, matching the landing page), and your ad copy against the selected platform's published character limits. Every result is marked pass, warn, or fail, and the report rolls them into a score from 0 to 100.
How long does a check take?
The on-page checker runs the moment you press the button, because it works entirely in your browser. A paid Single Run checks the redirect chain automatically, then Jash reviews the findings and sends you a written report on what is actually going wrong. The current timing is confirmed when you book, not promised here.
What do I need to provide?
For the on-page checker: your landing page URL, the full UTM-tagged URL you plan to run, and your ad copy (headline, primary text, description). For a paid run, the same material, sent by email after checkout.
What can LaunchProof not check?
The free checker cannot follow redirects, so it cannot tell you whether UTM tags and click IDs (gclid, fbclid, and the rest) survive them. That check is the paid Single Run: an automated check of the redirect chain, with a written report from Jash on what is actually going wrong. Anything that needs access this page does not have stays unchecked either way: whether your landing page actually loads (cross-origin browser rules block a full verification from here, and the report says so honestly), whether your analytics account records the visit correctly, pixel and tag firing inside your tag manager, ad account settings, audiences, budgets, and whether a platform will approve your ad. The free checker covers links, tags, and copy.
How do refunds work?
Email jashshah854@gmail.com. You get a full refund if the report is not delivered, or if you ask within 7 days of payment and you are not satisfied. Pro is billed monthly and can be canceled anytime. A partial month is not refunded. The refund page has the same terms. A person reads the email.
Can agencies use LaunchProof for client work?
Yes. The white-label option in the report lets you put your own business name and logo on the report you hand to a client, and the share link lets the client open the same report without an account. The small footer line "Report generated with LaunchProof" stays on branded reports.
What happens to the data I paste in?
Nothing you paste is sent to a LaunchProof server. The checker, the UTM builder, and the reports run on this page. Saved campaigns and past runs are kept in this browser's local storage, and clearing your browser data removes them. If you enter a webhook URL and press send, the report goes from your browser straight to that URL, because you asked it to. The site uses GoatCounter, which sets no cookies, to count visits. The privacy page is the full account.
Which platforms are covered?
Presets cover Meta, Google, TikTok, and LinkedIn, using the limits in each platform's published ad specs. Guideline lengths (all of Meta's, and LinkedIn's truncation points) are marked as warnings, not failures, because the platforms truncate rather than reject. The General preset applies broad cross-platform guidance.
How do re-checks work?
Run the same URL again after fixing things and the report compares the two runs: what got fixed, what still needs work, and anything that newly broke. Save a campaign and the re-check is one click from the Saved campaigns list. Comparisons live in your browser only; there are no automatic or emailed re-checks.
What is the difference between the free tools and Pro?
The on-page tools (checker, bulk check, UTM builder) are free and always will be as a way to see the inspection work. Single Run buys one check the browser checker cannot do: an automated pass that follows each redirect and tests whether UTM tags and click IDs (gclid, fbclid, and the rest) survive, with Jash reviewing the findings in a written report. Timing is confirmed when you book, not promised here. Pro is the monthly plan for people launching often: runs across the month, white-label reporting for client work, and priority turnaround. The branding panel itself works in the browser for anyone; Pro is the plan that includes it for client deliverables.