Zum Inhalt springen

Leitfaden · Capacitor, Ionic, Cordova, PWA

Baue ein Affiliate- oder Empfehlungsprogramm in deine Capacitor- oder Ionic-App ein.

@influto/web läuft überall dort, wo dein Code in einer WebView oder einem Browser läuft: Capacitor (Ionic React, Angular und Vue), Cordova, installierte PWAs und Trusted Web Activities. Es folgt denselben Regeln wie die nativen SDKs von InfluTo und ergänzt Wege, die es nur im Web gibt, um eine Empfehlung exakt zuzuordnen.

Aktualisiert: 1. November 2026

Kurz gesagt

Installiere @influto/web sowie unter Capacitor @capacitor/device, @capacitor/preferences und @capacitor/app. Rufe InfluTo.initialize einmal auf, sobald die Plattform bereit ist, und übergib die Capacitor-Adapter. Rufe listenForCapacitorLaunchUrls(InfluTo) auf, damit Deep Links Empfehlungen zuordnen, danach checkAttribution und identifyUser. Übergib unter Android den Play Install Referrer an captureInstallReferrer, um exakt zuzuordnen. Für Käufe übergibst du ein RevenueCat-Binding wie revenueCatCapacitor(Purchases) oder, ohne RevenueCat, eine Purchase-Source wie capgoNativePurchasesSource für @capgo/native-purchases. Plane einen Nachmittag ein, der größte Teil davon geht für die Käufe drauf.

Warum WebView-Apps mehr Empfehlungen exakt zuordnen können

Eine native App erhält einen exakten Treffer über einen eingegebenen Code; ein Tipp, der über den Store läuft, wird erst im Nachhinein zugeordnet. Eine WebView-App kann den Code selbst empfangen, und zwar auf drei Wegen:

  • Die Start-URL. Trage unter Einstellungen → Allgemein → Web-App-URL deine Adresse ein. Empfehlungslinks leiten dann Desktop-Besucher dorthin (und Handy-Besucher, wenn du für ihre Plattform keinen Store-Eintrag hast), mit angehängtem influto_code und influto_click. initialize liest beide aus und bereinigt die Adressleiste.

  • Deep Links. listenForCapacitorLaunchUrls(InfluTo) übergibt die URL beim Kaltstart und jedes appUrlOpen-Event an das SDK; in Cordova rufst du InfluTo.handleLaunchUrl(url) auf.

  • Der Play Install Referrer. Google-Play-Links von InfluTo tragen Code und Klick im Referrer-Parameter von Play. Lies ihn beim ersten Start mit einem Install-Referrer-Plugin aus und übergib ihn an captureInstallReferrer.

Ohne mitgelieferten Code greift InfluTo auf den Abgleich per Link-Klick innerhalb von 72 Stunden zurück. Dabei werden nie Geräteeigenschaften verglichen.

Schritt 1: Installieren

Füge das Paket hinzu. Unter Capacitor sind drei Plugins optional, aber empfohlen: @capacitor/device für Geräteangaben, @capacitor/preferences für Speicher, der WebView-Resets übersteht, und @capacitor/app für Deep Links. Führe nach dem Hinzufügen npx cap sync aus. Fehlende Plugins fallen auf Browser-Standards zurück.

Kein Bundler? Lade den Script-Tag-Build von https://cdn.jsdelivr.net/npm/@influto/web@1/dist/index.global.js und nutze window.InfluTo. Er enthält nur das Core-SDK; die Subpath-Helfer brauchen einen Bundler.

npm install @influto/web
# Capacitor / Ionic apps (device info, storage, deep links):
npm install @capacitor/device @capacitor/preferences @capacitor/app

Schritt 2: Einmal initialisieren, im richtigen Moment

Rufe initialize einmal im App-Root auf und warte darauf. Bei einem Fehler wirft es einen InfluToApiError (status, body): Fange ihn ab, logge ihn und mach weiter. Beim nächsten Start wird es erneut versucht. Die Tabelle unten zeigt, wann du es je Runtime aufrufst.

Der API-Schlüssel (it_…, unter Setup & SDK) gilt für Entwicklung und Produktion. Lege ihn in einer per gitignore ausgeschlossenen .env.local ab, die dein Bundler einliest. Ein typischer Capacitor-Start bei einer RevenueCat-App, der Reihe nach:

import InfluTo from '@influto/web';
import { capacitorAdapters, listenForCapacitorLaunchUrls } from '@influto/web/capacitor';
import { revenueCatCapacitor } from '@influto/web/revenuecat';
import { Purchases } from '@revenuecat/purchases-capacitor';

