Laten we eerlijk zijn: de meeste affiliate-systemen op de markt zijn verschrikkelijk. Ze zijn verwarrend, onoverzichtelijk, traag of ze zien eruit alsof ze zijn ontworpen in de jaren ’90. Of erger nog, een mix van al het bovenstaande. Sommigen hebben misschien maar de helft van de tools die je nodig hebt en missen essentiële functies die je als affiliate-marketeer wil hebben. 😩

Sinds we Kinsta hebben gelanceerd, was het onze missie om uitsluitend kwalitatief hoogstaande producten uit te brengen. Een standaard die we aanhouden is dat als we iets niet zelf zouden gebruiken, we iets anders moeten bedenken. Dus net zoals we deden met ons MyKinsta-dashboard, hebben we besloten om zelf iets op te bouwen.

Vandaag bespreken we een aantal redenen waarom we deze route betraden, zowel vanuit het oogpunt van business en ontwikkeling, maar we bespreken ook het product zoals het uiteindelijk tot stand is gekomen (van MVP tot het eindproduct).

Waarom we ons eigen systeem maakten

Toen we begonnen met onderzoeken wat er moest gebeuren om een ​​affiliate-systeem te implementeren, beseften we al snel dat er geen out-of-the-boxoplossing voor ons bestond. Dit zijn de belangrijkste redenen waarom:

  • Het grootste probleem was dat ons affiliate-systeem nauw gekoppeld moest worden aan ons abonnementsysteem en niet aan een externe provider.
  • Branding is erg belangrijk voor ons. Hoewel sommige affiliate-systemen white-label-oplossingen bieden, zijn de meeste halfbakken implementaties en niet altijd volledig transparant. Door ons eigen systeem te bouwen, hebben we volledige controle over het ontwerp en de branding en hoeven we ons helemaal niet meer druk te maken over het white-label-aspect van een systeem.
  • Door in zee te gaan met een systeem van een derde partij kunnen we niet of nauwelijks nieuwe functies toevoegen. Het grootste deel van ons customized MyKinsta-dashboard is volledig gebouwd op basis van gebruikersfeedback en is daarom een ​​van de beste WordPress-tools voor sitebeheer in de branche geworden! Dank aan onze geweldige klanten. 👏 Hadden we wel de keuze gemaakt om met een extern affiliate-systeem te werken, dan wisten we zeker we niet in staat zouden zijn om jullie feedback en verzoeken toe te passen op dit systeem.
  • De mogelijkheid om aangepaste rapportages te bieden en te genereren, niet alleen voor onze affiliate-partners maar ook voor onze eigen administrators, was iets waar we niet zonder konden. We zijn dol op data en hebben data nodig! Hoe moet je anders in de toekomst strategische beslissingen nemen? We hebben een complex pakket- en abonnementensysteem en het rapportagesysteem moest hierop aan kunnen sluiten.

Nog wat meer hierover: we wisten dat we niet meer terug konden krabbelen wanneer we eenmaal een affiliate-systeem hadden gelanceerd. Bugs kan je nooit voorkomen en zijn te fiksen, maar als we van betalingsprovider zouden moeten wisselen, dan hadden we een probleem. We zetten onze affiliate-partners natuurlijk niet in de wacht wat betreft uitbetalingen, het is natuurlijk geld waar ze recht op hebben.

Ook flexibiliteit was een groot probleem. Wat als we de interne processen achter onze abonnementen zouden wijzigen (dit is ook gebeurd), zouden we in staat zijn om meerdere talen en valuta’s af te handelen? Wat dacht je van add-ons die we in de tussentijd zouden ontwikkelen, zoals Redis, uurlijkse back-ups, enzovoort? Kunnen we een uitbreidbaar dashboard bouwen voor onze gebruikers?

Vanuit technisch oogpunt leek het volledig overbodig om de software van iemand anders te gebruiken. Omdat we een specifieke manier hebben om abonnementen via Stripe af te handelen, moesten we onze eigen logica schrijven voor wat een affiliate is en wat het wijzigingsmechanisme is voor upgrades en downgrades.

Stripe

