Skip to main content

Customer story

iStoria app icon

iStoria — Learn English Easily

How iStoria runs its referral program on DecTog

iStoria teaches English on iOS and Android, built in Flutter. Its learners invite friends with a personal link, and inviters earn free premium days. DecTog follows each invitation from the tap, through the App Store or Google Play, to the friend's first launch and signup.

A learner shares their referral link. A friend installs the app from the store; on the first launch DecTog credits the install to the inviter and the app shows who invited them. When the friend signs up, DecTog records the referral and the inviter gets free premium days.

English learning, on iOS and Android
App
Flutter and flutter_dectog
Built with
Its referral program, live in the app
Uses DecTog for
Free premium days for the inviter
Reward
Get iStoria

One DecTog link that sends each phone to its own store.

Get the app
We were paying thousands of dollars for our referral tracking. Now every learner gets their own link from one call in our Flutter app, DecTog records who invited whom on the server, and that record is what grants our free premium days.
Abdelrahman SaedLead Mobile Engineer at iStoria

Abdelrahman also builds DecTog.

The job

What a referral program needs

  • A link per user

    One link that names the person who shared it, the same link every time they share.

  • A record no app can fake

    Proof that the friend arrived through that link, kept where a modified app cannot change it.

  • A moment to reward

    A signal when the friend has really joined, not when they tapped, so rewards go to real invitations.

How it works

From an invitation to a reward

iStoria grants the inviter's free premium days from DecTog's referral record and shows each new learner who invited them. The referral guide documents every step.

  1. 01Each learner gets a linkcreateReferralLink returns the learner’s referral link, creating it on the first call and returning the same one after. It works with the app’s SDK key, which cannot create any other link.
  2. 02A friend taps itWith the app installed, it opens. Without it, the friend goes to the App Store or Google Play with the tap attached: the store install referrer on Android, the copied link on iOS.
  3. 03The install is credited on the serverOn the first launch DecTog credits the install to the inviter’s link. The inviter is read from the link itself, never from the tapped URL or the app, so nothing on the phone can move the credit.
  4. 04The friend sees who invited themThe install result names the inviter, from the same server record, so iStoria shows each new learner who invited them on the first launch.
  5. 05Signing up records the referralWhen the friend signs up and the app calls identify, the server records a referral and sends a signed referral.converted webhook. Self-referrals from the inviter’s own device or network are flagged. iStoria grants the inviter’s free premium days from that record.

Flutter · flutter_dectog

// The learner's own link: created once, the same one afterfinal link = await dectog.createReferralLink(  customerId: learner.id,);share(link.url);// On the friend's first launch: who invited themfinal install = await dectog.getAttributionData();final inviter = install?.link?.referrerCustomerId;// When they sign upawait dectog.identify(customerId: newLearner.id);

Build a referral program like iStoria's

The same SDK call, the same server record and the same webhook, in a Flutter or React Native app.