export async function startInfluTo() {
  await Purchases.configure({ apiKey: 'appl_…' }); // RevenueCat apps: configure it first
  try {
    await InfluTo.initialize({
      apiKey: import.meta.env.VITE_INFLUTO_API_KEY,
      appVersion: '1.4.0',
      ...(await capacitorAdapters()),
      revenueCat: revenueCatCapacitor(Purchases),
    });
  } catch (error) {
    console.warn('InfluTo initialize failed', error); // retried on the next launch
    return;
  }
  await listenForCapacitorLaunchUrls(InfluTo); // deep links → referral claim
  const attribution = await InfluTo.checkAttribution();
  const { appUserID } = await Purchases.getAppUserID();
  await InfluTo.identifyUser(appUserID);
}
RuntimeWann du initialize aufrufst
Capacitor / IonicBeim App-Start, sobald die Plattform bereit ist – nicht innerhalb einer Ionic-Seite, die gecacht und erneut betreten werden kann
CordovaNach deviceready: erst await whenDeviceReady() aus @influto/web/cordova, dann ...cordovaAdapters() an initialize übergeben
PWA / BrowserBeim Laden der Seite

Schritt 3: Play-Store-Installs exakt zuordnen

Lies unter Android beim ersten Start den Referrer-String mit @capgo/capacitor-install-referrer oder cordova-play-install-referrer aus und übergib ihn nach initialize, vor checkAttribution. Ein später erfasster Code öffnet eine frühere „organische“ Antwort erneut. Ein zugeordneter Install behält seinen Creator.

await InfluTo.captureInstallReferrer(referrer); // the raw referrer string from the plugin
const attribution = await InfluTo.checkAttribution();

Schritt 4: Nutzer einen Code eingeben lassen

applyCode(code) prüft einen vom Nutzer eingegebenen Code und wendet ihn an, wenn er gültig ist. Codes werden getrimmt und in Großbuchstaben umgewandelt. Ein ungültiger Code liefert valid: false mit einem error_code wie CODE_NOT_FOUND oder CODE_EXPIRED.

In React und Ionic React ist ReferralCodeInput aus @influto/web/react ein schlichtes Formular ohne Styling. Es füllt einen per Link zugeordneten Code vorab aus und wendet ihn beim Absenden an. In Angular, Vue oder ohne Framework baust du das Feld auf applyCode auf.

Schritt 5: Käufe verbinden

InfluTo zahlt Provision nur auf Käufe, die beim Store verifiziert wurden. Wähle pro Plattform einen Weg:

  • RevenueCat: Übergib ein Binding als revenueCat: revenueCatCapacitor(Purchases) für @revenuecat/purchases-capacitor 7.5.10+, revenueCatCordova(window.Purchases) für cordova-plugin-purchases oder revenueCatJs für purchases-js. Hänge es vor checkAttribution an, denn das Attribut wird geschrieben, sobald die Empfehlung gefunden wird. Fehlgeschlagene Schreibvorgänge werden bis zu 3-mal wiederholt.

  • Store-direkt: Übergib eine purchaseSource (siehe Tabelle). Ist die App unter Einstellungen → Validierung auf Store-direkt gestellt, meldet initialize neue Käufe und trägt bestehende nach, jeweils einmal.

Unter iOS braucht Store-direkt die signierte StoreKit-2-Transaktion: capgoNativePurchasesSource reicht sie weiter, bei cordova-plugin-purchase musst du prüfen, ob dein Setup eine bereitstellt. Unter Android tragen diese Sources keinen Preis. Melde Einmalkäufe deshalb selbst mit price und currency, sonst werden sie mit 0 $ erfasst.

In einer TWA hat die Digital Goods API kein Kauf-Event. Rufe deshalb nach jedem Checkout InfluTo.syncExistingPurchases() auf. digitalGoodsSource schlägt den Preis für dich nach.

RuntimeKauf-PluginSource
Capacitor@capgo/native-purchasescapgoNativePurchasesSource(NativePurchases) aus /capacitor
Cordovacordova-plugin-purchase v13cordovaPurchaseSource(CdvPurchase.store) aus /cordova
TWA bei Google PlayDigital Goods API (Chrome 101+)digitalGoodsSource() aus /pwa

Stolpersteine je Plattform

