Deep links for events and ticketing apps
Event apps live on links people scan and tap on the day: a code on a ticket, a sign at the gate, a message from the venue. A WarpLink link opens the ticket, the map or the schedule in the app, goes to the store for a guest without it, and can stop redirecting when the event ends.
How it works
Link each event screen
Create a link for the ticket wallet, the schedule, the map and each venue entrance, with the destination set to that screen in your app.
Print a code per placement
Put a QR code on tickets, gate signs and posters. Use one link per gate or poster so the report can tell the placements apart. The code holds the short link, so you can change where it goes later.
Set an expiry
Set expires_at on links that only matter during the event. After that moment the link stops redirecting.
Send venue messages
Use links in confirmation emails and venue messages, on your own domain so the tap can open the app. Give each message its own utm_campaign.
Cover guests without the app
A guest without the app goes to the store page. With the SDK in your app, the first launch opens the ticket or schedule the link pointed to.
Read the day
The link report shows taps and installs per placement, with country, device and referrer, so you can see where guests came from. Export the click rows after the event.
Create a link that ends with the event
// A link that stops redirecting once the event is over.
const response = await fetch("https://api.warplink.app/v1/links", {
method: "POST",
headers: {
// API key from Keys > API
Authorization: "Bearer wl_live_YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
app_id: "3f9a1c2e-6b7d-4e1a-9c2f-8a5b1d0e7c44",
slug: "gate-b-entry",
destination_url: "https://app.example/events/harbor-fest/tickets",
expires_at: "2027-06-14T04:00:00Z",
tags: ["venue", "harbor-fest"],
}),
});
const link = (await response.json()) as { short_url: string };// One link per placement. The slug names the poster, so each scan maps to a placement.
const response = await fetch("https://api.warplink.app/v1/links", {
method: "POST",
headers: {
// API key from Keys > API
Authorization: "Bearer wl_live_YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
app_id: "3f9a1c2e-6b7d-4e1a-9c2f-8a5b1d0e7c44",
slug: "poster-union-station",
destination_url: "https://app.example/menu",
tags: ["print"],
}),
});
const link = (await response.json()) as { short_url: string };
// Download the QR code for link.short_url from the link's page in the dashboard.What you get
- Linking
- Ticket, schedule and venue links that open the right screen in the app, or the store page, and an expiry for links tied to a date.
- Attribution
- Installs that follow a tap on a WarpLink link, in any channel, are matched to the placement that drove them, such as a gate sign or a confirmation email.
- Analytics
- Clicks, unique clicks and installs per placement, with device, country and referrer, and CSV export.
Common questions
Can a QR code on a ticket open the ticket in the app?
Yes, when the code holds a WarpLink link whose destination is the ticket screen. A guest with the app is taken to it, and a guest without it goes to the store page.
Can I stop a link after the event?
Yes. Set expires_at when you create the link, or pause the link later. The history stays.
Can I change a printed code after the event is moved?
Yes. The code holds the short link. Edit the link's destination in the dashboard and the printed code follows.
How do I tell the gates apart?
Give each gate its own link. The link report shows taps and installs for each, and tags help you filter the group.
Will it work with poor reception at a venue?
The tap needs a connection to reach the link. Print a code on tickets guests can scan before they arrive, and have the app cache what it needs.