Guida · React Native ed Expo
Aggiungi un programma di affiliazione o referral alla tua app React Native.
@influto/react-native-sdk funziona con Expo managed e React Native bare, su iOS e Android. Ti dice quale creator ha portato un'installazione, accetta i codici referral digitati e fa verificare ogni acquisto tramite RevenueCat o direttamente con Apple e Google.
Aggiornato il 1 novembre 2026
In breve
Installa @influto/react-native-sdk e @react-native-async-storage/async-storage, chiama InfluTo.initialize una sola volta nella root dell'app, poi checkAttribution e identifyUser. Con RevenueCat il codice finisce qui: con react-native-purchases installato, l'SDK scrive l'attributo influto_code sul subscriber e il webhook di RevenueCat fa il resto. Senza RevenueCat, installa expo-iap o react-native-iap e l'SDK registra da solo gli acquisti dello store. Expo non richiede alcun config plugin. Conta un pomeriggio.
Cosa fa l'SDK in un'app React Native
Un solo pacchetto copre iOS, Android e ogni workflow Expo. Fa tre cose:
Trova il creator dietro un'installazione. checkAttribution risponde una volta per installazione. Un codice digitato corrisponde in modo esatto; altrimenti il matching dei click collega l'installazione a un tap recente sul link del creator, entro 72 ore. Niente IDFA, niente richiesta ATT.
Accetta i codici referral digitati. applyCode, oppure il campo già pronto ReferralCodeInput, copre le citazioni in podcast e video, dove nessuno tocca un link.
Collega gli acquisti al referral. Con RevenueCat tagga il subscriber; con store-direct invia l'acquisto firmato dallo store, che InfluTo verifica con Apple o Google. Una commissione esiste solo dopo questo controllo.
Passo 1: installa il pacchetto
Aggiungi l'SDK e AsyncStorage, che conserva lo stato locale dell'SDK. AsyncStorage è un modulo nativo, quindi deve stare nelle dipendenze della tua app per l'autolinking. In React Native bare, esegui poi pod install in ios/.
Su Expo non c'è altro da aggiungere e nessun config plugin: l'SDK è JavaScript puro sopra AsyncStorage, quindi funziona in Expo Go, nelle development build e nelle build di produzione. Richiede React Native 0.60+ e React 16.8+.
npm install @influto/react-native-sdk
# AsyncStorage is a native module — install it in the app too
npm install @react-native-async-storage/async-storagePasso 2: inizializza una volta, poi controlla l'attribuzione
Chiama initialize una sola volta, il prima possibile, e aspettane il completamento prima di fare altro. In caso di errore (chiave sbagliata, rete assente) genera un'eccezione: intercettala, registrala e vai avanti; al prossimo avvio riprova.
checkAttribution dice se l'installazione è stata portata da un referral e con quale codice. Viene decisa una sola volta per installazione, salvata sul dispositivo e non blocca l'app in caso di errore: un errore di rete restituisce attributed: false. Usala per dare il benvenuto agli utenti referenziati o per mostrare l'offerta annunciata dal loro creator.
La chiave API (it_…, in Setup & SDK) vale sia per sviluppo che per produzione. Tienila fuori dal codice versionato, per esempio in un .env ignorato da git e letto tramite le variabili EXPO_PUBLIC_ di Expo. Un App.tsx tipico di un'app con RevenueCat, in ordine:
import { useEffect } from 'react';
import Purchases from 'react-native-purchases';
import InfluTo from '@influto/react-native-sdk';
export default function App() {
useEffect(() => {
(async () => {
Purchases.configure({ apiKey: REVENUECAT_API_KEY }); // RevenueCat apps: configure it first
try {
await InfluTo.initialize({
apiKey: process.env.EXPO_PUBLIC_INFLUTO_API_KEY!,
appVersion: '1.4.0',
debug: __DEV__,
});
} catch (error) {
console.warn('InfluTo initialize failed', error); // retried on the next launch
return;
}
const attribution = await InfluTo.checkAttribution();
await InfluTo.identifyUser(await Purchases.getAppUserID());
})();
}, []);
// …
}Passo 3: aggiungi un campo per il codice referral
Molti referral arrivano come codice detto a voce, non con un tap. applyCode(code) valida il codice e lo applica se è valido; gli spazi vengono rimossi e le lettere rese maiuscole in automatico. Un codice non valido restituisce valid: false con un error_code come CODE_NOT_FOUND o CODE_EXPIRED.
Oppure inserisci ReferralCodeInput da @influto/react-native-sdk/ui. Precompila il codice per le installazioni attribuite da un link, usa i tuoi colori, font ed etichette tradotte, e mostra il nome del creator solo se lo attivi.
// Validate, then apply a code the user typed
const result = await InfluTo.applyCode('FITGURU30');
if (result.valid && result.applied) {
// Unlock the offer
}
// Or drop in the ready-made UI:
import { ReferralCodeInput } from '@influto/react-native-sdk/ui';
<ReferralCodeInput onApplied={(result) => {/* ... */}} />Passo 4: collega gli acquisti, con RevenueCat o store-direct
InfluTo paga commissioni solo sugli acquisti verificati con lo store. Scegli un solo percorso per piattaforma: iOS può essere store-direct mentre Android resta su RevenueCat.
RevenueCat: nel codice non c'è nulla da collegare. Con react-native-purchases installato, l'SDK imposta influto_code e influto_referral sul subscriber quando trova un referral o applica un codice. Poi collega il webhook in Setup & SDK, in automatico con una secret key v2 di RevenueCat o a mano.
Store-direct: installa expo-iap o react-native-iap, aggiungi le credenziali di App Store e Google Play in Settings → Validation e imposta la piattaforma su store-direct. A quel punto initialize registra i nuovi acquisti e recupera quelli esistenti, ciascuno inviato una sola volta. Imposta autoCapture: false se preferisci chiamare reportPurchase da solo.
Il punto critico con RevenueCat: l'attributo viene scritto una sola volta, quando il referral viene trovato, e la scrittura è saltata se RevenueCat non è ancora configurato. Configura Purchases, poi initialize, poi checkAttribution, e chiama identifyUser con l'app user ID di RevenueCat come ripiego.
Il punto critico con store-direct: elenca i prodotti Android una tantum in oneTimeProductIds e inviali tu con prezzo e valuta se la tua libreria IAP non espone il prezzo, altrimenti vengono registrati a $0. Ciò che l'SDK rileva da solo:
| Pacchetto | Cosa ne fa l'SDK |
|---|---|
| react-native-purchases | Imposta gli attributi RevenueCat influto_code e influto_referral quando trova un referral o applica un codice |
| expo-iap o react-native-iap | Registra gli acquisti dello store nelle app store-direct (se sono installati entrambi, si usa expo-iap) |
| react-native-device-info | Aggiunge marca e modello del dispositivo al tracciamento delle installazioni |
Note su Expo e React Native
La maggior parte dei problemi di integrazione in React Native nasce da montaggio e ordine delle chiamate:
Expo Go va bene, le librerie degli store no. Expo Go esegue l'SDK di InfluTo, ma expo-iap, react-native-iap e RevenueCat contengono codice nativo: fai gli acquisti di prova in una development build. In Expo Go l'acquisizione automatica semplicemente non fa nulla, ed è sicuro.
Inizializza una volta, nella root. Non in una schermata che viene montata più volte. Chiama identifyUser una volta per accesso, non dal percorso di render.
AsyncStorage nel tuo package.json. Altrimenti il suo modulo nativo non viene collegato e l'SDK non riesce a salvare il proprio stato.
Passo 5: provalo prima di invitare i creator
Gli acquisti sandbox non spostano denaro né modificano le tue statistiche, quindi puoi ripetere il test quante volte vuoi:
- 1
Verifica che l'SDK sia connesso. Dopo il primo initialize riuscito, Setup & SDK mostra “SDK connected” con piattaforma e versione dell'SDK; debug: __DEV__ registra ogni passaggio.
- 2
Simula un acquisto. Simulate a purchase in Setup & SDK invia un acquisto di prova sandbox nella pipeline reale di InfluTo. Inserisci uno dei tuoi codici per vederlo risolto; non completa mai un passaggio della configurazione.
- 3
Installa tramite il link di un creator. Unisciti alla tua campagna con un secondo account creator, apri il suo link referral su un dispositivo di test, installa la development build e avviala. Digitare il codice è il test più affidabile.
- 4
Fai un acquisto sandbox. Acquista con un tester sandbox o TestFlight, oppure con un license tester di Google Play. L'Integration log, impostato su Sandbox, mostra l'acquisto attribuito al tuo codice.
clearAttribution() reimposta il dispositivo per un altro test.
Oppure lascia fare al tuo agente di coding
Lavori con Claude Code, Codex o Cursor? Collega il server MCP di InfluTo e chiedi l'integrazione: l'agente associa “expo” a questo SDK, scrive i passaggi qui sopra e controlla influto_integration_status finché non arriva un acquisto sandbox con l'attribuzione.
SDK di affiliazione per React Native: le risposte.
Esiste un SDK di affiliazione per React Native?
Sì. @influto/react-native-sdk è un pacchetto npm con licenza MIT (sorgente su github.com/influto/influto-react-native) che aggiunge a iOS e Android, da un'unica codebase, il rilevamento delle installazioni da referral, i codici referral e l'attribuzione degli acquisti. Richiede React Native 0.60+ e @react-native-async-storage/async-storage.
Posso gestire un programma di referral in un'app Expo?
Sì, sia in Expo managed sia in bare, senza config plugin. L'SDK funziona in Expo Go, nelle development build e nelle build di produzione. L'acquisizione degli acquisti direttamente dallo store usa expo-iap o react-native-iap, che richiedono una development build e non funzionano in Expo Go.
Mi serve RevenueCat?
No. Con RevenueCat (react-native-purchases), l'SDK tagga l'abbonato e InfluTo legge il webhook di RevenueCat. Senza, InfluTo verifica ogni acquisto direttamente con l'App Store Server API o con Google Play. Usa un solo percorso per piattaforma.
Come inseriscono il codice referral gli utenti?
Chiama applyCode(code) dal tuo campo, oppure usa ReferralCodeInput da @influto/react-native-sdk/ui. I codici vengono ripuliti dagli spazi e convertiti in maiuscolo, un codice digitato ha la precedenza sull'abbinamento tramite clic sul link e non è soggetto alla finestra di 72 ore.
Quanto costa?
0 $ al mese. Per ogni acquisto verificato paghi la commissione che hai impostato più il 10% dello stesso ricavo (7%, 5% o 3% con volumi alti). Il wallet prepagato parte da 50 $ ed è rimborsabile; InfluTo paga i creator ogni mese tramite Stripe Connect in 33 paesi, una volta raggiunti 20 $ di guadagni.
Porta i codici referral nella tua prossima build.
Un pacchetto npm, un solo percorso di validazione, un deposito rimborsabile. 0 $ al mese; 10% solo sui ricavi portati dai creator.
Inizia gratis