Seamos completamente honestos, los sistemas de afiliados en el mercado son terribles. Son extremadamente confusos, complicados y lentos, o lucen como si hubieran salido de los 90s. O peor aún, son una mezcla de todo lo anterior. Algunos tendrán la mitad de las herramientas que usted necesita, pero carecen de otras opciones esenciales que los afiliados desean. 😩

Desde que lanzamos Kinsta, nuestra misión ha sido nunca sacar productos de baja calidad para nuestros clientes. Nosotros seguimos este estándar, si es algo que jamás usaríamos, entonces encontraremos una mejor forma para hacerlo. Así que, como hicimos con el dashboard de MyKinsta, hemos decidido crear el nuestro.

Hoy, discutiremos algunas de las razones por las que hemos tomado esta decisión, desde las perspectivas de negocio y de desarrollo, hasta el resultado final. Desde el Producto Viable Mínimo (PVM) hasta el producto acabado.

¿Por qué lanzamos el nuestro?

Cuando empezamos a investigar lo que se tenía que hacer para implementar un sistema de afiliados, rápidamente nos dimos cuenta de que no había una solución fácil e inmediata. Aquí les dejamos las razones:

  • El mayor problema fue que nuestro sistema de afiliados necesitaba estar fuertemente enganchado a nuestro sistema de planes y de suscripción, y no con un proveedor externo.
  • La marca es algo muy importante para nosotros. Mientras que algunos sistemas de afiliados ofrecen soluciones de marca blanca, la mayoría, son implementaciones a medias y no siempre son transparentes. Ya que nosotros lo estamos construyendo, nos permite tener control total del diseño y de la marca, sin la necesidad de tener que preocuparnos por las soluciones de etiqueta blanca.
  • Al depender de sistemas externos, nos limita lo que podemos subir y cambiar, y en ciertas ocasiones, podría prohibirnos por completo hacer esto. La mayor parte de nuestro dashboard personalizado de MyKinsta, está hecho en su totalidad según los comentarios de los usuarios, ¡y es por eso que se ha convertido en una de las mejores herramientas de administración de sitios de WordPress en la industria! Gracias a nuestros sorprendentes clientes.👏 Nosotros sabíamos que desde el minuto que lanzáramos una solución externa, los comentarios y peticiones empezarían a llegar, pero no tendríamos la habilidad de poder hacer esos cambios.
  • La habilidad para proveer y construir un reporte personalizado, no sólo para nuestros afiliados, sino también para nuestros administradores, es algo esencial para nosotros. ¡Amamos y necesitamos estos datos! ¿Cómo se supone que tomemos decisiones estratégicas en un futuro? El sacar los datos se hace desde nuestros planes complejos y de nuestro sistema de suscripción.

Adentramos un poco más, nos dimos cuenta que una vez que abriéramos el sistema de afiliados al publico en general, no podríamos detenerlo. Claro, los bugs pueden aparecer y ser arreglados, pero si necesitáramos cambiar de proveedor de pagos, no podríamos suspender el programa, mientras seguimos recolectando dinero, un dinero al que ellos también tienen derecho a recibir.

Otra cosa, la flexibilidad es una de las mayores preocupaciones. ¿Qué tal si tuviéramos que cambiar el sistema de cómo funcionan las suscripciones (esto ya ha pasado), ¿Acaso podremos lidiar con múltiples idiomas y tipos de cambio? ¿Qué tal los add-ons en los que hemos trabajado a lo largo del camino, como Redis, backups horarios, entre otros? ¿Podríamos construir un dashboard expandible para nuestros usuarios?

Desde un punto de vista técnico, esto demostró que era completamente redundante utilizar el software de terceros. Ya que tenemos una forma particular de como manejar las suscripciones a través de Stripe, necesitábamos escribir nuestra propia lógica para lo que es un referencia y cuál es el mecanismo de cambio para actualizaciones y downgrades.

stripe

Mientras que muchas soluciones tienen API, escribir el código para enviar nuestros datos a este API sería el 80% del trabajo. ¿Por qué no poner el 20% adicional para crear nuestra propia interfaz de usuario?

Costos

Otra gran preocupación son los costos. Hay productos baratos en el mercado, pero no fueron lo suficientemente buenos debido a problemas, como falta de opciones o de flexibilidad. Otros se hacen cargo de los pagos y tienen más opciones, pero los costos para los vendedores empiezan subir muy rápido. Veamos los costos de los más populares. Nota: algunos de estos podrían reducir en precio si uno se pone a negociar un poco, y también esto es basado en el volumen de ventas y otros factores.

  • ShareASale: Un pago de $550 para tener acceso a la red, más $100 de deposito, y un cargo del 20% por cada venta.
  • CJ: Una cuota de $3,000 para tener acceso a la red, $3,000 de deposito, $500 anual en costos de acceso, y un cargo del 30% o $0.30 por cada venta – el que tenga la cantidad más grande.
  • ClickBank: Costo de activación de $49.95, $2.50 de cargo por proceso de periodo, y un cargo de 7.5% por transacción + $1 por cada venta.

