Tracked
Articles

Landing-page testing

How to test a landing page before paid traffic

A traffic-source-agnostic pre-launch checklist for affiliate campaigns. Follow one click through route, landing page, offer, and postback before you spend.

To test a landing page before paid traffic, send one realistic click through the whole path: ad URL, route, landing page, offer click, advertiser, and postback. At each handoff, confirm that the click ID survives, macros resolve to real values, and the test conversion lands on the same click and visitor journey. A page that looks right and has working buttons can still lose attribution. Most landing-page QA checklists stop at the page. This one checks whether the campaign can be measured.

The checklist works with any traffic source. For Meta-specific checks such as fbclid handling and ad review, use the Facebook ads landing page checklist alongside this one.

What does landing-page QA cover for an affiliate campaign?

Generic landing-page QA asks whether the page loads, reads well, and converts on mobile. You still need that. An affiliate campaign adds a measurement chain on top:

Ad URL → route → landing page → offer click → advertiser → postback → report

Every arrow is a place where an identifier can be dropped, renamed, or left as unexpanded macro text. A broken handoff rarely produces an error. The page loads, the offer loads, and the conversion simply never joins the click that caused it.

So the test has one rule: use a single test click and follow it end to end. A test only counts if one recorded click ID goes all the way around.

Step 1: Build a realistic ad URL

Start from the exact URL your traffic source will use, including its macros or tracking template. If the source substitutes values at click time, recreate a realistic version by hand. Include the source's click-ID parameter and the campaign, creative, and placement fields you plan to report on.

Some traffic sources can test this themselves. Google Ads, for example, has a Test button for tracking templates. It combines the final URL with your tracking settings to check that the ad leads to a working landing page URL (Google Ads Help: tracking templates and URL options). Use that kind of tool where it exists. It checks the source's side of the handoff, not your tracker, page, or offer.

In Tracked, the traffic source is set up as a platform with its own click-ID parameter. If you have turned on the campaign's Require platform click ID protection, a request whose click-ID value is missing, blank, or still an unexpanded macro will not get the normal landing page. That is intended behavior. Check this setting before you decide the route is broken.

Step 2: Confirm the route served the page you expected

Open the test URL on the device and network type you plan to buy. Then check that Tracked chose the page you meant to serve.

In Tracked's Logs, open the event for your visit. The detail sheet shows the campaign, the Rule key that matched, the Selected landing page, the Landing mode (hosted, proxy, or redirect), the session, and the recorded Platform click ID. If the rule key or page is wrong, fix the routing rule before you look at anything else.

If the campaign uses conditional routing by country, device, or query parameter, run one test request for each rule that will get real traffic. If it uses weighted landing-page rotation, refresh until each variation has been served, or check each variation directly. The hosted, proxy, and redirect guide explains how the three modes change what Tracked can see and edit. To keep each test visit landing under one rule only, write non-overlapping conditions as described in the device and country routing rules guide.

Step 3: Check that macros resolve on the page