Hoewel we zeker weten dat veel oplossingen API’s hebben, is het schrijven van de code om onze gegevens naar de API te sturen 80% van het werk. Waarom niet een extra 20% toevoegen en onze eigen gebruikersinterface maken waar we sowieso behoorlijk goed in zijn?

Kosten

Een andere grote zorg was de prijs. Er zijn goedkope producten op de markt, maar die vielen al snel af vanwege feature- of flexibiliteitsproblemen. Andere oplossingen doen hun werk goed en hebben meer functies, maar hun kosten lopen snel op. Laten we eens kijken naar de kosten van de meest populaire alternatieven. Opmerking: bij sommige kan misschien worden onderhandeld op basis van het verkoopvolume en andere factoren.

  • ShareASale: $550 eenmalige activatiekosten, $100 aanbetaling en 20% transactiekosten bij elke verkoop.
  • CJ: $3.000 eenmalige activatiekosten, $3.000 aanbetaling, $500 jaarlijkse toegangsvergoeding en 30% transactiekosten of $0,30 bij elke verkoop – welk bedrag dan ook hoger is.
  • ClickBank: $49,95 eenmalige activatiekosten, $2,50 verwerkingskosten voor de betaalperiode en 7,5% transactiekosten + $1 voor elke verkoop.

Laten we zeggen dat we $250.000 per jaar aan affiliateverkopen doen, dan zouden dit de kosten zijn (dit is na de eenmalige aanbetalingen plus netwerktoegangskosten). En wat zijn netwerktoegangskosten überhaupt? 🤔

  • ShareASale: $50,000 in kosten
  • CJ: $75,000 in kosten
  • ClickBank: $27,000 in kosten

Yikes! Dat is veel. En dat is voordat je de andere kosten berekent die we al aan onze betalingsprocessor Stripe betalen. We hebben ook gekeken naar andere aangesloten systemen zoals Rakuten Marketing en Impact Radius, maar de kosten waren daar nóg hoger.

Het voordeel van het maken van ons eigen affiliate-systeem is dat onze grootste kosten uit ontwikkelingstijd bestaan. Gelukkig hadden we al het geweldige talent in huis om alles te bouwen, maar zoals je kunt zien zijn er veel dingen om te overwegen bij het kiezen of je zelf iets bouwt of toch voor een externe optie gaat.

De basis van hoe ons affiliate systeem werkt

We zullen verderop ingaan op de details, maar om te begrijpen hoe we begonnen zijn met het bouwen van het product, is het handig om te weten hoe onze data flow in de basis werkt.

