Descuentos para usuarios finales

La plataforma Insert Affiliate te permite ofrecer descuentos automáticos y ofertas de prueba a los usuarios que descubren tu app a través de enlaces de afiliado o códigos cortos. Esto crea una experiencia fluida en la que los usuarios reciben automáticamente precios promocionales sin tener que introducir códigos de descuento manualmente.

Cómo funciona

Cuando alguien hace clic en un enlace de afiliado o introduce un código corto vinculado a una oferta (configurada en tu panel de Insert Affiliate), el SDK rellena automáticamente la variable OfferCode de nuestro SDK con el modificador correspondiente que has asociado a este afiliado (como _oneWeekFree).

Después puedes añadir este modificador al ID de tu producto habitual para cargar la versión promocional correcta de tu suscripción o compra dentro de la app, para la que has configurado ofertas promocionales (Promotional offers) u ofertas de introducción (Intro Offers)

Flujo de ejemplo:

  1. El afiliado comparte el enlace: https://your-app.com/affiliate/ABC123 (este afiliado tiene asociado un modificador de oferta de "una semana gratis" a través de nuestro panel)
  2. El usuario abre la app: el SDK detecta la oferta del afiliado y establece OfferCode = "_oneWeekFree"
  3. El usuario navega a la pantalla de compra: en lugar de cargar "monthlySubscription", tu app comprueba si nuestro SDK tiene guardado un modificador de un afiliado y lo añade a la oferta base, de modo que la compra carga "monthlySubscription_oneWeekFree"
  4. El usuario ve el descuento: precios promocionales automáticos sin introducir códigos manualmente

Configuración de Google Play Console (obligatoria si das soporte a Android)

Hay varias formas de configurar tus productos en Google Play Console:

  1. Enfoque de varios productos: crea un producto base y uno promocional:

    • Producto base: oneMonthSubscription
    • Producto promocional: oneMonthSubscription-oneweekfree
  2. Un solo producto con varios planes base: crea un producto con varios planes base, uno de ellos con una oferta asociada

  3. Ofertas activadas por el desarrollador (Developer Triggered Offers): ten un producto base y aplica la oferta mediante ofertas activadas por el desarrollador

  4. Producto base con ofertas de introducción: ten un producto base que incluya una oferta de introducción

Cualquiera de estos enfoques es adecuado y funciona con el SDK. Lo importante es que el nombre de tus productos siga el patrón en el que se puede añadir el modificador del código de oferta para identificar la versión promocional.

Si usas el enfoque de varios productos:

  • Asegúrate de que ambos productos estén activados y disponibles para la compra.
  • Genera una versión al menos en Internal Testing para que los productos estén disponibles en la compilación actual de tu app

Configuración de App Store Connect (obligatoria si das soporte a iOS)

Asegúrate de crear los productos de suscripción correspondientes en App Store Connect:

  • Suscripción base: por ejemplo, oneMonthSubscription
  • Variantes promocionales: oneMonthSubscription_oneWeekFree, oneMonthSubscription_threeMonthsFree, etc.
Diagrama del flujo del sistema de descuentos que muestra cómo se aplican los modificadores de afiliado a los IDs de producto

Haz clic para ver a tamaño completo

Instrucciones de configuración en Insert Affiliate

  1. Ve a tu panel de Insert Affiliate en app.insertaffiliate.com/affiliates
  2. Selecciona el afiliado que quieres configurar
  3. Haz clic en "View" para acceder a la configuración del afiliado
  4. Asigna un Modificador de IAP de iOS al afiliado (por ejemplo, _oneWeekFree, _threeMonthsFree)
  5. Guarda la configuración

Una vez configurado, cuando los usuarios hagan clic en los enlaces de ese afiliado o introduzcan sus códigos cortos, tu app recibirá automáticamente el modificador y podrá cargar el producto con descuento correspondiente.

Configuración de RevenueCat (obligatoria si usas RevenueCat)