Digamos que estamos alrededor de $250,000 al año con nuestras ventas de afiliados, así es como serán los cargos al final (esto es después del deposito único y las cuotas por acceso a la red). Por cierto, ¿Qué son las cuotas para tener acceso a la red? 🤔

  • ShareASale: $50,000 en cargos
  • CJ: $75, 000 en cargos
  • ClickBank: $27,000 en cargos

¡Wow! Eso es mucho. Y esto es antes de agregar los otros gastos que ya nos encontramos pagando, como Stripe. También revisamos otros sistemas de afiliados como Rakuten Marketing e Impact Radius, pero los costos son aún más altos.

El beneficio de lanzar nuestro propio sistema de afiliados es que lo más costoso, simplemente sería el tiempo de desarrollo. Ya contamos con nuestros propios talentos para hacer todo. Pero como puede ver, hay muchas piezas móviles y cosas a considerar cuando uno tiene que elegir entre hacer el suyo o irse por una solución externa.

Los básicos de cómo funciona un sistema de afiliados

Entraré más en detalle un poco más abajo, pero para entender cómo empezamos a construir el producto, será muy útil saber el flujo básico de datos.

El punto de entrada en el sistema es un enlace especial que contiene una ID de afiliado. Lo llamamos la ID de afiliado de Kinsta o KAID para hacerlo más corto (ejemplo: https://kinsta.com?kaid=affiliateid)

La mayoría de las herramientas de afiliados son demasiado confusas, cuando se trata de saber que URL debería utilizar y a donde mandar el enlace. Así que, desde el principio, queríamos hacer un proceso muy sencillo de tan sólo dos pasos.

Paso 1

El primer paso sería ingresar el destino en el sitio de Kinsta. Esto podría estar en cualquier lado, no sólo en nuestra página principal. Quizás, quieran poner el enlace directo a nuestra página de planes (como se muestra abajo).

Creando un enlace de afiliado de Kinsta
Creando un enlace de afiliado de Kinsta

Paso 2

El segundo paso sería generar el enlace para que puedan copiarlo y pegarlo fácilmente donde quieran. Y también proporcionar el HTML de acompañamiento con el atributo de enlace rel=»sponsored» (que es muy importante) para cumplir con las directrices de Google para los enlaces de afiliados. Anteriormente, Google ya recomendaba utilizar el atributo nofollow, que sigue siendo una opción válida.

Generando enlace de afiliados y código HTML
Generando enlace de afiliados y código HTML

Cuando detectamos a un visitante utilizando alguno de estos enlaces, establecemos una cookie que contiene información sobre quién refirió a ese usuario. Nosotros valoramos el referente inicial, y no ofrecemos comisiones divididas. Esto es más justo para el afiliado y para los leads, para que sea una competencia con calidad y no con cantidad.

Stripe se hace cargo de todas las compras, utilizamos su muy extensiva y (mayormente) bien documentada API para crear usuarios, suscripciones, iniciar pagos y más. El flujo de compras sucede en el sitio web, el cual utiliza la API interna de MyKinsta para iniciar el proceso que necesitamos para hacer que se inscriba el usuario. La información sobre quién refirió al cliente también es registrada en nuestro sistema.

El MVP (Empezar a construir)

Cuando usted lanza algo nuevo, puede ser muy inteligente construir un PVM (producto viable mínimo) y empezar la mercadotecnia desde el inicio para tantear el terreno. Obtenga retroalimentación desde el principio y aprenda de esto. Adáptese, cambie y haga mejoras. Esto es exactamente lo que hicimos cuando lanzamos Kinsta, y ahora hemos empezado con un desde cero y creamos una empresa grande.

Sabíamos desde el principio que la parte más difícil del sistema sería la lógica que se hace cargo de rastrear y calcular comisiones. Inicialmente, el sistema entero estaba escrito en PHP y se basaba exclusivamente en Stripe para calcular todo de manera aleatoria.

La forma en que calculamos las comisiones, por la referencia, era ver el historial completo de Stripe de la suscripción referida y calcular cuántas comisiones únicas se deben y cuantas recurrentes se deben. Los factores como el tiempo transcurrido y tipo de plan también afectan a este cálculo.

Pagos de los sistemas de afiliados de Kinsta
Pagos de los sistemas de afiliados de Kinsta

Por ejemplo, si la referencia de WordPress fue creada hace dos días, no había, por su puesto, una comisión única. Si la referencia de WordPress fue creada hace cuatro meses, teníamos que asignar una comisión única (que se debía después de dos meses) y dos comisiones recurrentes (debidas una vez al mes después de la comisión única).

Para obtener la cantidad total de comisión a pagar por un mes, hicimos lo anterior con cada referencia de un afiliado en especifico. Esto resultó ser un cálculo muy intenso, más de lo que habíamos pensado. A partir de ese momento ya sabíamos que un cambio era necesario, pero logramos encontrar una buena solución intermedia entre funcionalidad y tiempo de desarrollo.

El frontend fue elaborado utilizando Flight PHP, un micro marco de PHP. Creamos algunas rutas, armamos unas tablas y gráficos, y así nos lanzamos.

FlightPHP

Cambiando el PVM (Adaptando y haciendo mejoras)

Después de siente meses en beta privado y quizás seis meses de operación regular necesitábamos reconstruir. Nuestro PVM original no fue hecho para escalar. Se necesitaba un cambio en la forma en que se manejaban las suscripciones debido a nuestros nuevos add-ons y sistemas excedentes. Hasta este punto, un cliente siempre tenía una suscripción. Necesitábamos cambiar eso y habilitar suscripciones múltiples por usuario.

Ya que nuestros clientes siempre tuvieron una única suscripción, podríamos decir con seguridad que cualquier suscripción activa de referencia era igual a un plan de hosting referido. En otras palabras, las suscripciones eran lo que nosotros considerábamos referencias. Necesitábamos hacer una mejora completa la cual considerará a nuestros clientes de Stripe como referencias.

Clientes referidos del sistema de afiliados de Kinsta
Clientes referidos del sistema de afiliados de Kinsta

Además de esto, la forma en que calculamos las comisiones empezó a mostrar su lado feo. Mayormente afectó a nuestros admins, pero teníamos algunos afiliados que sufrieron de cargas muy lentas, mientras calculábamos todas sus comisiones cada vez que ellos abrían su dashboard.

Para resumir todo, queríamos pasar el sistema completo al territorio de Node + React para poder utilizar el mismo stack que utilizamos en MyKinsta. Esto permitiría que muchos más de nuestros desarrolladores pudieran unirse si fuese necesario y para que empezarán a utilizar un lenguaje de diseño más común, de una forma mucho más sencilla.

El producto final

Cuando finalizamos la reconstrucción, nos quedamos con un sistema enormemente superior, que terminó requiriendo menos administración, brindaba más opciones, tareas comunes de admins de afiliados automatizadas, y compartía el mismo stack de tecnología que nuestro producto principal, MyKinsta.

El Stack

El sistema de afiliados ahora funciona con Node en el backend y React en el front. Utiliza GraphQL para nuestras necesidades de query y Ant Design para el marco de diseño.

nodejs

De hecho, hay cuatro procesos separados funcionando al mismo tiempo:

  • El backend de afiliados: Este es el backend de todo el sistema. Está completamente cerrado del mundo externo; solo las comunicaciones internas pueden alcanzarlo. Es básicamente un punto de entrada a la base de datos, todo lo que hace es aceptar y contestar las consultas de GraphQL.
  • Dashboard de afiliados: Este es el lado del sistema de afiliados que verán los usuarios. Este consiste en un montón de componentes de React que obtienen sus datos a través de queries de GraphQL del backend.
  • Admin de afiliados: Esta es la interfaz especial de admin donde los admins van para ver las estadísticas agregadas, administrar aplicaciones y hacer otras tareas
  • Sincronización de afiliados: Un conjunto de cron jobs que mantienen todo sincronizado – llegaremos a esta parte en un momento, ya que esto es lo mejor del sistema.

Mejoras de los datos y cálculos

En la versión inicial del sistema, calculamos todo de manera aleatoria. Vimos un sistema muy cargado de datos, pero esto no es malo porque si cambiábamos algo – como la cantidad de la comisión pagada – o cambia todo en retrospectiva o tendríamos que llenar el código con declaraciones basadas en datos.

El nuevo sistema de afiliados utiliza dos mecanismos para hacerlo mucho más eficiente: una mejor forma de agarrar datos de Stripe y un sistema contable para registrar eventos.

El sistema de eventos asegura que lo que pase, se mantenga. Si a una referencia se le debe una comisión única, nosotros registramos esa comisión y se la agregamos al referente. Luego marcamos esa persona y nunca más volvemos a ver esto de las comisiones únicas. El mismo mecanismo aplica para comisiones recurrentes. Una vez que se haya calculado y registrado la comisión recurrente de un periodo, nos “olvidamos” de ese periodo.

Esto quiere decir que los cálculos sólo deben hacerse por cortos periodos de tiempo y las agregaciones de las comisiones son hechas simplemente sumando algunas de las filas de la base de datos.

Un segundo componente depende de cron jobs para recolectar datos. Nosotros recolectamos todos los datos de Stripe cada 10 minutos y los guardamos en una base de datos local haciendo unas modificaciones para hacer un procesamiento futuro de forma más sencilla.

Por ejemplo, no toma una cantidad considerable de código descubrir si un evento de cambio de suscripción involucra un plan de hosting. Podemos calcular esto aleatoriamente cuando lo necesitamos, pero en lugar de hacer eso, utilizamos el cron job para agregar una marca al objeto almacenado. Ya que estamos agarrando 10 minutos de datos, el proceso completo toma por lo menos 100 milisegundos y hace que la selección de consultas futuras sea mucho más eficiente.

Un segundo con job, mezcla los datos en su lugar final, calculando comisiones, creando eventos, y otras operaciones.

La razón por la que esto se hace por separado es que la primera operación es súper sencilla, pero depende de Stripe mientras que la segunda operación es considerablemente más intensa y compleja. Si introducimos un bug a la segunda operación el cual la hace fallar, no necesitaremos re-sincronizar horas/días/semanas de los datos de Stripe; sólo necesitamos relanzar la segunda operación.

Esto brinda numerosos beneficios, cada cron job está hecho por varios componentes distintos, como obtener nuevas suscripciones, aprobar comisiones a la espera, entre otras cosas. En el futuro, podríamos querer desglosar mucho más nuestros cron jobs, para asegurarnos que podamos notar problemas lo más pronto posible, sin afectar otras partes del sistema.

¡Después de optimizar nuestros cálculos y movernos a un nuevo marco de trabajo nuestro dashboard de afiliados ahora carga dos veces más rápido que antes! 🚀

El sistema y programa de afiliados en acción

Este articulo no estaría completo sin mostrar nuestro programa y sistema de afiliados en acción. Aquí les dejamos algunas características y ventajas que ofrecemos a todos los afiliados en Kinsta.

El dashboard de afiliados de Kinsta
El dashboard de afiliados de Kinsta

1. Comisiones inigualables (Bono de inscripción + recurrente)

Hemos trabajando muy duro y por mucho tiempo en nuestra estructura de comisión y de pago, ya que es probablemente uno de los factores más importantes para los afiliados. De hecho, muchos bloggers y dueños de sitios a los que alojamos ganan lo suficiente para vivir a través de nuestro sistema de afiliados. ¡Estamos orgullosos de ofrecer ahora las mayores comisiones del sector! Y ofrecemos comisiones sin importar los servicios de alojamiento referidos.

Por cada plan de alojamiento WordPress de Kinsta que alguien refiera, obtendrá una bonificación de registro única, como se detalla a continuación:

  • Plan Inicial ($50)
  • Plan Pro ($100)
  • Negocios 1-4 ($150)
  • Empresas 1-2 ($500)

Los afiliados también reciben una comisión mensual recurrente del 10% por cada plan de WordPress que recomienden, además de la bonificación por registro. Y por las referencias de Alojamiento de Aplicaciones y Alojamiento de Bases de Datos, también ofrecemos comisiones recurrentes mensuales del 5%. Pero no nos quedamos ahí. Las comisiones recurrentes son acumulativas, por lo que es una de las mejores ofertas de la industria de alojamiento.

A continuación se muestran algunos de los muchos ejemplos que tenemos de cómo funcionan nuestros pagos de comisiones de WordPress. Puedes ver más ejemplos en nuestras condiciones de afiliación.

Ejemplo de bonificación por registro en WordPress

Ejemplo de pago al afiliado
Ejemplo de pago al afiliado

Ejemplo de comisión recurrente de WordPress

Ejemplo de comisión recurrente
Ejemplo de comisión recurrente

2. Rastreo en tiempo real

¡Nuestro dashboard de afiliado no es como los demás en el mercado! Puede ver datos de las afiliaciones prácticamente en tiempo real, vistas de página, suscripciones, detalles de los planes, e incluso poder checar las referencias individuales y ver todos los pagos de esa referencia (como se muestra abajo)

Enfoque al pago de afiliado de Kinsta
Enfoque al pago de afiliado de Kinsta

3. Alto valor de por vida

Una de las grandes ventajas de referir gente a Kinsta es que tenemos un alto valor de por vida por cada cliente. ¡Nuestra tasa de cancelación es del 2%! Esto quiere decir que los afiliados fácilmente pueden ganar comisiones recurrentes por todo el tiempo durante la actividad de ese cliente.

4. Pagos mensuales

No hay necesidad de que los afiliados se preocupen de tener que marcar sus calendarios. Kinsta siempre paga a tiempo y es enviado directamente a la cuenta de PayPal del afiliado cada mes.

5. Materiales Promocionales constantes

¿Necesita banners para promocionar Kinsta en un sitio web o blog? No se preocupe, ¡tenemos muchos de estos! Los banners promocionales y logos pueden ser descargados fácilmente desde el dashboard de afiliados.

Banners para los afiliados de Kinsta
Banners para los afiliados de Kinsta

6. Ventana larga de conversión

La gente normalmente está ocupada y puede que no sean convertidos al momento. Muchas veces, a la gente le gusta comparar precios cuando llega el momento de elegir un nuevo alojamiento en la nube. Es por eso que brindamos a los afiliados cookies de rastreo de 60 días para asegurar de que sean acreditados por la venta.

7. Preparado para ITP 2.0

¡El sistema de afiliados de Kinsta está listo para ITP 2.0! Intelligent Tracking Prevention 2.0 (ITP) es una nueva característica de Apple en Safari 11 y superior que esencialmente limita el acceso que las soluciones de seguimiento basadas en web tienen a las cookies en el navegador. Según un estudio reciente, en octubre de 2020, Safari sigue teniendo alrededor del 8% de la cuota de mercado de los navegadores web. Así que este cambio tiene un gran impacto en la industria de la publicidad.

Sin embargo, no se preocupe. El sistema de afiliados de Kinsta se basa únicamente en las cookies de origen sin rebotar u otros métodos de eludir ITP. Como resultado, todas las referencias se rastrearán y registrarán de manera apropiada como lo han sido antes de ITP 2.0.

Construimos el sistema deliberadamente sin recurrir a métodos «a prueba de ITP» por los siguientes motivos:

  1. Creemos en un seguimiento honesto y transparente, y en recopilar la menor cantidad de datos posible.
  2. No necesitamos rastrear a los visitantes a través de múltiples sitios.
  3. Anticipamos que las reglas de la web se vuelvan más estrictas con el paso del tiempo.

Puede leer más sobre las consecuencias de ITP 2.0.

8. Dashboard Multilingüe – Disponible en cinco idiomas

El dashboard de afiliados ya está disponible en ocho idiomas distintos y vienen más. Ahora puede elegir entre:

  • Inglés
  • Alemán
  • Francés
  • Español
  • Italiano
  • Holandés
  • Portugués
  • Japonés

9. Ayudando a los afiliados que tengan éxito

demás de construir un sorprendente sistema y dashboard de afiliados, realmente queremos que nuestros afiliados tengan éxito. No hay límite a la cantidad de dinero que pueden hacer. Cualquiera puede unirse completamente gratis. Inscríbase aquí.

Nota: Aprobamos las cuentas de afiliados manualmente, para asegurarnos que los sitios cumplan con nuestros términos de afiliados.

El equipo de marketing de Kinsta, junto con nuestro gestor de afiliados, están aquí para ayudar. Estamos encantados de ofrecer consejos de marketing de afiliación y consejos de ventas de afiliación sobre formas de llevar las promociones al siguiente nivel. De hecho, estamos trabajando en la producción de contenido adicional en nuestro blog diseñado específicamente para los vendedores afiliados, y las formas de aumentar las ganancias.

Resumen

Nuestro sistema actual de implementación ha demostrado ser mucho más estable, infinitamente más rápido y una mejor experiencia para nuestros afiliados y administradores. Creyó una fundación sólida en la que podemos construir un producto y programa fantástico.

Un gran beneficio es que podemos enfocar más en mejoras a la interfaz de usuario. Hemos agregado más gráficas, rastreo de URL y más apenas unos meses después de su lanzamiento. Planeamos seguir mejorando la experiencia del usuario aún más y brindar herramientas a nuestros afiliados, las cuales les permitirán ganar mucho más.

¡Todavía no nos encontramos cerca de nuestra magnífica visión, pero día a día, nos vamos acercando! 🤘

¿Está pensando en hacer su propio sistema de afiliados? No le mentiremos, esto requiere muchísimo trabajo, pero al final, vale la pena todo este esfuerzo. Ahora contamos con un sistema que llena de orgullo a todo nuestro equipo y que nuestros afiliados disfrutan de usar.

Daniel Pataki

Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space.

When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.