Routy

Link Monitor

Scheduled checks on your brand links, run from a country you choose, with an alert when the offer, the destination or the page itself changes. Cosmetic edits are scored and recorded without alerting anyone.

What this feature does

A broken brand link keeps taking clicks. The destination flips, the page starts returning a 404, the advertiser pulls the offer and the page now sells something else, and nothing about your side of it looks wrong until the conversion graph goes quiet a day or two later.

Link Monitor checks the link on a schedule, follows it to its final destination, and compares the page against the previous check. When the content changed, an AI pass decides whether the change is material: the promotion, bonus, payout or terms, the call to action, the destination or redirect, or the page being down, blocked or erroring. Material changes raise a notification by email, Slack and the bell in Routy. Cosmetic ones get recorded with a score and don't notify anybody.

A monitor watches either a brand link or a URL you paste in, runs from one country, and checks the final URL after redirects, the page content and the HTTP status.

What you'll get out of it

  • Checks every 15 minutes, every 30 minutes, hourly, every 6 hours, daily or weekly, set per monitor.
  • One country per monitor, so the check sees what a visitor in that country sees. Locations are ISO-2 country codes and, for the United States, individual states, 50 of them plus DC. To watch one link from three countries you create three monitors, and monitors on the same brand link are grouped so you see them together.
  • Alerts when a monitored link meaningfully changes, breaks with a 404 or another error, starts being blocked by the destination, and again when it recovers. Each alert links straight to the account page. Channels are yours to pick under Settings > Notifications, in the Link Monitor section.
  • A change score from 1 to 10 on every change Routy classified, with a one-line description of what changed, kept in the history whether or not it notified you. "Why didn't I hear about that one" has an answer on the row.
  • Optional screenshot and page content capture, per monitor. With it on, every detected change stores a PNG of the page and the DOM as it stood, so you can read what the page said at the time rather than taking the summary's word for it.
  • A check history per monitor carrying the time, the HTTP status, the country the check ran from, what changed, and the screenshot and DOM when capture was on. Kept for 30 days.
  • Statuses that separate a problem with the page from a problem with the check: Active, Paused, Error, Blocked when the target refuses the fetch with a 403 or an anti-bot challenge, and Unreachable on a timeout, a DNS failure or a refused connection.
  • Pause, resume, check now and delete from the monitor badge on the Brand Links page, or from the Link Monitors page, which also holds the full list, filtering and bulk actions.

There's no export of monitoring data, so the history is read in the interface and anything you want to keep comes out of the alert and the history row. Capture applies from the next check onward and doesn't backfill earlier ones. Some heavily bot-protected pages stay Blocked whichever country you check from, which is the target's decision rather than something Routy can route around.

How it actually works

Creating a monitor

On Brand Links, the Monitor column shows an "Add Monitor" badge when no monitor exists and a status badge when one does. Click it, name the monitor, pick a check frequency, optionally pick a country and turn on screenshot and page content capture, then save. The Link Monitors page in the sidebar does the same thing from the other direction: Add Monitor there takes either a brand link or a custom URL you paste.

A custom-URL monitor doesn't group under a brand link, so those appear in their own list.

What counts as a change worth telling you about

A check that errors always counts. An HTTP status of 400 or above is recorded as a status change, and a page that couldn't be reached at all is recorded as having become unavailable. Both notify you.

A content change goes through the score gate first. The AI pass reads the text before and against the text after, classifies the change, and scores how big it is as a person would perceive it:

  • 1 is imperceptible.
  • 5 is clearly visible while the content is nearly the same.
  • 7 is text, images or sections moved or reworded with the same offer, deal and headline still reading through. "1+1", "buy one get one free" and "buy 1 get 1 free" all score 7.
  • 8 to 10 is reserved for a change where the offer, deal or headline a visitor reads is different, up to 10 for an entirely new page.

A change notifies you when the score reaches 8, or when the category is one of the critical ones (the offer, the destination, or the page being down) even if the visual difference is small, as with a redirect swapped on a page that looks identical. Everything below that is still written to the history with its score, so a run of 4s and 7s on one link tells you the page is busy rather than that the offer moved.

Cookie and consent banners, login and signup modals, rotating promotional carousels, ads and session-specific content are classified as incidental, because they're transient state rather than a real change to the page. Bot-protection and Cloudflare challenge pages aren't reported as content changes either: a check that hits one sets the monitor to Blocked instead of claiming the page changed.

