Routy

Channels

Connect an account at a vendor you buy traffic from and Routy pulls its cost and reach figures on a schedule, stored per campaign per day next to the conversions you already track.

What this feature does

Your Routy reports show what you earned. Channels is where the other half comes from: what it cost and how many people it reached. You connect an account at a vendor you buy traffic from or send campaigns through, and from then on Routy asks that vendor for your recent figures on a schedule and files them per campaign, per day.

A channel is not a traffic source, and the difference decides where everything lands. A traffic source is something you own, the place your visitors arrive from: your website, your app, your mailing list. A channel is an outside vendor's account you connect, the supplier you buy from: an ad network, a tracker, an SMS platform. One channel can feed several of your traffic sources, and one traffic source can be funded by several channels.

The thing you create when you connect a vendor is a connection, and one connection is one account at one vendor. The catalogue holds 15 vendors today, covering ad networks, trackers such as Voluum, affiliate platforms such as Tune, and telecom and SMS vendors. Some tiles have no Connect button and carry a note instead, which means the vendor is built or being built but is not open yet. GET /api/v1/channels returns every visible channel, connectable or not, and that's the list to go by rather than any list on this page.

What you'll get out of it

  • Cost and reach per campaign, per day, for every connected account, stored next to the clicks and conversions you already track.
  • An account-level row on each connection for figures that belong to no campaign: subscription fees, platform fees, minimum-spend true-ups. It's real data rather than a broken campaign.
  • A first sync that reaches back about a month, as far as the vendor will serve, then a re-pull of the last few days on every run, because vendors revise recent numbers. The default cadence is every six hours, and no vendor is asked more often than once an hour.
  • Credentials checked against the vendor the moment you submit them. Wrong credentials are refused on the spot and nothing is saved, so you correct them in place.
  • A connection state in plain words, with the action attached: working normally, never synced yet, some dates pending, re-enter your credentials, access needs to be granted, try again later, no activity for the period, disabled, or connection limit reached.
  • Per-breakdown visibility into what a vendor actually sent: how many rows and distinct values it holds, the days it covers, and which measures those rows carry.
  • Breakdown values two ways, ranked over a period and day by day for one value you pick.
  • Link import from a connected channel. If your destination links already live in a tracker or a network you have an account with, you can bring them into Routy instead of retyping them. Links you have already imported are marked and never duplicated.
  • One vendor's figures counted once when two of your connections both report it, decided by a rule rather than left to double up.

Your credentials are encrypted and never shown again after you save them: not on screen, not in exports, not in support tickets. If a key stops working, enter the new one on the same form and every connection using it keeps working.

The number of connections you can hold is part of your plan. When it is used up, the message names your limit and your usage.

How it actually works

Connecting a vendor

Open Channels and you get a tile per vendor, each with a line on what it pulls. Pick one and a form appears asking for exactly what that vendor needs, which differs by vendor: one API token, or an access ID and an access key. Each field says where to find it in the vendor's own settings. Paste, submit, and Routy checks the credentials against the vendor immediately.

Routy then asks the vendor which accounts or workspaces those credentials can reach and shows you the list. For most API-key vendors that is a single entry. Anything you have connected already is marked so you cannot connect it twice. The first sync starts on its own.

Partial success is normal

A sync asks the vendor for several days at once. When some of those days come back and some do not, the run is recorded as a partial success rather than a failure, and the days that did not land are asked for again on the next run. Nothing is lost and there's nothing for you to do.

Dates belong to the vendor, not to you

Every date under a connection is expressed in that vendor account's own time zone, which is shown on the connection. It's not your time zone and it's not UTC.

A Los Angeles ad account's 27 July runs seven to eight hours later than a London one's, so its daily totals are cut at a different moment. Routy stores the vendor's day as the vendor drew it and labels it with the vendor's time zone, rather than shifting the figures into your calendar. Shifting them would change what each figure means without changing what it says. A few vendors report only in UTC and accept no time zone at all, and their connections should stay on UTC.

Choosing what a connection pulls

Some vendors have choices to make, such as which Search Console product to report on or which breakdowns to pull. Where they exist they sit on the connection's own settings, and the form is built from what the vendor supports, so the options you see are the options that work. Three things follow. A choice Routy can't honour is refused when you save it, with the valid ones named, instead of being accepted and then ignored until the next sync. Some choices are capped, and Search Console's breakdowns are limited to four because each one is a separate request to Google. Changing a setting does not rewrite history: rows already pulled stay as they are, and a breakdown you switch on starts from the next sync.

Why a breakdown you turned on can still be empty

Asking for a breakdown and receiving it are different things, and only the second one makes rows. A vendor can decline a breakdown for an account, withhold rows for privacy, as Search Console does for search queries below a volume threshold, or simply have no data for the days you are looking at. A vendor can also send different measures for different breakdowns: on Search Console's Discover product there is no average position at all. So Routy reports what arrived rather than what was requested, and a breakdown missing from a connection entirely has no data for that window. Widen the dates before concluding something is broken.

Why some columns have no total