Si usas RevenueCat para gestionar las compras dentro de la app, te recomendamos usar RevenueCat Targeting para mostrar automáticamente distintas ofertas (offerings) según los códigos de oferta de los afiliados.

Opción 1: RevenueCat Targeting (recomendada)

RevenueCat Targeting te permite mostrar automáticamente distintas ofertas según los atributos del usuario, sin necesidad de construir manualmente los IDs de producto.

Cómo funciona:

  1. Cuando un usuario hace clic en un enlace de afiliado, el SDK establece el atributo affiliateOfferCode en RevenueCat
  2. Las reglas de targeting de RevenueCat detectan este atributo y cambian automáticamente a la oferta correspondiente
  3. Tu app simplemente muestra offerings.current, y RevenueCat se encarga del resto

Paso 1: crea las ofertas en RevenueCat

  1. Ve a tu RevenueCat Dashboard → Products → Offerings
  2. Crea tu oferta base (por ejemplo, default) con los productos estándar
  3. Crea ofertas promocionales (por ejemplo, oneWeekFree) con productos con descuento

Paso 2: configura las reglas de targeting

  1. Ve a Project Settings → Targeting
  2. Crea una nueva regla:
    • Name: por ejemplo, "Insert Affiliate - One Week Free"
    • Condition: affiliateOfferCode is any of oneWeekFree
    • Show Offering: selecciona tu oferta promocional
  3. Guarda y publica
Configuración de RevenueCat Targeting que muestra cómo crear reglas basadas en el atributo affiliateOfferCode

Haz clic para ver a tamaño completo

Paso 3: integración del SDK

El SDK de Insert Affiliate establece automáticamente el atributo affiliateOfferCode cuando está configurado correctamente. Consulta la Guía de configuración de RevenueCat para ver la configuración completa del callback.

En tu app, simplemente usa la oferta actual de RevenueCat:

// Swift
Purchases.shared.getOfferings { offerings, error in
    if let current = offerings?.current {
        // Display current.availablePackages
        // RevenueCat targeting automatically shows the right offering
    }
}
// React Native
const offerings = await Purchases.getOfferings();
if (offerings.current) {
    // Display offerings.current.availablePackages
    // RevenueCat targeting automatically shows the right offering
}

Opción 2: construcción manual del ID de producto (alternativa)

Si prefieres no usar RevenueCat Targeting, puedes construir manualmente los IDs de producto añadiendo el modificador del código de oferta.

Configuración del catálogo de productos:

  1. Productos base: crea tus productos de suscripción estándar (por ejemplo, monthlySubscription, yearlySubscription)
  2. Variantes promocionales: para cada modificador de afiliado que pienses usar, crea los productos correspondientes en RevenueCat:
    • monthlySubscription_oneWeekFree
    • monthlySubscription_threeMonthsFree
    • yearlySubscription_oneWeekFree
    • etc.
Configuración del catálogo de productos de RevenueCat que muestra cómo crear variantes promocionales con modificadores

Haz clic para ver a tamaño completo

Notas importantes:

  • Los IDs de producto en RevenueCat deben coincidir exactamente con la convención de nombres: {baseProductId}{modifier}
  • Cada variante promocional debe configurarse con el precio y el periodo de prueba correspondientes
  • Asegúrate de que estos productos también estén configurados correctamente en App Store Connect/Google Play Console
  • El sistema de modificadores funciona sin problemas con las funciones existentes de ofertas promocionales y precios de introducción de RevenueCat

Para ver los pasos detallados de la integración con RevenueCat, consulta nuestra Guía de configuración de RevenueCat.


Código necesario

Los ejemplos de código, la implementación y los requisitos adicionales se detallan en los repositorios, en la sección correspondiente.

Configuración en iOS

1. Instala los paquetes necesarios y completa la configuración

Para instalar el SDK de Swift de Insert Affiliate, sigue las instrucciones de nuestro repositorio de GitHub.

Todos los cambios de código necesarios se describen en detalle, con ejemplos, en el repositorio de GitHub.

Los cambios de código específicos que requiere Insert Affiliate para la configuración de descuentos para usuarios finales se pueden encontrar aquí.

