Перейти до вмісту

Посібник · Capacitor, Ionic, Cordova, PWA

Додайте партнерську чи реферальну програму у свій застосунок на Capacitor або Ionic.

@influto/web працює всюди, де виконується ваш код у WebView чи браузері: Capacitor (Ionic React, Angular і Vue), Cordova, встановлені PWA та Trusted Web Activities. Він дотримується того самого контракту, що й нативні SDK InfluTo, і додає способи точно зарахувати реферал, доступні лише у вебі.

Оновлено 1 листопада 2026 р.

Коротко

Встановіть @influto/web, а на Capacitor ще й @capacitor/device, @capacitor/preferences та @capacitor/app. Викличте InfluTo.initialize один раз, коли платформа готова, і передайте адаптери Capacitor. Викличте listenForCapacitorLaunchUrls(InfluTo), щоб реферали зараховувалися з глибоких посилань. Далі — checkAttribution та identifyUser. На Android передайте Play Install Referrer у captureInstallReferrer для точного збігу. Для покупок передайте прив'язку RevenueCat, наприклад revenueCatCapacitor(Purchases), а без RevenueCat — джерело покупок, наприклад capgoNativePurchasesSource для @capgo/native-purchases. Закладіть пів дня, більшість піде на покупки.

Чому застосунки на WebView можуть точніше зараховувати реферали

Нативний застосунок отримує точний збіг за введеним кодом, а перехід через магазин зіставляється згодом. Застосунок на WebView може отримати сам код, і то трьома способами:

  • URL запуску. Укажіть Settings → General → Web app URL, і реферальні посилання вестимуть на нього відвідувачів із комп'ютера (а також із телефона, якщо для їхньої платформи немає сторінки в магазині), додаючи influto_code та influto_click. initialize читає обидва параметри й очищає адресний рядок.

  • Глибокі посилання. listenForCapacitorLaunchUrls(InfluTo) передає в SDK URL холодного старту й кожну подію appUrlOpen. У Cordova викличте InfluTo.handleLaunchUrl(url).

  • Play Install Referrer. Посилання на Google Play від InfluTo містять код і клік у параметрі referrer. Прочитайте його під час першого запуску плагіном Install Referrer і передайте в captureInstallReferrer.

Якщо коду немає, InfluTo зіставляє за кліком на посиланні протягом 72 годин. Характеристики пристроїв при цьому не порівнюються.

Крок 1: встановлення

Додайте пакет. На Capacitor три плагіни необов'язкові, але рекомендовані: @capacitor/device — для даних про пристрій, @capacitor/preferences — для сховища, яке переживає скидання WebView, і @capacitor/app — для глибоких посилань. Після їх додавання виконайте npx cap sync. Якщо плагінів немає, використовуються типові налаштування браузера.

Немає бандлера? Підключіть збірку для тега script з https://cdn.jsdelivr.net/npm/@influto/web@1/dist/index.global.js і користуйтеся window.InfluTo. Вона містить лише ядро SDK, а допоміжні підшляхи потребують бандлера.

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

Крок 2: одна ініціалізація, у слушний момент

Викличте initialize один раз, у корені застосунку, і дочекайтеся результату. У разі збою вона кидає InfluToApiError (status, body): перехопіть його, запишіть у лог і працюйте далі. Наступного запуску спроба повториться. У таблиці нижче показано, коли викликати її в кожному середовищі.

API-ключ (it_…, у розділі Setup & SDK) діє і для розробки, і для продакшну. Тримайте його в .env.local, доданому в gitignore, і читайте через бандлер. Типовий старт Capacitor у застосунку з RevenueCat, по порядку:

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);
}
СередовищеКоли викликати initialize
Capacitor / IonicНа старті застосунку, коли платформа готова. Не всередині сторінки Ionic, яку можуть кешувати й відкривати повторно
CordovaПісля deviceready: спершу await whenDeviceReady() з @influto/web/cordova, потім передайте ...cordovaAdapters() в initialize
PWA / браузерПід час завантаження сторінки

Крок 3: точне зарахування встановлень із Play Store

На Android прочитайте рядок referrer під час першого запуску через @capgo/capacitor-install-referrer або cordova-play-install-referrer і передайте його після initialize, перед checkAttribution. Код, отриманий пізніше, змінює раніше визначену відповідь «органічне». Встановлення з атрибуцією зберігає свого автора.

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

Крок 4: дайте користувачам ввести код

applyCode(code) перевіряє код, який ввів користувач, і застосовує його, якщо він дійсний. Коди обрізаються від пробілів і переводяться у верхній регістр. Недійсний код повертає valid: false з error_code, наприклад CODE_NOT_FOUND або CODE_EXPIRED.

У React та Ionic React ReferralCodeInput з @influto/web/react — це проста форма без стилів: вона підставляє код, пов'язаний із посиланням, і застосовує його після надсилання. В Angular, Vue або без фреймворку зробіть поле на основі applyCode.

Крок 5: підключіть покупки

InfluTo виплачує комісію лише за покупки, перевірені магазином. Оберіть один шлях для кожної платформи:

  • RevenueCat: передайте прив'язку як revenueCat: revenueCatCapacitor(Purchases) для @revenuecat/purchases-capacitor 7.5.10+, revenueCatCordova(window.Purchases) для cordova-plugin-purchases або revenueCatJs для purchases-js. Підключіть її перед checkAttribution, бо атрибут записується в момент, коли реферал знайдено. Невдалі записи повторюються до 3 разів.

  • Store-direct: передайте purchaseSource (див. таблицю). Якщо в Settings → Validation для застосунку вибрано store-direct, initialize повідомляє про нові покупки й дозаповнює наявні, кожну один раз.