A rate can't be added up. A click-through rate, a conversion rate, a delivery rate and a cost per click are each already a division, so adding one campaign's rate to another's gives arithmetic nonsense, and averaging them ignores how much traffic each campaign had. Those columns show a dash in a totals row. Countable things total normally: spend, impressions, clicks, conversions, messages sent.

The same reason explains why a ranked breakdown shows fewer columns than the daily view. Clicks and impressions add up across a month; a click-through rate does not, and neither does an average position. The ranked view shows what can be totalled, plus an average position weighted by each day's impressions, and leaves out what it can't. The daily view shows everything the vendor sent, because a single day's rate is just that day's rate.

Two more things worth knowing. A brand-new column may show its raw vendor name and no total, because Routy stores every number your account is sent, including ones nobody has described yet. And a cost of zero is not the same as spending nothing: some vendors do not report cost at all and some report it only on a paid tier, so check the vendor's own guide.

When two of your channels report the same vendor

Connect an ad network directly and also connect a tracker that reports that same network's campaigns, and both are telling Routy about the same spend, impressions and clicks. Added together, everything doubles. So Routy picks one as the one that counts for that vendor and tells you rather than asking. A direct connection beats a tracker, because the vendor whose data it is outranks one relaying it. If both are the same kind, the older connection wins, so the answer is stable rather than arbitrary.

The data-authority screen lists only the vendors two of your connections disagree about, so for most affiliates it's empty. Where there is a contest, each candidate is shown with how many campaigns it reports for that vendor, which is the evidence for judging whether the pick was sensible. If it wasn't, choose the other connection and the choice is recorded as yours. Both connections keep syncing either way and both stay visible for reconciliation.

What is not built yet

Said plainly, so you can plan around it.

  • Attribution. Splitting a campaign's spend across the traffic sources it fed, and the unmapped-spend figure that goes with it, is not built. Today you get each vendor's figures per campaign per day, and deciding which of your sites they belong to is the next phase.
  • Vendors that need a sign-in popup rather than a key. Only key-based vendors can be connected today.
  • Sending conversions back to a vendor from a channel connection.
  • A screen for browsing breakdowns by country, device or search query. Where a vendor reports them Routy already stores them, and there's no place to browse them yet.

Why this is worth doing

Cost is the one number a tracker can't see on its own. Your clicks, conversions and commission are yours; spend sits in someone else's account. Joining them by hand means an export per vendor and a match on campaign names that nobody owns, and the join is stale the moment you finish it. A connection does that join on a schedule and leaves the figures attached to the campaign and the day, so a cost per conversion is a column rather than a Monday morning.

The parts that look fussy are the parts that keep the number honest. Storing the vendor's own day rather than shifting it into your calendar means a daily total still means what the vendor meant. Refusing to total a rate means a totals row never shows a figure that is arithmetic nonsense. Picking one connection when two report the same vendor means your spend is not doubled. None of that is visible when it works, which is the point.

Frequently asked questions

What is the difference between a channel and a traffic source?

A traffic source is something you own, where your visitors arrive from, such as your website or your mailing list. A channel is an outside vendor's account you connect, where you buy traffic or send messages. One channel can feed several traffic sources, and one traffic source can be funded by several channels.

Which vendors can I connect right now?

The catalogue holds 15 and the connectable set changes as vendors open, so read it from GET /api/v1/channels, which lists every visible channel and whether it can be connected. A tile with a note instead of a Connect button is built or being built but not open yet. Vendors that need a sign-in popup rather than an API key cannot be connected today.

Why are my connection's dates not in my time zone?

Because they are the vendor account's dates, in the time zone shown on the connection. Routy stores the vendor's day as the vendor drew it rather than shifting the figures into your calendar, since shifting them would change what each figure means without changing what it says.

My sync says some dates are pending. What do I do?

Nothing. A run that returns some of the days it asked for and not others is recorded as a partial success, and the missing days are requested again on the next run. They usually arrive then.

I connected a vendor and a breakdown is empty. Is it broken?

Probably not. A vendor can decline a breakdown, withhold rows below a privacy threshold, or have no data for those days. Open the connection and check what that breakdown actually holds, per breakdown, and widen the dates before concluding something is wrong.

I connect both an ad network and a tracker that reports it. Will my spend double?

No. Routy picks one connection as the one that counts for that vendor: a direct connection beats a tracker, and between two of the same kind the older one wins. The data-authority screen shows you the pick and lets you switch it. Both connections keep syncing.

Why does a cost of zero show when I know I spent money?

Some vendors do not report cost at all, and some report it only on a paid tier, so zero can mean either genuine zero spend or a vendor that never told us. The vendor's own guide says which.

Can I bring my existing links in from a tracker?

Yes, from a connected channel. Open the connection, choose the links you want and say which account each belongs to, and Routy creates them. Links you have already imported are marked and never duplicated. Importing copies the destination into Routy and changes nothing at your tracker, so your new Routy links show no clicks until you point traffic at them.

Ready to try Channels?

Open Channels, pick the vendor you spend the most with, and paste the credentials its form asks for. The first sync reaches back about a month on its own, so you have figures to look at within the hour.