For FlutterFlow

App store links for FlutterFlow apps, without Dynamic Links

Last updated

FlutterFlow made sharing easy with Firebase Dynamic Links, and those links stopped on 25 August 2025. If you used them to send people to the App Store and Google Play, a Jumper.to link does that job: one link and QR code, the right store on every phone, and campaign tags for each place you share. In FlutterFlow you add it with a Launch URL action, no code.

Replace your dynamic link

  1. Make a Jumper link. At app.jumper.to/new, paste your App Store or Google Play link and save.
  2. Use it in your FlutterFlow app. Select the button, add an action, choose Launch URL and paste the link.
  3. Swap it everywhere else. Your website, bio, emails and QR codes: wherever the old dynamic link was.
  4. Add install links per channel. One per place you share the app, so you see where installs come from.

Firebase Dynamic Links did three things. Each has a home now:

Replacing Firebase Dynamic Links in FlutterFlow

Most FlutterFlow apps used only the first row.

What you used it forUse now
A share link or QR code that opens the right storeA Jumper link
Campaign names for installsJumper install links (utm and Apple ct)
Opening a page in the installed appUniversal Links and App Links (FlutterFlow deep-link settings)
Keeping the page through the install (deferred)A deep-linking platform; Jumper has no deferred deep links

If you are not sure: if your links only ever sent people to a store, the first two rows are all you need.

Select your “Share the app”, “Rate us” or “Get the app” button, open the Actions panel, add Launch URL and paste your Jumper link. For a share button, use the Share action with a text like “Get the app: ” followed by the link. The same link works for iPhone and Android, so you need no condition on the platform.

Optional: read the referrer in a custom action

If you want your app to know which link brought an install, add a custom action in FlutterFlow, add the play_install_referrer dependency in its settings, and paste this function. Run it once on first launch on Android. It returns null on iOS: Apple gives apps no referrer, and you read iPhone campaigns in App Store Connect.

// pubspec.yaml: play_install_referrer
import 'package:play_install_referrer/play_install_referrer.dart';

/// The Jumper link id and campaign, or null when the install did not come from a Jumper link.
Future<Map<String, String>?> readJumperReferrer() async {
  try {
    final details = await PlayInstallReferrer.installReferrer;
    final raw = details.installReferrer; // utm_source=yt&utm_medium=description&…&jumper=lnk_…
    if (raw == null) return null;
    final query = Uri.splitQueryString(raw);
    final linkId = query['jumper'];
    return linkId == null ? null : {'link': linkId, 'campaign': query['utm_campaign'] ?? ''};
  } catch (_) {
    return null; // iOS, or no Google Play services
  }
}

On your app’s page in the dashboard, “Add the social set” makes links for YouTube, TikTok, Instagram, Facebook at once; add others for a newsletter, a poster or an ad. Each is a short random address. When someone taps it, Apple receives ct (channel and campaign, cut to 30 characters) plus your pt, and Google Play receives a referrer with utm_source, utm_medium, utm_campaign and jumper=<link id>. Firebase Analytics, which FlutterFlow can add for you, reads the utm values with no code.

Privacy policy, terms and support pages

Both stores ask for a privacy policy link before they accept your app, and Apple also asks for a support link. With Jumper.to you write or paste each page as plain text (or upload a .md file) and get an address like oxi.cc/<your link>/privacy-policy. Pages are text only: headings, lists, tables and links, no images or scripts. Each page uses one credit, like a link. FlutterFlow’s app store deployment asks for the privacy policy address before you submit: paste it there and in both store consoles.

What Jumper.to does not do

It does not open your app when it is already installed (that needs Universal Links and App Links on your own domain), it has no deferred deep links, and it does not follow people inside your app. It is a link and its numbers, not an attribution platform.

Make the link for your FlutterFlow app

Paste your App Store or Google Play link. 3 free credits: each link or page uses one. Nothing to install in your app.

  • 3 free credits: each link or page uses one.
  • Nothing to install in your app
  • No credit card

Start from scratch

Questions

Firebase Dynamic Links stopped in my FlutterFlow app. What now?

For store links and QR codes, make a Jumper link and use it wherever the dynamic link was. For opening a page inside an installed app, set up Universal Links and App Links; FlutterFlow has deep-link settings for that.

How do I open the link from a button in FlutterFlow?

Add a Launch URL action to the button and paste your Jumper link. No custom code is needed.

Do I need to add an SDK to my FlutterFlow app?

No. Jumper.to works on the link only. Nothing ships inside your app, and there is no new release to make. Reading the Google Play referrer is optional and uses Google’s own library.

Can I read the referrer in FlutterFlow?

Yes, with a custom action that uses the play_install_referrer package. It is optional: App Store Connect and Google Play count installs per campaign without it.

What does it cost?

3 free credits: each link or page uses one. Free credits renew every year. After that: $2 a credit a year, 10 credits for $10, 100 credits for $20. Taps are unlimited and there are no ads.