Inizia

RevenueCat

Se la tua app usa RevenueCat, collega il suo webhook e Unolink riceve ogni prova, acquisto, rinnovo, cancellazione e rimborso direttamente da RevenueCat, compresi i rinnovi e i rimborsi che avvengono quando l’app non è nemmeno aperta. I ricavi nel tuo funnel diventano al netto dei rimborsi. Dal piano Pro in su.

1. Collega

In Unolink, apri la tua app → Impostazioni → RevenueCat → Collega. Copia l’URL del webhook e il valore dell’header Authorization (mostrato una sola volta).

2. Aggiungi il webhook in RevenueCat

In RevenueCat, apri il tuo progetto → Integrations → Webhooks → Add new configuration:

  • Webhook URL e Authorization header value: incollali.
  • Environment: entrambi. Gli acquisti sandbox vengono contati come dispositivi di test, quindi restano fuori dai tuoi numeri reali.
  • App: questa app. Events: tutti.

Salva, poi Send test event. La scheda RevenueCat in Unolink lo mostra quando arriva.

Gli acquisti vengono collegati all’installazione (e al link da cui è arrivata) tramite l’ID utente che la tua app riporta: l’app user ID di RevenueCat. Con l’SDK 0.3.2 o successivo, una riga lo tiene aggiornato. Chiamala una volta all’avvio, prima o dopo configure:

Unolink.connectRevenueCat { Purchases.isConfigured ? Purchases.shared.appUserID : nil }
Unolink.connectRevenueCat { Purchases.sharedInstance.appUserID }
import Purchases from "react-native-purchases"

Unolink.connectRevenueCat(Purchases)
Unolink.connectRevenueCat(
  () => Purchases.appUserID,
  addListener: Purchases.addCustomerInfoUpdateListener,
  removeListener: Purchases.removeCustomerInfoUpdateListener,
);

Unolink legge l’ID all’avvio, ogni volta che l’app torna in primo piano e ogni volta che cambia, e lo invia solo quando è nuovo. Non aggiunge RevenueCat alla tua app: sei tu a passargli RevenueCat. Su iOS e Android, chiama anche Unolink.revenueCatUserChanged() dopo Purchases.logIn e Purchases.logOut per inviare subito il nuovo ID (altrimenti parte con il prossimo evento). React Native e Flutter notano il cambio da soli.

Senza connectRevenueCat (un SDK precedente, o se preferisci farlo da te), chiama setUserId con l’ID di RevenueCat dopo Purchases.configure, dopo ogni Purchases.logIn e Purchases.logOut, e a ogni avvio. Usa l’uno o l’altro, non entrambi:

Unolink.setUserId(Purchases.shared.appUserID)
Unolink.setUserId(Purchases.sharedInstance.appUserID)
Unolink.setUserId(await Purchases.getAppUserID())
Unolink.setUserId(await Purchases.appUserID);

Per un ospite, è l’ID anonimo di RevenueCat, quindi un acquisto fatto prima della registrazione si collega subito all’installazione. Dopo logIn, è l’ID dell’account. Unolink conserva ogni ID che un’installazione ha riportato, così l’acquisto dell’ospite resta collegato.

Se la tua app riporta solo l’ID dell’account, l’acquisto di un ospite si collega comunque, ma solo con il prossimo evento di RevenueCat per quel cliente che elenca entrambi gli ID (per esempio il primo rinnovo). Fino a quel momento la persona risulta non ancora pagante. Riportare l’ID di RevenueCat evita quest’attesa.

Quando qualcuno tocca «continua come ospite», chiama anche Unolink.signUpSkipped() (SDK 0.3.2 o successivo, React Native 0.3.1; SDK precedenti: track("sign_up_skipped")), così il passaggio Continuato come ospite del funnel li conta. Vedi Ospiti e account.

Unolink non salva mai l’ID in sé, solo un hash con chiave diverso per ognuna delle tue app. Un acquisto che arriva prima che l’app abbia riportato il suo utente aspetta, e si collega all’installazione appena lo fa. I pagamenti che arrivano giorni o settimane dopo contano comunque, e il Report mostra quanto tempo ci mettono le persone: vedi Pagamenti e ID utente, che tratta anche la privacy e le regole di Apple.

Cosa arriva

RevenueCatIn Unolink
INITIAL_PURCHASE (prova)Prova iniziata
INITIAL_PURCHASE, NON_RENEWING_PURCHASE, conversione della provaPagato, con ricavi
RENEWALRinnovato, con ricavi
CANCELLATION (rimborso)Rimborsato, ricavi sottratti
CANCELLATION, EXPIRATION, BILLING_ISSUEAbbonamento annullato, Abbonamento scaduto, Problema di pagamento

Una volta collegato, RevenueCat è la fonte di riferimento per acquisti e prove: se la tua app chiama anche Unolink.purchase() o trialStarted(), queste chiamate vengono ignorate, quindi nulla viene contato due volte. Rinnovi, cancellazioni e il resto possono essere aggiunti come passaggi in qualsiasi funnel (Funnel → Modifica).