> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metricanic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Find why visits or clicks are missing

> Test one visitor journey, separate arrival from offer clicks, and locate missing tracking requests or lost context.

Start with one real visitor journey through the campaign. A traffic source reporting an ad click proves activity in that source, but it does not prove the browser reached Metricanic tracking or completed a tracked offer click.

Keep the campaign, test time, and final page URL available while investigating. Changing several settings between tests makes it harder to identify which change fixed the problem.

## Decide which event should exist

| Visitor action                                                                      | What to look for                                          |
| ----------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Opens the campaign tracking URL or a page that successfully runs its visit tracking | A visit in **Live Visits**                                |
| Follows a tracked offer-click step                                                  | A click in **Live Clicks**                                |
| Opens an offer through an offers-only campaign redirect                             | A visit, with no separate click required by that redirect |
| Loads a page with no tracker request                                                | No Metricanic event is established by the page load alone |

For an offers-only redirect, **Visits = 1** and **Clicks = 0** can be the correct result of one test. Do not add a second tracking step simply to make those columns equal.

A landing-page flow has another boundary:

```text theme={null}
Campaign arrival → Visit
Landing CTA through tracking → Click
Purchase callback → Event, possibly a conversion
```

## First rule out the report scope

1. Open **Live Visits** for the campaign and a date range that includes the test time.
2. Check the reporting timezone and remove optional filters.
3. Include the relevant campaign status if it is archived.
4. Refresh after the request has had time to process.
5. Compare the raw visit with the aggregate report for its original visit date.

If the visit exists in the raw view, investigate report scope before changing the tracking installation. If it does not exist, follow the arrival test below.

## Test arrival in redirect mode

Open the campaign's actual tracking URL, copied from the saved campaign. Confirm that the browser requests your tracking domain and reaches the intended destination.

If it goes directly to the offer without requesting the campaign URL, check the final URL configured in the traffic source. If the tracking domain does not resolve or HTTPS fails, correct the [domain configuration](/tracking/domains) before inspecting conversion settings.

If the tracker responds with an error, record its HTTP status and response body. Check the campaign ID, saved destination, and active routing paths. In a rule-based campaign, the test visitor may match a different path than the one you expected.

Then check **Errors** around the same time. Not every problem creates an account-visible error, especially when the request never reached tracking, so retain the browser network result as well.

## Test arrival with a tracking script

Open the real landing or offer page with browser developer tools and inspect the Network panel.

1. Confirm the page loads the generated tracking script for the intended campaign.
2. Confirm a visit registration request follows. A downloaded script file alone is not a recorded visit.
3. Inspect failed or blocked requests and browser console errors.
4. Confirm the page address matches the saved landing or offer configuration for the generated setup.
5. Retest using the current snippet from the saved campaign.

Direct tracking validates page and origin context. Errors such as `page_required`, `page_invalid`, `origin_missing`, or `page_mismatch` point to that part of the setup. A request made outside the real page context is not necessarily equivalent to the browser flow.

Tracking can reuse existing visit context, so repeatedly reloading the same page is not a reliable way to create a precise number of new visits. Use an isolated fresh journey for a basic installation check.

## If visits exist but the landing CTA produces no click

Inspect the actual destination or handler on the button the visitor uses. It must follow the campaign's generated tracking setup. A plain link directly to the affiliate offer can bypass the click-tracking step.

With the landing script installed, a link can use the tracker `/click` URL or the `data-dtp-link` attribute. For a marked link, confirm that the script has replaced its `href` with the selected offer URL. If it still contains `#`, check script loading and visit setup. Links inserted later by a popup or page builder need a new scan after insertion. Follow [the attribute setup and dynamic-button example](/tracking/landings#mark-a-link-with-data-dtp-link).

For direct offer links wired by the tracking script, test with a normal primary-button click. The current generated-link handler skips modifier clicks and non-primary mouse buttons. Ctrl/Cmd-click, a middle click, or the browser's **Open link in new tab** action can therefore reach a direct offer URL without registering the click. This limitation applies to links relying on the script's click handler, rather than links whose destination itself goes through the tracking click endpoint.

The click request needs valid visit context. Generated links and scripts preserve the necessary tracking information. Copying an old click URL into a new session, stripping tracking parameters, or building a request from an internal Visit ID can break that context.

| Error              | Practical check                                                                                             |
| ------------------ | ----------------------------------------------------------------------------------------------------------- |
| `missing_clickid`  | Whether the visitor entered through a tracked journey and the generated link or script retained its context |
| `invalid_clickid`  | Whether a supplied signed click ID was modified or replaced                                                 |
| `attr_not_found`   | Whether valid visit context is available for this request                                                   |
| `invalid_marker`   | Whether the integration sends an unsupported manual `vid` marker                                            |
| `bad_redirect_url` | The selected offer URL and its macro substitutions                                                          |

Retest the full path from campaign arrival to the CTA after correcting the integration. Opening only the final offer proves page availability, not click tracking.

## What a successful retest establishes

For a landing flow, locate the visit and the tracked CTA click in their raw views for the same campaign. Then confirm the aggregate counts in the corresponding visit-date scope. This establishes arrival and offer-click tracking.

If the next stage is missing, continue with [Missing conversions](/troubleshooting/no-conversions). For smaller differences between systems rather than a completely missing step, use [Numbers do not match](/troubleshooting/discrepancies).
