Link Attribution

The query params a Stay22 booking link must carry when your own notification engine sends the push instead of the SDK.

The SDK builds its booking link for you. If you'd rather keep your own notification engine — you already have one, you already own the schedule and the consent flow — build the same link yourself and the booking is still attributed to you.

This page is the contract. It is what the SDK emits, and what we expect to see.

Using the SDK? You don't need any of this — Stay22.setTravelContext(...) builds the link and the Quick Start covers the whole integration.

Send users to /allez/roam on https://www.stay22.com:

https://www.stay22.com/allez/roam?address=Lisbon%2C+PT&checkin=2026-03-14&checkout=2026-03-18&aid=your-partner-id&source=direct&medium=pushnotif_manual&sid22=a1b2c3d4

Copy it as one line — a line break before ? becomes part of the path, and the link stops resolving.

sid22 is the one param you may not have — see About sid22.

Attribution params

These identify the booking as yours and place it in the right report.

ParamValueWhat it does
aidYour partner IDCredits the booking to you. The only one that decides whether you get paid.
sourcedirectMarks the click as coming straight from your app rather than an embed or a pop. Also a fixed set.
mediumpushnotif_manualThe one that identifies this traffic. The SDK sends pushnotif; send pushnotif_manual so your own sends stay separable. See Sending it yourself.
sid22Stay22 session IDStitches the click to the rest of the session, which is what makes the shown → tapped → booked funnel work. See below.

aid alone gets you paid. The rest decide whether you can see where the money came from — which is what you need in order to argue for sending more of these.

Why there's no product

The SDK sets product=mobilesdk on the links it builds. Don't copy that onto a link you send yourself: it would claim SDK traffic you didn't generate. Leave it off and these clicks report under allez, with medium=pushnotif_manual marking them as your push.

About sid22

You don't generate this one. Stay22 issues it: the SDK requests a session on startup, stores what comes back, and reuses it for every link and event from that install.

If you're sending the notification yourself and have no sid22, send the link without it. The booking still attributes to your aid — you lose the session stitching, not the commission. Talk to us if you want the full funnel on a self-sent push.

Trip params

Give the link a destination one of two ways: as text (address, hotelname) or as a coordinate pair (lat and lng). Everything else sharpens the results.

ParamValue
addressDestination as text, e.g. Lisbon, PT
hotelnameA specific property name
lat / lngDestination coordinates, as an alternative to address
checkin / checkoutYYYY-MM-DD
adults / childrenGuest counts
campaignYour own campaign ID, for segmenting inside your aid
excludeprovidersProvider to leave out; repeat the param to exclude several

Sending it yourself

Everything the SDK decides on its own — delivery timing, home-city suppression, one notification per trip, frequency caps — is yours to implement in this setup. The Overview walks through what each of those does and why, with a toggle that shows the same trip from both sides.

Set medium=pushnotif_manual rather than pushnotif. The suffix is what separates pushes your engine sent from pushes the SDK sent. Send plain pushnotif and your traffic is indistinguishable from an SDK integration — which costs you the comparison between the two, and costs us the ability to tell you which one performs better.

Questions

Timing, caps, and suppression ranges are tuned per partner. Reach out to your Stay22 account manager or support@stay22.com.

On this page