Configuración en React Native

1. Instala los paquetes necesarios y completa la configuración

Para instalar el SDK de React Native de Insert Affiliate, sigue las instrucciones de nuestro repositorio de GitHub.

Todos los cambios de código necesarios se describen en detalle, con ejemplos, en el repositorio de GitHub.

Los cambios de código específicos que requiere Insert Affiliate para la configuración de descuentos para usuarios finales se pueden encontrar aquí.

Configuración en Flutter

1. Instala los paquetes necesarios y completa la configuración

Para instalar el SDK de Flutter de Insert Affiliate, sigue las instrucciones de nuestro repositorio de GitHub.

Todos los cambios de código necesarios se describen en detalle, con ejemplos, en el repositorio de GitHub.

Los cambios de código específicos que requiere Insert Affiliate para la configuración de descuentos para usuarios finales se pueden encontrar aquí.

Configuración en Unity

1. Instala los paquetes necesarios y completa la configuración

Para instalar el SDK de Unity de Insert Affiliate, sigue las instrucciones de nuestro repositorio de GitHub.

Todos los cambios de código necesarios se describen en detalle, con ejemplos, en el repositorio de GitHub.

Los cambios de código específicos que requiere Insert Affiliate para la configuración de descuentos para usuarios finales se pueden encontrar aquí.


Configuración de Stripe / pagos web

Para las compras web con Stripe, puedes aplicar automáticamente cupones o códigos promocionales a las sesiones de checkout cuando un usuario llega a través de un enlace de afiliado.

Cómo funciona (Stripe)

  1. Configura el cupón de Stripe: crea un cupón o código promocional en tu Stripe Dashboard
  2. Asígnalo al afiliado: en tu panel de Insert Affiliate, asigna el código de cupón de Stripe a un afiliado (valor predeterminado para toda la empresa o anulación por afiliado)
  3. Recupéralo en el checkout: usa el SDK para recuperar el código de cupón y aplicarlo a tu sesión de checkout de Stripe

Configuración en el panel de Insert Affiliate

  1. Ve a tu panel de Insert Affiliate en app.insertaffiliate.com/settings
  2. Busca el campo "Cupón/Código Promocional de Stripe Predeterminado (Toda la Empresa)"
  3. Introduce tu código de cupón de Stripe (por ejemplo, SUMMER2024, AFFILIATE10OFF)
  4. Guarda la configuración

Para anular el valor predeterminado de la empresa en afiliados concretos:

  1. Ve a app.insertaffiliate.com/affiliates
  2. Selecciona el afiliado y haz clic en "View"
  3. Establece un Código de cupón/promoción de Stripe personalizado para ese afiliado
  4. Guarda la configuración

Uso del SDK de JavaScript

Usa el SDK de JavaScript de Insert Affiliate para recuperar el código de cupón de Stripe:

import { InsertAffiliate } from 'insert-affiliate-js-sdk';

// Initialize the SDK
await InsertAffiliate.initialize('YOUR_COMPANY_CODE');

// Get the Stripe coupon code for the current affiliate
const stripeCoupon = await InsertAffiliate.getStripeCouponCode();

// Or use the more explicit method with platform parameter
const stripeCoupon = await InsertAffiliate.getOfferCode('stripe');

if (stripeCoupon) {
  // Apply the coupon to your Stripe checkout
  // Example using Stripe.js:
  const session = await stripe.checkout.sessions.create({
    // ... your checkout config
    discounts: [{
      coupon: stripeCoupon,
    }],
  });
}

Ejemplo de integración con Stripe Checkout

// On your checkout page
const affiliateId = await InsertAffiliate.returnInsertAffiliateIdentifier();
const stripeCoupon = await InsertAffiliate.getStripeCouponCode();

// Create checkout session with the coupon
const response = await fetch('/create-checkout-session', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    priceId: 'price_xxx',
    coupon: stripeCoupon, // Will be null if no affiliate coupon
    affiliateId: affiliateId,
  }),
});