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.

Get a Single Run See all pricing

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.

Platform preset

Links
Ad copy

Limits from the platforms' published ad specs. Guideline lengths are recommended display lengths; longer copy can be truncated in some placements.

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.

Sample. Fictional data.
LaunchProof
Redirect-chain report
60 / 100 Fix before launch

Checked Sample run

Platform Google

Redirects 2 hops

Final page https://www.example.com/shop/tents

  • 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

Sample. Fictional data.
LaunchProof
Pre-flight inspection report
82 / 100 Cleared with warnings
Sample LaunchProof stamp

Checked Sample run

Platform Meta

Landing page https://example.com/spring-sale

  • 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.

Sample. Fictional data.
LaunchProof
Pre-flight inspection report
96 / 100 Cleared with warnings
Sample LaunchProof stamp

Checked Sample run

Platform Google

Landing page https://example.com/city-bike-launch

  • 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.

Sample. Fictional data.
LaunchProof
Pre-flight inspection report
36 / 100 Fix before launch

Checked Sample run

Platform Google

Landing page http://example.com/spring-sale

  • 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

PlatformFieldCharactersKindPast 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.

PlatformFieldYour countLimitStatus

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.

    TagWhat it namesUse values likeNever use
    utm_sourceWhere the visit comes from: the platform, partner, or list.google, facebook, newsletterGoogle Ads, FB, paid search
    utm_mediumThe kind of traffic, not the platform.cpc, paid_social, emailsocial, ads, banner ad
    utm_campaignWhich launch it belongs to: when, plus what is being sold.2026_autumn_roast_launchspring, final_v2, test
    utm_contentWhich variant ran, when source, medium, and campaign are the same.video_review, static_offerimage1, new, copy2
    utm_termOptional. The paid search keyword, where the platform supplies one.coffee_subscriptiona 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.

    1. Show your bookmarks bar (Ctrl+Shift+B on Windows, Cmd+Shift+B on Mac), then drag the button below into it.
    2. Open any landing page you want to check.
    3. Click the bookmarklet. LaunchProof opens in a new tab with that page's URL already in the checker, ready to run.
    Check with LaunchProof

    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.

    1. Copy the workflow JSON below.
    2. In n8n, create a new workflow and choose Import from File or paste from clipboard.
    3. 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.
    4. 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
    Request invite

    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
    Go Pro

    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.