Die meisten gescheiterten WebView-Integrationen liegen an einem dieser Punkte:

  • Capacitor-Speicher. Ist @capacitor/preferences installiert, speichert das SDK seinen Zustand dort. Der localStorage der WebView wird gelöscht, wenn sich androidScheme oder iosScheme ändert.

  • ionic serve. In einem Web-Dev-Build ist das RevenueCat-Capacitor-Plugin nur ein Platzhalter, Attribut-Schreibvorgänge bewirken dort also nichts. Teste auf einem Gerät.

  • Cordova blockiert die API standardmäßig. Ein frisches Template braucht in der config.xml einen access-origin-Eintrag für https://influ.to und in der Content-Security-Policy connect-src https://influ.to. RevenueCat hat sein Cordova-Plugin als veraltet markiert; für eine neue App nimm lieber Capacitor.

  • Browser und PWAs. In einem Browser oder einer PWA übergibst du platform (ios oder android) immer an reportPurchase; das SDK rät nicht, wenn es Web erkennt. iOS-Web-Apps auf dem Home-Bildschirm können keine In-App-Käufe verkaufen, die Attribution funktioniert aber trotzdem.

Schritt 6: Testen

Testkäufe bewegen kein Geld und verändern deine Statistiken nicht:

  1. 1

    Setup & SDK prüfen. Nach dem ersten erfolgreichen initialize zeigt die Seite „SDK verbunden“ mit Plattform, @influto/web und SDK-Version an; debug: true protokolliert jeden Schritt.

  2. 2

    Einen Kauf simulieren. Kauf simulieren unter Setup & SDK schickt einen Sandbox-Testkauf durch die echte Pipeline von InfluTo. Gib einen deiner Codes ein, um zu sehen, wie er aufgelöst wird.

  3. 3

    Eine vermittelte Installation auf einem Gerät durchspielen. Öffne den Empfehlungslink eines Creators auf einem Testgerät, installiere und starte die App und kaufe als Sandbox-, TestFlight- oder Lizenztester. Das Integrationsprotokoll zeigt, auf Sandbox umgestellt, den zugeordneten Kauf.

clearAttribution() löscht die gespeicherte Attribution, den Code und den Launch-Code für einen neuen Durchlauf. Ist ein Coding-Agent per MCP verbunden, kann er diese Prüfungen für dich übernehmen.

Affiliate-SDK für Capacitor und Ionic: die Antworten.

Gibt es ein Affiliate-SDK für Capacitor und Ionic?

Ja. @influto/web auf npm, mit Subpfaden für Capacitor, Cordova, PWAs, RevenueCat-Anbindungen und React. Es hat keine Abhängigkeiten und läuft in jedem ES2019-Browser und jeder WebView.

Funktioniert es mit Ionic Angular und Ionic Vue?

Ja. Das SDK ist framework-unabhängig, und Ionic React, Angular und Vue laufen alle auf Capacitor. Das fertige Code-Feld gibt es nur für React (@influto/web/react); in Angular oder Vue baust du das Feld auf Basis von applyCode selbst.

Kann ich Google-Play-Installs exakt zuordnen?

Ja. Links von InfluTo zu Google Play tragen den Code im von Play signierten Install Referrer. Lies ihn mit @capgo/capacitor-install-referrer oder cordova-play-install-referrer aus und übergib ihn vor checkAttribution an captureInstallReferrer.

Welche Kauf-Plugins werden unterstützt?

Für den direkten Store-Weg: @capgo/native-purchases in Capacitor, cordova-plugin-purchase v13 in Cordova und die Digital Goods API in einer TWA auf Google Play. Für RevenueCat: @revenuecat/purchases-capacitor 7.5.10+, @revenuecat/purchases-js 1.4.0+ oder cordova-plugin-purchases, außerdem jedes Objekt mit einer setAttributes-Methode.

Funktioniert es in einer PWA?

Ja. Lege die Web-App-URL fest, damit Empfehlungslinks den Code an deine App übergeben; Attribution und eingegebene Codes funktionieren in jedem Browser. Eine TWA auf Google Play kann über Play Billing mit digitalGoodsSource() verkaufen; iOS-Web-Apps auf dem Home-Bildschirm können keine In-App-Käufe verkaufen.

Was kostet es?

0 $ im Monat. Pro verifiziertem Kauf zahlst du die Provision, die du festlegst, plus 10 % desselben Umsatzes (7 %, 5 % oder 3 % bei hohem Volumen). Das Prepaid-Guthaben beginnt bei 50 $ und ist erstattbar. InfluTo zahlt Creator monatlich über Stripe Connect in 33 Ländern aus, sobald sie 20 $ verdient haben.

Bring Empfehlungscodes in deinen nächsten Capacitor-Build.

Ein npm-Paket, ein Validierungsweg, eine erstattbare Einzahlung. 0 $ im Monat; 10 % nur auf den Umsatz, den Creator bringen.

Kostenlos starten