Look at the served page, not the editor preview. Search the page source for {{. In Tracked, a token the dispatcher has no value for is left in place as the original text. So a missing query parameter or an unset custom macro can show up as a literal {{headline}} or {{query.sub3}}.

Check three things:

  • Custom macros such as headlines, images, and CTA URLs have values for every rule path. The campaign's macro section marks unset tokens; treat that warning as a launch blocker.
  • Query macros such as {{query.utm_campaign}} resolve when the parameter is present. Decide what the page should show when it is absent.
  • Visit identifiers such as {{impression.id}} or {{session.id}}, if a form or script needs them, contain real values.

Do not expect {{click.id}} on the landing page. It is blank in the initial page response and resolves only when the visitor goes through a /click/N offer link. The dynamic landing-page macros guide covers the syntax, rule overrides, and safe places to use request data.

Step 4: Click every CTA and inspect the offer URL

Click the main CTA on the page. Then go back and click every other one: repeated buttons, sticky bars, table links, exit links, and anything that only appears on mobile. Each one that sends a visitor to an offer should go through a Tracked click slot such as /click/1. A button pointing straight at the offer URL skips the tracker, and its sales cannot be joined to the page.

For each offer click, look at the final URL the browser lands on after every redirect. The advertiser's click-ID field (for example sub1, aff_sub, or s2, depending on the network) must contain a real Tracked click ID, not {{click.id}} and not an empty value. Then open the click event in Tracked Logs. Its Offer and Offer URL should match what you saw, and its Click ID should be the same value the advertiser received.

If the page has more than one offer path, check that each slot reaches its intended offer pool. The prelander tracking guide explains how click slots, offer pools, and weights fit together.

Step 5: Fire one test conversion and find it on the journey

A test conversion has two legs. Check each one separately.

Inbound: advertiser to Tracked. The advertiser or network calls Tracked's /postback endpoint with the click ID it stored, in the click_id parameter. Use the network's test-conversion or test-postback feature if it has one, with the click ID from Step 4. Then check the response and the result:

ResponseWhat it meansNext check
400 Missing click_id parameterThe callback has no click_id valueMap the network's click token into click_id
404 Click not foundNo recorded click matches that valueCompare the exact ID with the click in Logs
200 OKThe endpoint accepted the requestConfirm the conversion actually appears on the click

200 OK alone does not prove that a conversion was stored. Storage happens after the response, and the site's analytics collection policy can skip it. Open the original click in Logs and expand its journey timeline. The conversion should sit on the same session as the page visit and offer click. If it does not, work through postback troubleshooting by symptom.

A callback sent to /postback is recorded as a normal conversion, so it will appear in your reports. Note its click ID and time so you can tell it apart from real sales later.

Outbound: Tracked to the traffic source. If you send conversions back to the ad network, the click needs that network's click ID. In Logs, a click event that has a platform click ID shows a Test conversion section. Send test conversion creates a conversion for that click marked as a test and kept out of reports. It then sends the configured outbound postback to the network and shows the network's response. If the postback is not configured, it reports that nothing was sent. This is a real request to the network, so check how that network handles test events first. It tests the Tracked-to-network leg only. It does not prove that your advertiser will call Tracked.

Step 6: Check the page basics that break tracking

Some ordinary page faults also break measurement. Check these on the published URL:

  • Forms. If a lead form posts to the advertiser, check that the hidden fields carry the identifier the advertiser expects, and that the success state is not counted as a sale. See affiliate lead form tracking.
  • Hard-coded links. Search the HTML for the offer's domain. Every hit is a link that might bypass /click/N.
  • Mobile layout. Sticky elements can cover the CTA. Mobile-only buttons are often wired differently from the desktop ones.
  • Load and assets. Missing images, fonts, and scripts make a page look broken and hide CTAs. Check the browser console for failed requests on the live domain.
  • HTTPS and redirects. Every step should be HTTPS. Count the redirects: each extra hop is one more place a parameter can be dropped.
  • Query string handling. Parameter passthrough in Tracked works through macros. Values only reach the offer when you map them in the offer URL.

The go/no-go table before spend

Fill this in from your own test. A blank cell is an open dependency, not a pass.

CheckPass conditionEvidence to saveGo / no-go
Ad URLSource click ID and reporting fields present and expandedFinal ad URL or source test result___
RouteExpected rule key, page, and mode in LogsEvent ID and rule key___
Rule pathsEvery rule and variation that will get traffic was served onceList of tested paths___
Page macrosNo literal {{tokens}} in served HTMLPage source search___
CTAsEvery offer link goes through /click/NList of CTAs tested, desktop and mobile___
Offer handoffReal Tracked click ID in the advertiser's fieldFinal offer URL and click ID___
Inbound postbackConversion on the original click's journeyClick ID, response, journey___
Outbound feedbackNetwork accepted a test, if you use oneNetwork response from Test conversion___
Page basicsForms, assets, HTTPS, mobile layout checkedDevice and browser list___

If any row is a no-go, fix it and repeat the test with a new click. Reusing an old click ID tests your memory, not the live path.

What a passing test does and does not prove

A passing test shows that the route, page, offer handoff, and postback mapping worked for one click at one moment. It does not prove that the network will approve real sales, that conversions will arrive on time, or that the page will perform well. Treat it as plumbing verification, not a performance signal.

Repeat the test whenever something in the path changes: a new page version, a new offer, a changed rule, a new tracking template, or a network switching its macro syntax. When you start comparing pages, keep the offer and postback mapping fixed so the outcome stays comparable. The landing-page split-testing guide covers that setup. Traffic weights in Tracked are set by you; automatic winner selection is in development.

Why Tracked suits this kind of QA

In Tracked, the hosted page, routing rules, macros, offer click slots, postback endpoint, and Logs sit in the same workspace. When Step 3 shows an unset macro or Step 4 finds a button that skips /click/1, you can fix the hosted page or campaign setting and run a new click without changing tools. The limits still apply. Tracked records what reaches it. It cannot make a network store a click ID it ignores, and outbound feedback varies by provider.

Frequently asked questions

How do I test a landing page before sending paid traffic?

Send one realistic click from the ad URL through the route, landing page, and offer. Confirm that the offer received a real click ID, then fire a test conversion and check it appears on that same click's journey. Repeat for each rule path or page variation that will get traffic.

Is a working CTA enough to know tracking works?

No. A button can reach the right offer and still skip the tracker, drop the click ID, or carry an unexpanded macro. Check the final offer URL for a real click ID and confirm that a test conversion joins the original click.

Should I send a fake click ID to test the postback?

No. A made-up ID returns 404 Click not found and tests nothing useful. Use the click ID from a real test click, so the test also covers the page-to-offer handoff.

Will my own test clicks and conversions show up in reports?

Your test visits and clicks are recorded like any other traffic, so note their IDs and times. An inbound callback to /postback is recorded as a normal conversion. The Send test conversion action in Logs marks its conversion as a test and keeps it out of reports.

How often should I repeat this checklist?

Before the first spend, and after any change to the page, offer, routing rules, offer URL, or tracking template. Use a fresh click each time.

Start free and run one test click through a hosted page, route, and offer before you buy traffic. Early-access signup may require an invite or access request.