На iOS для store-direct потрібна підписана транзакція StoreKit 2: capgoNativePurchasesSource її передає, а з cordova-plugin-purchase переконайтеся, що ваше налаштування її надає. На Android ці джерела не передають ціни, тож разові товари повідомляйте самі, із price і currency, інакше їх буде записано як $0.

У TWA Digital Goods API не має події покупки, тому викликайте InfluTo.syncExistingPurchases() після кожної оплати. digitalGoodsSource сам дізнається ціну.

СередовищеПлагін покупокДжерело
Capacitor@capgo/native-purchasescapgoNativePurchasesSource(NativePurchases) з /capacitor
Cordovacordova-plugin-purchase v13cordovaPurchaseSource(CdvPurchase.store) з /cordova
TWA у Google PlayDigital Goods API (Chrome 101+)digitalGoodsSource() з /pwa

Підводні камені платформ

Більшість невдалих інтеграцій у WebView зводяться до одного з цих пунктів:

  • Сховище Capacitor. Якщо встановлено @capacitor/preferences, SDK зберігає стан там. localStorage у WebView стирається, коли змінюється androidScheme або iosScheme.

  • ionic serve. У вебзбірці для розробки плагін RevenueCat для Capacitor — лише заглушка, тому запис атрибутів там нічого не робить. Тестуйте на пристрої.

  • Cordova за замовчуванням блокує API. У свіжому шаблоні потрібен запис access origin для https://influ.to у config.xml і connect-src https://influ.to у Content-Security-Policy. RevenueCat визнав застарілим свій плагін для Cordova; для нового застосунку краще обрати Capacitor.

  • Браузери та PWA. У браузері чи PWA завжди передавайте platform (ios або android) у reportPurchase: SDK не вгадуватиме, коли виявляє веб. Веб-застосунки на головному екрані iOS не можуть продавати покупки в застосунку, але атрибуція все одно працює.

Крок 6: перевірте

Тестові покупки не рухають гроші й не змінюють вашу статистику:

  1. 1

    Перевірте Setup & SDK. Після першого успішного initialize з’являється «SDK connected» із платформою, @influto/web і версією SDK; debug: true записує в лог кожен крок.

  2. 2

    Симулюйте покупку. Кнопка Simulate a purchase у Setup & SDK надсилає тестову sandbox-покупку через справжній конвеєр InfluTo. Введіть один зі своїх кодів, щоб побачити, як він розпізнається.

  3. 3

    Пройдіть шлях запрошеного користувача на пристрої. Відкрийте реферальне посилання автора на тестовому пристрої, встановіть застосунок, запустіть його й купіть через sandbox, TestFlight або license tester. Integration log у режимі Sandbox покаже покупку з атрибуцією.

clearAttribution() забуває збережену атрибуцію, код і код запуску, щоб можна було пройти все ще раз. Якщо кодувального агента підключено через MCP, він може виконати ці перевірки за вас.

SDK для партнерських програм у Capacitor та Ionic: відповіді.

Чи є партнерський SDK для Capacitor та Ionic?

Так. @influto/web на npm, із підшляхами для Capacitor, Cordova, PWA, прив’язок до RevenueCat і React. Без залежностей, працює в будь-якому браузері чи WebView з підтримкою ES2019.

Чи працює він з Ionic Angular та Ionic Vue?

Так. SDK не залежить від фреймворку, а Ionic React, Angular і Vue працюють на Capacitor. Готове поле для коду є лише для React (@influto/web/react), тож в Angular чи Vue будуйте поле на applyCode.

Чи можна точно відстежувати встановлення з Google Play?

Так. Посилання InfluTo на Google Play передають код в Install Referrer, підписаному Play. Прочитайте його через @capgo/capacitor-install-referrer або cordova-play-install-referrer і передайте в captureInstallReferrer перед checkAttribution.

Які плагіни покупок підтримуються?

Для прямої роботи зі сторами: @capgo/native-purchases у Capacitor, cordova-plugin-purchase v13 у Cordova і Digital Goods API у TWA на Google Play. Для RevenueCat: @revenuecat/purchases-capacitor 7.5.10+, @revenuecat/purchases-js 1.4.0+ або cordova-plugin-purchases, чи будь-який об’єкт із методом setAttributes.

Чи працює це в PWA?

Так. Вкажіть Web app URL, щоб реферальні посилання передавали код вашому застосунку; атрибуція і введені вручну коди працюють у будь-якому браузері. TWA на Google Play може продавати через Play Billing за допомогою digitalGoodsSource(); веб-застосунки на головному екрані iOS не можуть продавати покупки в застосунку.

Скільки це коштує?

0 $ на місяць. За кожну підтверджену покупку ви платите встановлену вами комісію плюс 10% від того самого доходу (7%, 5% або 3% за великих обсягів). Передплачений гаманець починається від 50 $ і підлягає поверненню; InfluTo виплачує авторам щомісяця через Stripe Connect у 33 країнах, щойно вони заробили 20 $.

Додайте реферальні коди у наступну збірку на Capacitor.

Один npm-пакет, один шлях валідації, депозит, який можна повернути. 0 $ на місяць; 10% лише з доходу, який приносять автори.

Почати безкоштовно