Siamo sinceri, la maggior parte dei sistemi di affiliazione sul mercato sono terribili. O sono complicati oltre ogni immaginazione, pesanti e lenti, oppure sembrano progettati negli anni ’90. O, peggio, sembrano una miscela di tutto questo. Alcuni potrebbero avere la metà degli strumenti di cui avete bisogno, ma poi mancano altre funzionalità essenziali per i marketer vostri affiliati. 😩

Da quando abbiamo lanciato Kinsta, la nostra missione è stata di non rilasciare mai ai nostri clienti niente che fosse al di sotto della media. La nostra regola è che, se c’è qualcosa che non useremmo noi stessi, allora ne dobbiamo trovare una migliore per i clienti. Così, proprio come abbiamo fatto con il cruscotto di MyKinsta, abbiamo deciso di creare un nostro sistema di affiliazione.

Oggi analizzeremo alcuni dei motivi che ci hanno condotto su questa strada, sia dal punto di vista del business e dello sviluppo, sia per quello che abbiamo concluso (da MVP al prodotto finale).

Perché ne Abbiamo Creato Uno Nostro

Quando abbiamo iniziato la ricerca di ciò che dovevamo fare per implementare un sistema di affiliazione, ci siamo subito resi conto che per noi non esisteva una soluzione pronta per l’uso. Eccone i principali motivi:

  • Il problema più grande era che il nostro sistema di affiliazione doveva essere strettamente associato ai nostri piani e al sistema di abbonamento, non ad un terzo fornitore.
  • Il branding è molto importante per noi. Mentre alcuni sistemi di affiliazione offrono soluzioni white-label (senza brand), la maggior parte sono implementazioni precotte e non sempre completamente trasparenti. Costruire il sistema noi stessi ci avrebbe consentito di avere il pieno controllo sul design e sul branding, senza doverci nemmeno preoccupare di personalizzare soluzioni esistenti.
  • Affidarsi ad un sistema di terzi ci avrebbe impedito di aggiungere nuove funzionalità rapidamente o ce lo avrebbe impedito del tutto. La maggior parte del nostro cruscotto MyKinsta è interamente basata sul feedback degli utenti, ed è per questo che è diventato uno dei migliori strumenti di gestione di siti WordPress nel nostro settore! Grazie ai nostri fantastici clienti. 👏 Sapevamo che, nel momento in cui avremmo lanciato una soluzione di terze parti, sarebbero arrivati i feedback e le richieste, ma non avremmo la possibilità di farli tenerne conto.
  • La capacità di fornire e creare rapporti personali, non solo per i nostri affiliati ma anche per i nostri amministratori, era qualcosa di cui non avremmo potuto fare a meno. Noi amiamo i dati e abbiamo bisogno di dati! In quale altro modo potreste prendere decisioni strategiche? È stato necessario anche estrarre i dati dei report dal nostro complesso sistema di piani iscrizioni.

Andando più in profondità, sapevamo che, una volta aperto il sistema di affiliazione al grande pubblico, non avremmo potuto più fermarci. Certo, gli errori vengono corretti, ma se avessimo avuto bisogno di cambiare il provider dei pagamenti, non avremmo potuto semplicemente mettere in attesa i nostri affiliati mentre trattenevamo il denaro che gli spettava.

Inoltre, la flessibilità era una delle nostre maggiori preoccupazioni. Cosa sarebbe successo se avessimo dovuto cambiare le regole di gestione delle sottoscrizioni (in realtà questo è successo davvero)? Saremmo stati in grado di gestire più lingue e valute? E che dire degli add-on sviluppati nel tempo, come Redis, i backup orari e così via. Avremmo potuto costruire una dashboard estendibile per i nostri utenti?

Da un punto di vista tecnico, utilizzare il software di qualcun altro si è rivelato completamente ridondante. Dato che abbiamo una modalità del tutto particolare di gestire gli abbonamenti tramite Stripe, avevamo bisogno di creare un sistema basato su cosa intendiamo noi per referral e qual sia il meccanismo di cambiamento per gli upgrade e i downgrade.

Stripe