If the classification can't run, Routy records the change and notifies you rather than risk missing one, and the history row says the automatic review wasn't available.

Your own rule for the summary

Switch the change summary on per monitor and each change carries a one-line description of what changed. You can give it a rule of your own in plain language, up to 500 characters, such as "flag only if the offer or payout changed". Leave it empty and a default prompt is used. The summary sends the page content to the configured AI provider and costs tokens, which is why it's a switch per monitor rather than on everywhere.

Checking from a specific country

Each monitor binds to one location and the check runs through a residential proxy there. State-level targeting is US-only. GET /v1/link-monitors/geo-locations returns the picker's list, countries and US states together, with states named in the form "United States, California".

The reason to use it is a programme with geo restrictions, or a destination you suspect of blocking or redirecting by region. A link that's live in the UK and pulled in Germany passes every check you run from the UK, and the German traffic is the traffic you're losing.

What counts against your plan

Link Monitor is a plan feature. Without it, the Link Monitor screens are hidden and the API returns 403.

Your subscription sets how many monitors can be active at once. A paused monitor doesn't count, so pausing one frees a slot. Creating a monitor over the limit, or resuming a paused one while you're at the limit, is refused with "Active link monitor limit reached. Pause or delete a monitor before adding another."

Why this is worth doing

The failure here is a silent one. A 404 doesn't stop clicks arriving, a changed destination doesn't look different from your side, and an offer the advertiser replaced without telling you still converts at some rate, just not the one you built the campaign on. The conversion graph eventually shows it, which is to say it shows it after the traffic has been spent. A check every 15 minutes from the country the campaign targets closes most of that window.

The harder problem is noise, and it's the reason most link monitoring gets switched off. Landing pages change constantly without the offer changing: a banner rotates, a consent dialog appears, a headline gets rewritten into the same promise. A monitor that alerts on any difference gets muted inside a week, and a muted monitor is worse than none, because you think you're covered. Scoring the change and keeping the cosmetic ones in the history without sending them is what keeps the alerts worth opening.

The capture history is for the conversation afterwards. "The page changed on the 14th" is a claim. The screenshot and the page content from either side of the change, with the time and the country stamped on the row, is something you can send to the affiliate programme.

Frequently asked questions

How often can the monitor check a link?

Every 15 minutes, every 30 minutes, hourly, every 6 hours, daily or weekly, per monitor. A live campaign landing page is worth 15 to 30 minutes, a homepage hourly, evergreen content daily, a static resource weekly.

What counts as a failure?

An HTTP error, a page that couldn't be reached at all through a timeout, DNS failure or refused connection, and a destination that's refusing the fetch. An errored check always counts as a change and notifies you. A content change goes through the score gate first.

The page changed and I didn't hear about it. Why?

Because the change scored below 8 and wasn't an offer, destination or page-down change. The usual causes are a reworded headline promising the same thing, a rotating banner or a pop-up that happened to be open during one check. The row is in the check history with its score and a description, so you can see what Routy saw.

Where do the checks run from?

One country per monitor, through a residential proxy in that country. Countries use ISO-2 codes, and the United States can be narrowed to a single state. To cover several countries, create a monitor per country on the same brand link.

Can I monitor a link that isn't in Routy?

Yes. A monitor takes a brand link or a URL you paste. Some sites block automated checking, and that shows up as the monitor going Blocked rather than as a change.

How quickly will I hear about a change?

The notification goes out as soon as the check that found it finishes, so the frequency you set is the bound on how late you can be. A monitor on a 6-hour schedule can be up to 6 hours behind the page.

How long is the check history kept?

30 days. There's no export, so a screenshot or a page snapshot you need for a dispute is worth pulling out of the history while the alert is fresh.

Do paused monitors use up my allowance?

No. The allowance counts active monitors only. Pausing one frees a slot, and resuming it needs a slot to be free.

Can I see what the page looked like when it changed?

Yes, when screenshot and page content capture was switched on for that monitor at the time. The history row then carries a screenshot and the captured DOM. Switching capture on applies to checks from that point forward.

Ready to try Link Monitor?

Open Brand Links, find the link whose offer would cost you most if it changed without your knowing, and click Add Monitor in the Monitor column. Set it to 15 or 30 minutes if it's a live campaign page, pick the country the traffic comes from, and switch on screenshot and page content capture if you ever expect to show the programme what changed.