Skip to content

Reach links, attribution and tracking

This answers the question every owner asks: "That Instagram post, that flyer, that Google ad - did it actually bring me paying customers?"

Revively does it with three pieces:

  1. Trackable links - short rvly.au URLs and QR codes that carry the source inside the code.
  2. Visitor capture - when someone lands on your booking site, Revively records where they came from.
  3. Conversions - when that visitor books, signs up, or pays, the sale is credited back to the source.

How it works in one line

Someone scans your flyer QR, lands on your booking page, comes back a week later and books a massage. That booking and its revenue show up under Flyer in Reach → Attribution, and the booking itself says Came from flyer.

Trackable links

Every link Revively generates for sharing is a short URL like https://rvly.au/r/AbC123. The short code is the campaign identity.

We never add UTM tags to links or QRs we generate. Long ?utm_source=... tails make QR codes denser and harder to scan, look ugly in an Instagram bio, and are stripped by some in-app browsers. The short code cannot be stripped.

Links you already have

Some links are created for you - you do not have to set anything up:

Link Where to find it Counts as
Bio link (Instagram profile) Settings → Online Sharing Instagram
Booking QR (reception flyer) Settings → Online Sharing Flyer / QR
Event, package, membership, course, program, service, product and public form share links The share block on each record A share of that item, labelled with the item name
Links inside Reach email campaigns Automatic when the campaign sends Email, credited to that campaign

The bio link and the booking QR point at the same booking site on purpose. Keeping them separate means a scan at your front desk is not counted as Instagram.

Creating your own link

Go to Reach → Links → New link…

Field What it does
Label Your name for it, for example "Autumn flyer" or "Gym noticeboard".
Where will you use this? Instagram, Facebook, Google, Flyer / QR, Email, Website, or Other. This sets the source the visit is reported under.
Destination Booking page, storefront home, or a specific service, class, package, course, program, event or product. Custom path for anything else.
Destination target The specific class, service or event, when the destination needs one.
Campaign name Optional. Type a name and Revively creates a tracking campaign so several links can roll up together, for example "Spring open day".
Status Archive a link to hide it from the list. Archived links keep working, so printed QR codes never break.

Save, and the drawer shows the short URL with a copy button and a downloadable QR PNG.

Use the short URL as the destination in ads too. If Google or Meta appends gclid / fbclid to it, those are carried through and the visit is correctly reported as paid rather than organic.

What gets tracked

Tracking happens on your booking site and storefront, on the server, so it works even when the visitor blocks scripts.

  • One touch is recorded per landing session, not per page view. Coming back within 30 minutes on the same path does not create a second touch.
  • A first-party cookie (_rv_vid) remembers the browser for 180 days so a visit today can be credited when they book next week.
  • Each touch stores the source, campaign, landing page, device type, and approximate country/region - never a raw IP address.
  • Bots, link previews, prefetches, and browsers sending Do Not Track or Global Privacy Control are skipped.

Visits we deliberately do not count

Operational QRs are not marketing. Scanning one means "I am already a customer" or "I am staff", so these never create a source:

  • Class and reception check-in QRs
  • Event ticket QRs
  • Booking confirmation links in SMS
  • Form invitations sent to a named person
  • Customer metrics QRs and staff-only links

Traffic you did not tag

For people who arrive without one of our links, Revively works out the source from what the browser sends:

  1. UTM tags on the URL (utm_medium=cpc becomes paid search, utm_medium=email becomes email, and so on).
  2. Ad click IDs - gclid and msclkid mean paid search, fbclid and ttclid mean paid social.
  3. Referrer - a search engine becomes organic search, a social network becomes organic social, any other site becomes a referral.
  4. Nothing recognisable becomes Direct.

Instagram is the common trap here: its in-app browser usually sends no referrer at all, so untagged Instagram traffic lands as Direct. That is exactly why the bio link is worth using.

Conversions

When a tracked visitor does something worth money, Revively records a conversion and freezes the source on it, so old reports never shift:

They do this Recorded as
Create an account or check out as a guest Signup
Book online Booking
Buy a service, product, package or course Purchase
Join a membership Membership
Enrol in a class or buy an event ticket Enrolment
Submit a public form Lead
  • Last touch wins by default, looking back 30 days. The first touch is kept too (90 days) and is included in CSV exports.
  • Revenue is net of refunds.
  • Bookings your team takes by phone or at the desk stay unattributed - there is no digital trail to follow. Set Source on the customer manually for those.

Where you see the results

Reach → Attribution - visitors, new customers, bookings, revenue and visitor-to-customer rate with period-over-period change, trend charts, a revenue-by-source donut, top links, and expandable Sources, Campaigns and Unmatched UTMs tables. Pick any date range.

Reach → Links - one row per link: Used on, Destination, Campaign, Clicks, Landings, Bookings, Revenue, Status. Clicks come from the short URL; landings are people who actually arrived.

Campaign → Status - the send funnel: Audience, Delivered, Opened, Clicked, Converted.

Campaign → Attribution - touches, bookings and revenue for that one campaign, plus spend and ROAS if you have entered spend.

Booking drawer - a read-only Came from stat on bookings that were attributed.

Customer record - Source is filled in automatically for online signups when it is still blank, and stays editable. If Reach knows something more specific than the picklist (like a link label), it is shown under the field.

Reports → Overview - new customers by source, from the customer Source picklist.

Unmatched UTMs

If ad traffic arrives with a utm_campaign name Revively does not recognise, it is listed under Unmatched UTMs on the Attribution tab. Use Promote to turn that name into a tracking campaign - past visits and conversions for it are backfilled. High-traffic names are promoted automatically overnight.

Websites and embedded widgets

A booking widget embedded in your own site is best effort: Safari and other browsers partition cookies inside an iframe, so some visitors cannot be linked back to their original source. For the campaigns you care about measuring, point the button on your website at a trackable link instead of only embedding the widget.

Settings and privacy

Under Settings → Reach sending domain:

  • Track where visitors come from - on by default. Turning it off stops new visitor capture entirely.
  • Keep landing history (days) - defaults to 400. Older landing records are pruned automatically; conversions already recorded are kept.

Privacy posture:

  • IP addresses are hashed, never stored raw.
  • Visitor records belong to your account only - there is no cross-business profile and no data sold or shared.
  • First-party cookie only. No third-party pixel, no fingerprinting, no Google Analytics or Meta Pixel on your booking site.
  • Do Not Track and Global Privacy Control signals are honoured.

Troubleshooting

Everything says Direct. You are sharing raw booking URLs. Copy the bio link from Settings → Online Sharing, put the flyer QR at reception, and create links in Reach → Links for anything else you post.

Clicks but no landings. The click counter fires on the short URL; a landing needs the page to actually open. A big gap usually means bots, link previews, or people scanning and cancelling.

A booking I know came from Instagram is unattributed. They likely booked on a different device, or more than 30 days after their last visit, or your team entered the booking manually. Set Source on the customer by hand.

Revenue looks lower than my sales report. Attribution revenue only includes online conversions tied to a tracked visitor, net of refunds. In-person and staff-entered sales are not in it.

Related

Back to help center

Ready to run your day, not your inbox?

Start a 15-day free trial. No credit card needed. Import your services in minutes - or pick a vertical pack and we'll seed sensible defaults.