Mentre sono sicuro che molte soluzioni dispongono di API, scrivere il codice per inviare i nostri dati all’API sarebbe consistito nell’80% del lavoro. Perché non aggiungere un ulteriore 20% e creare la nostra interfaccia utente, cosa che, in ogni caso, sappiamo fare molto bene.

Costi Coinvolti

Un’altra grande preoccupazione era il prezzo. Sul mercato ci sono prodotti economici, ma il taglio del prezzo è dovuto a riduzioni di funzionalità o di flessibilità. Altri si occupano per bene dei pagamenti ed offrono maggiori funzionalità, ma le loro commissioni crescono velocemente. Diamo un’occhiata al costo di alcuni dei servizi più popolari. Nota: alcuni di questi potrebbero essere contrattati un po’ in base al volume delle vendite e ad altri fattori.

  • ShareASale: canone di rete una tantum di $550, deposito di $100 e una commissione di transazione del 20% su ogni vendita.
  • CJ: canone di rete di $3.000, deposito di $3.000, canone di accesso annuale di $500 e tassa di transazione del 30% o $0,30 su ogni vendita – a seconda dell’importo superiore.
  • ClickBank: costi di attivazione di $49,95, costo di elaborazione del periodo di pagamento di $2,50 e commissione di transazione del 7,5% + $1 su ogni vendita.

Supponiamo di fare $250.000 all’anno dalle vendite degli affiliati, ecco a cosa dovrebbero arrivare le commissioni (questo va aggiunto ai depositi una tantum e le tariffe di accesso alla rete). A proposito, quali sono le tariffe per l’accesso alla rete? 🤔

  • ShareASale: $50.000 di canone
  • CJ: $75.000 di canone
  • ClickBank: $27.000 di canone

Urca! È davvero molto. E questo senza aver ancora calcolato quanto stiamo già pagando al nostro processore di pagamento Stripe. Abbiamo anche esaminato altri sistemi di affiliazione come Rakuten Marketing e Impact Radius, ma i costi erano ancora più alti.

Il vantaggio di creare il nostro sistema di affiliazione è che il nostro maggior costo sarebbe consistito semplicemente nel tempo necessario allo sviluppo. Abbiamo già avuto la grande capacità di costruirci tutto all’interno. Ma, come potete vedere, ci sono un sacco di parti in movimento e cose di cui tener conto quando si decide se far da sé o adottare una soluzione di terze parti.

Concetti Introduttivi su Come Funziona il Nostro Sistema di Affiliazione

Entrerò nei dettagli più avanti, ma per capire come abbiamo iniziato a costruire il nostro prodotto è utile conoscere il flusso base di dati.