Het punt van binnenkomst – point of entry – in het systeem is een speciale link die een affiliate ID bevat. We noemen dit de Kinsta affiliate ID of KAID afgekort (voorbeeld: https://kinsta.com?kaid=affiliateid)

De meeste andere affiliate-tools zijn ronduit verwarrend als het gaat om het weten van welke URL je moet gebruiken en waar je naar moet linken, dus wilden we het een eenvoudig proces met twee stappen maken.

Stap 1

De eerste stap is om de bestemming op de Kinsta-website in te voeren. Dit kan overal zijn, niet alleen onze startpagina. Misschien willen ze rechtstreeks linken naar onze abonnementspagina (zoals hieronder te zien is).

Maak Kinsta affiliate link
Maak Kinsta affiliate link

Stap 2

De tweede stap zou zijn om de link voor ze te genereren, zodat ze die gemakkelijk kunnen kopiëren en plakken waar ze maar willen. En ook om de begeleidende HTML te voorzien van het rel=” sponsored” linkattribuut (wat erg belangrijk is) om te voldoen aan Google’s richtlijnen voor affiliatelinks. Google adviseerde eerder om het nofollow attribuut te gebruiken, wat nog steeds een werkbare optie is.

Maak affiliate link en HTML code
Maak affiliate link en HTML code

Wanneer we een bezoeker detecteren die zo’n link gebruikt, stellen we een cookie in met informatie over wie de gebruiker heeft doorverwezen. We willen de oorspronkelijke verwijzer belonen en bieden daarom geen gedeelde commissies. Dit is eerlijker voor de affiliate en leidt tot een competitie van kwaliteit boven kwantiteit.

Stripe behandelt alle aankopen; we gebruiken de uitgebreide en (meestal) goed gedocumenteerde API om gebruikers aan te maken, abonnementen in te voeren, betalingen in gang te zetten en meer. De aankoop vindt plaats op de website, die op zijn beurt de interne API van MyKinsta gebruikt om de processen op gang te brengen die nodig zijn om de gebruiker te laten registreren. De informatie over wie de klant heeft doorverwezen wordt ook vastgelegd in ons systeem.

Het MVP (Starten met bouwen)

Wanneer je iets nieuws start, kan het verstandig zijn om een ​​MVP (minimaal levensvatbaar product) te bouwen en direct de marketing te starten om de interesse te peilen. Krijg vroeg feedback en leer ervan. Zo kun je je product aanpassen, veranderen en verbeteringen aanbrengen. Dit is precies wat we hebben gedaan toen we Kinsta voor het eerst lanceerden en hoe we van $0 naar 7-cijferige omzet zijn gegaan.

We wisten vanaf het begin dat het meest uitdagende deel van het systeem de logica zou zijn die zorgt voor het bijhouden en berekenen van commissies. Aanvankelijk was het hele systeem geschreven in PHP en berustte het uitsluitend op Stripe om alles ad-hoc te berekenen.

De manier waarop we de provisies voor een affiliate berekenen was om naar de hele Stripe-geschiedenis te kijken en uit te zoeken hoeveel eenmalige commissie verschuldigd zijn en hoeveel terugkerende commissie verschuldigd zijn. Factoren zoals verstreken tijd en het type van het plan zouden van invloed zijn op de berekening.

Kinsta affiliate systeem betalingen
Kinsta affiliate systeem betalingen

Als de WordPress verwijzing bijvoorbeeld twee dagen geleden werd gemaakt, was er uiteraard geen eenmalige commissie. Als de WordPress verwijzing vier maanden geleden werd aangemaakt, moesten we de eenmalige commissie (die na twee maanden verschuldigd is) en twee terugkerende commissies (die één keer per maand na de eenmalige commissie verschuldigd zijn) toekennen.

Om het totale bedrag aan commissie voor een kalendermaand te krijgen, hebben we het bovenstaande gedaan voor alle referrals van een specifieke affiliate-partner. Dit berekenen bleek veel meer tijd te kosten dan we aanvankelijk dachten. We wisten dat we een verandering moesten aanbrengen en vonden een goed compromis tussen functionaliteit en ontwikkeltijd.

De front-end werd gebouwd met behulp van Flight PHP, een PHP-micro-framework. We creëerden een aantal routes, stelden een aantal tabellen en grafieken samen en zijn gestart.

FlightPHP

Het MVP wijzigen (aanpassen en verbeteren)

Na ongeveer zeven maanden in privé-bèta en ongeveer zes maanden in normaal gebruik, moesten we alles opnieuw opbouwen. Onze oorspronkelijke MVP was namelijk gemaakt voor de aantallen die we inmiddels moesten verwerken. Er moest een verandering worden aangebracht in de manier waarop we met abonnementen omgingen, vanwege onze nieuwe add-ons en het feit dat ons systeem nu ook overschrijdingen moest kunnen hanteren. Tot dan toe had een klant altijd maar één abonnement. Dit moest veranderen en het systeem moest rekening houden met meerdere abonnementen per gebruiker.

Aangezien onze klanten altijd maar één abonnement hadden, konden we stellen dat elk actief abonnement die via een affiliate kwam gelijk was aan een doorverwezen hostingplan. Met andere woorden, abonnementen stonden gelijk aan referrals. We moesten een complete revisie uitvoeren over hoe Stripe dacht over affiliates.

Kinsta affiliate systeem referrals
Kinsta affiliate systeem referrals

Bovendien begon de manier waarop we de commissies berekenden zijn beperkingen te hebben. Deze beperkingen golden voornamelijk voor onze admins, maar er waren ook een aantal affiliates die door hun grootte hogere laadtijden ervoeren bij het berekenen van hun commissies.

Om deze sectie af te ronden: we wilden we het hele systeem naar Node + React verplaatsen zodat we dezelfde stack kon gebruiken als MyKinsta. Hierdoor zouden meer van onze ontwikkelaars mee kunnen helpen, indien nodig, en konden we een gemeenschappelijke ontwerptaal te kunnen gebruiken.

Het eindproduct

Toen we klaar waren met de revisie konden we gebruik maken van een superieur systeem dat veel minder beheer vereiste, over veel meer functies en geautomatiseerde beheertaken beschikte en dezelfde technologie-stack gebruikte als ons hoofdproduct, MyKinsta.

De Stack

Het affiliate-systeem draait nu op Node op de back-end en React op de front-end. Het gebruikt GraphQL voor onze querybehoeften en Ant Design voor het ontwerpframework.

nodejs

Er zijn vier afzonderlijke processen die tegelijkertijd actief zijn:

  • Affiliate Backend: Dit is de back-end van het hele systeem. Het is volledig afgesloten van de externe wereld; alleen interne communicatie kan dit bereiken. Het is in feite een toegangspunt tot de database, het enige dat het doet is het accepteren en beantwoorden van GraphQL-query’s
  • Affiliate Dashboard: Dit is de gebruikerskant van het affiliate-systeem. Het bestaat uit een stel React-componenten die hun data via GraphQL-query’s van de back-end halen
  • Affiliate Admin: Dit is een speciale admin-interface waar de admins naar statistieken kijken, applicaties beheren en andere taken uitvoeren
  • Affiliate Sync: Een reeks cron-taken waarmee alles gesynchroniseerd blijft – we bespreken hieronder dit onderdeel omdat dit de basis is voor het systeem

Verbeteringen in gegevens en berekeningen

In de eerste versie van het systeem werd alles ad hoc berekend. Dit bleek niet alleen data-intensief te zijn, maar was verder ook vrij gelimiteerd. Als we iets wilden veranderen, zoals het bedrag aan betaalde commissie, dan werden deze wijzigingen ook voor het verleden doorgevoerd – of we moesten de code aanvullen met op datum gebaseerde if-statements.

Het nieuwe affiliate-systeem gebruikt twee mechanismen om het een stuk efficiënter te maken: een betere manier om gegevens uit Stripe te halen en een logboeksysteem om gebeurtenissen te registreren.

Het gebeurtenissensysteem zorgt ervoor dat als we iets hebben gelogd, we deze meteen afschrijven. Als een affiliate een eenmalige commissie verschuldigd is, registreren we die commissie en voegen deze toe aan de affiliate. Vervolgens markeren we die affiliate en kijken we verder niet meer om na deze opdracht. Hetzelfde mechanisme is van toepassing op terugkerende commissies. Kortom: als een terugkerende commissie uit een bepaalde periode eenmaal is berekend en geregistreerd, “vergeten” we die periode.

Dit betekent dat berekeningen alleen hoeven te worden gedaan voor korte tijdsperioden en dat optellingen van commissies worden gedaan door simpelweg enkele databaserijen bij elkaar op te tellen.

Het tweede component is afhankelijk van cron-taken om gegevens te verzamelen. We nemen elke 10 minuten alle gegevens van Stripe en slaan deze op in een lokale database om enkele aanpassingen aan te brengen om verwerking eenvoudiger te maken.

Het vereist bijvoorbeeld een grote hoeveelheid code om te achterhalen of het wijzigen van een pakket betrekking heeft op een hostingplan. We kunnen deze ad-hoc berekenen wanneer dat nodig is, maar in plaats van dat te doen, gebruiken we de cron-taak om een ​​flag aan het opgeslagen object toe te voegen. Omdat we per keer 10 minuten aan gegevens verzamelen, duurt het hele proces misschien 100 milliseconden en worden verdere zoekopdrachten een stuk efficiënter.

Een tweede cron-taak verplaatst de gegevens naar de uiteindelijke plaats, berekent commissies, creëert gebeurtenissen en maakt andere bewerkingen.

De reden dat deze componenten afzonderlijk van elkaar worden uitgevoerd is omdat de eerste bewerking vertrouwt op Stripe, terwijl de tweede bewerking aanzienlijk intensiever en complexer is. Als we een fout invoeren in de tweede bewerking waardoor deze mislukt, hoeven we de uren/dagen/weken aan Stripe-gegevens niet opnieuw te synchroniseren; we hoeven dan alleen de tweede operatie opnieuw uit te voeren.

Deze set-up biedt tal van andere voordelen, elke cron-taak is op zijn beurt weer opgebouwd uit verschillende afzonderlijke componenten, zoals het ontvangen van nieuwe abonnementen, het goedkeuren van lopende opdrachten enzovoort. In de toekomst kunnen we onze cron-taken verder weghalen om ervoor te zorgen dat we problemen zo vroeg mogelijk kunnen opvangen zonder andere delen van het systeem te beïnvloeden.

Na het optimaliseren van onze calculaties en het overstappen naar een nieuw framework, laadt ons affiliate-dashboard nu twee keer zo snel! 🚀

Het affiliate-systeem en -programma in actie

Het artikel zou niet compleet zijn zonder ons affiliate-systeem en -programma in actie te laten zien. Hier zijn slechts enkele van de functies en voordelen die we aanbieden aan alle affiliate-partners van Kinsta.

Kinsta affiliate dashboard
Kinsta affiliate dashboard

1. Onverslaanbare commissies (registratiebonus + terugkerende betalingen)

We hebben hard gewerkt aan onze commissie- en uitbetalingsstructuur, omdat we ons realiseren dat dit waarschijnlijk een van de belangrijkste factoren is voor partners. In feite verdienen veel bloggers en website-eigenaren die we hosten al hun geld met affiliate-inkomsten. We zijn er trots op dat we nu de hoogste uitbetalingen in de branche bieden! En we bieden commissies ongeacht de hostingdiensten die worden doorverwezen.

Voor elk Kinsta WordPress hostingspakket dat iemand doorverwijst, krijgen ze een eenmalige inschrijvingsbonus:

  • Starter-pakket ($50)
  • Pro-pakket ($100)
  • Business 1-4 ($150)
  • Enterprise 1-2 ($500)

Affiliates krijgen ook een maandelijks terugkerende commissie van 10% voor elke WordPress verwijzing, bovenop de inschrijvingsbonus. En voor verwijzingen naar Applicatie Hosting en Database Hosting bieden we ook 5% maandelijks terugkerende commissie. Maar wacht, dat was het nog niet! De terugkerende commissies zijn cumulatief, wat het een van de beste aanbiedingen in de hostingbranche maakt.

Hieronder staan slechts een paar van de vele voorbeelden die we hebben van hoe onze WordPress commissie-uitbetalingen werken. Bekijk meer voorbeelden van uitbetalingsscenario’s in onze affiliatevoorwaarden.

WordPress voorbeeld inschrijvingsbonus

Affiliate betaling voorbeeld
Affiliate betaling voorbeeld

WordPress voorbeeld terugkerende commissie

Terugkerende commissie voorbeeld
Terugkerende commissie voorbeeld

2. Real-time volgen

Ons affiliate-dashboard is uniek! Je kunt affiliate-gegevens bijna in real-time bekijken. Denk hierbij aan paginaweergaven, abonnementen, gedetailleerde planningsdetails en zelfs inzoomen naar individuele referrals (en alle betalingen van die ene affiliate) is mogelijk – zoals hieronder te zien is.

Kinsta affiliate betaling drill-down
Kinsta affiliate betaling drill-down

3. Hoge lifetime waarde

Een van de grootste voordelen van het verwijzen van mensen naar Kinsta is dat we een ongelooflijk hoge lifetime waarde hebben voor elke klant. Onze churn rate is minder dan 2%! Dit betekent dat shops gemakkelijk terugkerende commissies kunnen verdienen voor de levensduur van die klant.

4. Maandelijkse uitbetalingen

Het is niet nodig dat affiliates zich zorgen maken of hun agenda’s omcirkelen. Kinsta betaalt altijd op tijd en de uitbetaling wordt elke maand rechtstreeks naar het PayPal-account van de partners verzonden.

5. Snelle promotiematerialen

Banner nodig om Kinsta op een website of blog te promoten? Maak je geen zorgen, we hebben er een heleboel! De promotiebanners en -logo’s kunnen allemaal eenvoudig worden geopend vanaf het affiliate-dashboard.

Kinsta affiliate banners
Kinsta affiliate banners

6. Lange conversietijd

Vaak willen mensen graag eerst rondkijken als het tijd is om een nieuwe cloud host te kiezen. Dat is waarom wij 60-dagen trackingcookies hebben, wat de kans vergroot dat jouw referral ook daadwerkelijk aan jou gecrediteerd wordt. p.

7. ITP 2.0 Ready

Het aangesloten Kinsta-systeem is klaar voor ITP 2.0! Intelligent Tracking Prevention 2.0 (ITP) is een nieuwe instelling van Apple in Safari 11 en hoger die in essentie de toegang beperkt die webgebaseerde tracking-oplossingen hebben voor cookies in de browser. Volgens een recente studie heeft Safari vanaf oktober 2020 nog steeds ongeveer 8% van het marktaandeel van webbrowsers in handen. Deze verandering heeft dus grote gevolgen voor de reclame-industrie.

Maar maak je geen zorgen. Het Kinsta affiliate-systeem vertrouwt uitsluitend op first-party cookies zonder bounces of andere methoden om ITP te omzeilen. Als gevolg hiervan worden alle affiliateen op de juiste manier bijgehouden en geregistreerd zoals ze waren vóór ITP 2.0.

We hebben het systeem opzettelijk gebouwd zonder gebruik te maken van “ITP-proof” -methoden om de volgende redenen:

  1. Wij geloven in eerlijke, transparante tracking en het verzamelen van zo min mogelijk gegevens.
  2. We hoeven bezoekers niet via meerdere sites bij te houden.
  3. We anticipeerden dat de regels van het web in de loop van de tijd strenger zouden worden.

Je kunt hier meer over lezen over de consequenties van ITP 2.0.

8. Meertalig dashboard – Beschikbaar in vijf talen

Ons Kinsta affiliatedashboard is nu beschikbaar in acht verschillende talen en er komen er nog meer aan.

  • English
  • German
  • French
  • Spanish
  • Italian
  • Nederlands
  • Portugees
  • Japans

9. Wij helpen affilitiates om te slagen

Naast het opbouwen van een geweldig affiliate-systeem en dashboard, doen we er alles aan om te zorgen dat onze affiliates slagen. Er is geen limiet aan de hoeveelheid geld die ze kunnen verdienen. Het is helemaal gratis voor iedereen om mee te doen. Je kan je hier aanmelden.

Opmerking: het goedkeuren van affiliate-accounts gebeurt handmatig, om ervoor te zorgen dat sites zich houden aan onze partnervoorwaarden.

Het marketingteam van Kinsta, samen met onze affiliate-manager, zijn hier om je te helpen. We geven je graag affiliatemarketingtips en affiliateverkooptips over manieren om je promoties naar een hoger niveau te tillen. We werken zelfs aan het produceren van aanvullende content op onze blog, die speciaal is ontworpen voor affiliate-marketeers, en manieren om de inkomsten te verhogen.

Samenvatting

Onze huidige implementatie is een stuk stabieler, lichtjaren sneller en biedt een betere ervaring voor onze affiliates en admins. Het heeft een solide basis gelegd op basis waarvan we een fantastisch product en programma kunnen bouwen.

Een groot voordeel is dat we ons nu meer kunnen richten op verbeteringen aan de kant van de gebruiker. We hebben onder andere grafieken, URL-tracking toegevoegd in de maanden na de release. We zijn van plan de gebruikerservaring nog verder te verbeteren en hulpmiddelen aan onze affiliate-partners te bieden waarmee ze meer kunnen verdienen.

We zijn nog lang niet klaar! 🤘

Aan het nadenken over het bouwen van je eigen affiliate-systeem? We zullen niet tegen je liegen, het is veel werk, maar het is de tijd en moeite meer dan waard. We hebben nu een systeem waar ons hele team trots op is en waar partners graag gebruik van maken.

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.