Il punto di ingresso nel sistema è un link speciale che contiene un ID affiliato. Lo chiamiamo Kinsta ID affiliato o KAID in breve (esempio: https://kinsta.com?kaid=affiliateid)

La maggior parte degli altri strumenti di affiliazione generano confusione quando si va alla ricerca dell’URL da usare e della risorsa su cui puntare il link. Quindi sin dall’inizio abbiamo voluto creare un processo semplice, suddiviso in due fasi.

Passo 1

Il primo passo era quello di inserire la destinazione sul sito web di Kinsta. Questa potrebbe essere una qualunque pagina del sito, non solo la nostra home page. Può darsi che i nostri affiliati vogliano collegarsi direttamente alla nostra pagina dei piani (come nell’esempio qui sotto).

Creare un link di affiliazione Kinsta
Creare un link di affiliazione Kinsta

Passo 2

Il secondo passo sarebbe quello di generare il link per loro, in modo che possano facilmente copiarlo e incollarlo ovunque vogliano. Inoltre, è necessario fornire l’HTML di accompagnamento con l’attributo rel=”sponsored” (che è molto importante) per rispettare le linee guida di Google per i link di affiliazione. In precedenza Google raccomandava di utilizzare l’attributo nofollow, che è ancora un’opzione valida.

Creazione di un link di affiliazione e relativo codice HTML
Creazione di un link di affiliazione e relativo codice HTML

Quando rileviamo un visitatore che utilizza uno di questi link, impostiamo un cookie che contiene informazioni su chi ha riferito l’utente. Valutiamo il referente iniziale e non offriamo commissioni ripartite. Questo è più giusto per l’affiliato e porta ad una competizione basata sulla qualità piuttosto che sulla quantità.

Stripe gestisce tutti gli acquisti, e noi utilizziamo la sua ampia e (soprattutto) ben documentata API per creare utenti, abbonamenti, avviare pagamenti e altro ancora. Il flusso di acquisto avviene sul sito web, che a sua volta utilizza l’API interna di MyKinsta per avviare le procedure necessarie per l’iscrizione dell’utente. Sono registrate nel nostro sistema anche le informazioni su chi ha riportato il cliente.

L’MVP (Cominciare a Costruire)

Ogni volta che lanciatequalcosa di nuovo, può essere saggio costruire un MVP (Minimum Viable Product – Prodotto Minimo Funzionante) e avviare subito il marketing per testare il terreno. raccogliete i feedback al più presto e imparate da questi. Adattate, modificate e apportate miglioramenti. Questo è esattamente ciò che abbiamo fatto quando abbiamo lanciato Kinsta per la prima volta, ed è in questo modo che abbiamo portato le nostre entrate da 0 $ a 7 cifre.

Sapevamo fin dall’inizio che la parte più impegnativa del sistema sarebbe stata la progettazione della logica che su cui si basa il tracciamento e il calcolo delle commissioni. Inizialmente, l’intero sistema era scritto in PHP e si basava esclusivamente su Stripe per calcolare tutto ad-hoc.

Il modo in cui abbiamo calcolato le commissioni per un referral è stato quello di esaminare l’intera cronologia di Stripe riferita all’abbonamento in questione e di capire quanto è dovuto per commissioni una tantum e quanto per commissioni periodiche. Influenzano il calcolo fattori come il tempo trascorso e il tipo di piano.

Pagamenti del sistema di affiliazione di Kinsta
Pagamenti del sistema di affiliazione di Kinsta

Ad esempio, se il referral WordPress è stato creato due giorni fa, non c’era, ovviamente, nessuna commissione una tantum. Se il referral WordPress è stato creato quattro mesi fa, dovevamo assegnare la commissione una tantum (che è dovuta dopo due mesi) e due commissioni periodiche (dovute una volta al mese dopo la commissione una tantum).

Per ottenere l’importo totale della commissione da pagare per un mese, abbiamo fatto lo stesso calcolo per tutti i referral di uno specifico affiliato. Questo metodo richiedeva calcoli più complessi di quanto inizialmente pensassimo. Sapevamo che avremmo dovuto cambiare qualcosa, ma abbiamo trovato un buon compromesso tra funzionalità e tempo di sviluppo.

Il front-end è stato realizzato utilizzando Flight PHP, un micro-framework PHP. Abbiamo creato alcuni percorsi, messo insieme tabelle e grafici e siamo partiti.

FlightPHP

Cambiare l’MVP (Adattamenti e Miglioramenti)

Dopo circa sette mesi in beta privata, e forse sei mesi di operatività regolare, ci siamo trovati a dover ricostruire. Il nostro MVP originale non era stato creato per scalare. Era necessaria una modifica al modo in cui gestivamo gli abbonamenti a causa dei nostri nuovi componenti aggiuntivi e ai sistemi di eccedenza. Fino a questo punto, un cliente aveva sempre un abbonamento. Bisognava cambiare e consentire più abbonamenti per utente.

Dal momento che i nostri clienti hanno sempre avuto un solo e unico abbonamento, potevamo tranquillamente affermare che ogni abbonamento riferito attivo era uguale a un piano di hosting riferito. In altre parole, gli abbonamenti erano ciò che consideravamo referral. Dovevamo effettuare una revisione completa che considerasse i nostri clienti Stripe come referral.

Clienti riferiti dal sistema di affiliazione di Kinsta
Clienti riferiti dal sistema di affiliazione di Kinsta

Inoltre, il modo non ottimale con cui calcolavamo le commissioni stava iniziando a ridimensionarsi. Ha riguardato principalmente i nostri amministratori, ma abbiamo avuto 1-2 affiliati che hanno riscontrato tempi di caricamento più elevati mentre eseguivamo il calcolo di tutte le loro commissioni, ogni volta che visualizzavano la dashboard.

Per risolvere il problema, abbiamo deviso di spostare l’intero sistema nel territorio Node + React, per far sì che utilizzasse lo stesso stack di MyKinsta. Ciò avrebbe consentito di arruolare un maggior numero di sviluppatori, se fosse stato necessario, e di iniziare ad utilizzare più facilmente un linguaggio di progettazione comune.

Il Prodotto Finale

Quando abbiamo terminato la ricostruzione del sistema, avevamo un sistema di gran lunga superiore che richiedeva un’attività di gestione molto meno impegnativa, aveva molte più funzioni, automatizzava le comuni attività di amministrazione degli affiliati e condivideva lo stesso stack tecnologico del nostro prodotto principale, MyKinsta.

The Stack

Il sistema di affiliazione ora gira su Node nel backend e React sul front. Utilizza GraphQL per le nostre esigenze di query e Ant Design per il framework di progettazione.

nodejs

In realtà sono in esecuzione quattro processi separati nello stesso tempo:

  • Backend di Affiliazione: è il backend dell’intero sistema. È completamente isolato dal mondo esterno; possono raggiungerlo solo comunicazioni interne. È fondamentalmente un punto di ingresso nel database, tutto ciò che fa è accettare e rispondere alle query GraphQL
  • Cruscotto di Affiliazione: questo è il lato utente del sistema di affiliazione. Consiste in un gruppo di componenti React che ricevono i propri dati da query GraphQL dal back-end
  • Amministrazione di Affiliazione: è una speciale interfaccia di amministrazione dove gli amministratori vanno a controllare le statistiche aggregate, a gestire le applicazioni e ad eseguire altre attività
  • Sync Affiliazione: un insieme di cron job che mantiene tutto sincronizzato – descriveremo meglio questa parte perché è il cuore del sistema

Miglioramenti a Dati e Calcoli

Nella versione iniziale del sistema, abbiamo calcolato tutto ad-hoc. Questo ha dimostrato di aver bisogno di molti dati, ma non era un sistema ottimale perché, se avessimo cambiato qualcosa – come l’importo della commissione pagata – bisognava cambiare tutto in retrospettiva, oppure avremmo avuto bisogno di creare disordine nel codice con istruzioni condizionali basate sui dati.

Il nuovo sistema di affiliazione utilizza due meccanismi che lo rendono molto più efficiente: un modo migliore per acquisire dati da Stripe e un sistema di contabilità per registrare gli eventi.

Il sistema degli eventi assicura che qualunque cosa accada, rimanga. Se un referral è dovuto ad una commissione una tantum, registriamo tale commissione e la attribuiamo al referral. Contrassegniamo quindi questo referral e non guardiamo più alle commissioni una tantum. Lo stesso meccanismo si applica alle commissioni periodiche. Una volta che un periodo ha visto calcolata e registrata la sua commissione periodica, “dimentichiamo” quel periodo.

Ciò significa che i calcoli devono essere eseguiti solo per brevi periodi di tempo e le aggregazioni delle commissioni vengono fatte semplicemente sommando alcune righe del database.

Il secondo componente si basa su cron jobs per raccogliere dati. Raccogliamo tutti i dati da Stripe ogni 10 minuti e li salviamo in un database locale apportando alcune modifiche per semplificare ulteriormente l’elaborazione.

Ad esempio, ci vuole una quantità non trascurabile di codice per capire se un evento di modifica dell’abbonamento coinvolge un piano di hosting. Possiamo calcolarlo ogni volta che è necessario, ma piuttosto che calcolarlo, utilizziamo il cron job per aggiungere un flag all’oggetto salvato. Dato che stiamo acquisendo 10 minuti di dati, l’intero processo richiede forse 100 millisecondi e rende le query di selezione ulteriormente molto più efficienti.

Un secondo cron job spinge i dati nella loro posizione finale, calcolando commissioni, creando eventi ed effettuando altre operazioni.

La ragione per cui queste operazioni sono eseguite separatamente è che la prima operazione è semplicissima, ma si basa su Stripe, mentre la seconda operazione è molto più intensa e complessa. Se introducessimo nella seconda operazione un bug che la facesse fallire, non avremo bisogno di risincronizzare ore/giorni/settimane di dati Stripe; dovremo solo rieseguire la seconda operazione.

Questa configurazione offre numerosi altri vantaggi. Ogni cron job è composto da operazioni distinte, come ottenere nuovi abbonamenti, approvare commissioni in sospeso e così via. In futuro, potremmo suddividere ulteriormente i nostri cron job per essere sicuri di poter individuare i problemi il prima possibile senza che siano interessate altre parti del sistema.

Dopo aver ottimizzato i nostri calcoli ed aver adottato un nuovo framework, il nostro cruscotto di affiliazione ora carica al doppio della velocità! 🚀

Il Sistema di Affiliazione e il Programma in Azione

Il post non sarebbe completo senza mostrare il nostro sistema di affiliazione e il programma in azione. Ecco alcune delle caratteristiche e dei vantaggi che offriamo a tutti gli affiliati di Kinsta.

Cruscotto affiliazione di Kinsta
Cruscotto affiliazione di Kinsta

1. Commissioni Imbattibili (Bonus Iscrizione + Commissione Periodica)

Abbiamo lavorato a lungo e duramente sulla nostra commissione e sulla struttura dei pagamenti, poiché ci rendiamo conto che questo è probabilmente uno dei fattori più importanti per gli affiliati. Infatti, molti blogger e proprietari di siti web che ospitiamo si guadagnano da vivere con il reddito generato dalle affiliazioni. Siamo fieri di offrire i pagamenti più alti del settore! Inoltre, offriamo commissioni a prescindere dai servizi di hosting indicati.

Per ogni piano di hosting WordPress Kinsta che segnalate, ricevete un bonus di iscrizione una tantum, come segue:

  • Piano Starter ($50)
  • Piano Pro ($100)
  • Busines 1-4 ($150)
  • Enterprise 1-2 ($500)

Gli affiliati ricevono anche una commissione mensile ricorrente del 10% per ogni referral WordPress, oltre al bonus di iscrizione. E per i referral di Hosting di applicazioni e Hosting di database, offriamo anche il 5% di commissioni mensili ricorrenti. Ma aspettate, non ci fermiamo qui! Le commissioni ricorrenti sono cumulative, il che le rende una delle migliori offerte del settore dell’hosting.

Di seguito riportiamo solo alcuni dei numerosi esempi di come funzionano i pagamenti delle commissioni per WordPress. Ulteriori esempi di pagamento sono riportati nelle nostre condizioni di affiliazione.

Esempio di bonus di iscrizione WordPress

Esempio di pagamento di affiliazione
Esempio di pagamento di affiliazione

Esempio di commissione ricorrente per WordPress

Esempio di commissione periodica
Esempio di commissione periodica

2. Monitoraggio in tempo reale

Il nostro cruscotto di affiliazione è diverso da qualsiasi altro sul mercato! Potete visualizzare i dati di affiliazione quasi in tempo reale, visualizzazioni di pagina, dati approfonditi sui piani, e persino andare nello specifico dei singoli referral e controllare tutti i pagamenti generati da tale referral (come mostrato di seguito).

Dettaglio dei pagamenti di affiliazione Kinsta
Dettaglio dei pagamenti di affiliazione Kinsta

3. Elevato Valore Permanente

Uno dei maggiori vantaggi che si hanno nel riferire persone a Kinsta è dato dal fatto che noi offriamo un valore permanente incredibilmente alto per ogni cliente. Il nostro tasso di abbandono è inferiore al 2%! Ciò significa che gli affiliati possono facilmente guadagnare commissioni periodiche per tutta la vita di quel cliente.

4. Pagamenti Mensili

Non c’è bisogno che gli affiliati si preoccupino o segnino i loro calendari. Kinsta paga sempre in tempo e il pagamento viene inviato direttamente al conto PayPal degli affiliati ogni mese.

5. Materiali Promozionali Pronti

Avete bisogno di banner per promuovere Kinsta su un sito web o su un blog? Non preoccupatevi, ne abbiamo molti! I banner e i loghi promozionali possono essere facilmente accessibili direttamente dal cruscotto di affiliazione.

Banner di affiliazione di Kinsta
Banner di affiliazione di Kinsta

6. Lunga Finestra di Conversione

La gente è indaffarata e potrebbe non convertire immediatamente. Spesso le persone amano fare acquisti quando si tratta di scegliere un nuovo host cloud. Ecco perché forniamo ai nostri affiliati cookie di tracciamento di 60 giorni per essere sicuri che gli venga riconosciuta la vendita.

7. Pronto per ITP 2.0

Il sistema di affiliazione di Kinsta è pronto per ITP 2.0! L’Intelligent Tracking Prevention 2.0 (ITP) è una nuova impostazioni della Apple per Safari 11 e superiori che essenzialmente limita le soluzioni di monitoraggio basate sull’accesso ai cookie nel browser. Secondo Statcounter, ad ottobre 2018, Safari detiene ancora una quota di mercato dei browser di oltre il 15%. Quindi questa novità ha un grande impatto sul mercato pubblicitario.

Ma non preoccupatevi. Il sistema di affiliazione di Kinsta si basa esclusivamente sui cookie di prima parte senza rimbalzi o altri metodi per aggirare l’ITP. Di conseguenza, tutti i referral saranno tracciati e registrati in modo appropriato, come lo erano prima di ITP 2.0.

Abbiamo deliberatamente creato il sistema senza ricorrere ai metodi “ITP-proof” per i seguenti motivi:

  1. Crediamo in un monitoraggio onesto e trasparente e raccogliamo il minor numero possibile di dati.
  2. Non è necessario tenere traccia dei visitatori attraverso più siti.
  3. Abbiamo anticipato le regole del web che stanno diventando più severe con il tempo.

Potete leggere di più sulla ramificazione di ITP 2.0.

8. Cruscotto Multilingua – Disponibile in Cinque Lingue

Il nostro cruscotto di affiliazione di Kinsta è ora disponibile in otto diverse lingue e ne stanno arrivando altre. Al momento potete scegliere tra le seguenti:

  • Inglese
  • Tedesco
  • Francese
  • Spagnolo
  • Italiano
  • Olandese
  • Portoghese
  • Giapponese

9. Supporto degli Affiliati per Avere Successo

Oltre a creare un fantastico sistema di affiliazione e un cruscotto eccezionale, vogliamo davvero che gli affiliati abbiano successo. Non c’è davvero alcun limite alla quantità di denaro che possono guadagnare. L’affiliazione è completamente gratuita per chiunque. Iscrivitevi qui.

Nota: approviamo manualmente gli account affiliati, solo per garantire che i siti rispettino i nostri termini di affiliazione.

Il team marketing di Kinsta e il nostro affiliate manager sono a disposizione per aiutarvi. Amiamo dare suggerimenti sul marketing e sulle vendite di affiliazione e su come migliorare le vostre promozioni. In effetti, stiamo lavorando alla produzione di contenuti aggiuntivi sul nostro blog progettati appositamente per i rivenditori affiliati, e nuovi modi per aumentare i guadagni.

Riepilogo

La nostra attuale implementazione si è rivelata molto più stabile, estremamente più veloce, ed offre un’esperienza migliore per i nostri affiliati e amministratori. Ha stabilito una solida base su cui possiamo costruire un prodotto e un programma fantastici.

Un grande vantaggio è che ora possiamo concentrarci maggiormente sui miglioramenti rivolti all’utente. Abbiamo aggiunto più grafici, il monitoraggio degli URL e altro ancora nel giro di un paio di mesi dopo il rilascio. Abbiamo in programma di migliorare ulteriormente l’esperienza dell’utente e fornire strumenti ai nostri affiliati che consentano loro di guadagnare di più.

E non abbiamo mica finito! 🤘

Stai pensando di costruire il vostro sistema di affiliazione? Non vi mentiremo, c’è molto lavoro da fare, ma ne vale il tempo e la pena. Ora abbiamo un sistema di cui tutto il nostro team è orgoglioso e che gli affiliati si divertono ad utilizzare.

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.