ln/

Een reis naar een maatwerk SDK voor Adhese

In de snelle wereld van digitale advertising is een flexibele en robuuste SDK, afgestemd op de behoeften van een specifieke klant, essentieel. In deze post neem ik je mee in hoe ik een TypeScript/JavaScript SDK ontwikkelde voor de advertentiesoftware van Adhese, ontworpen voor de specifieke eisen van Ahold. Deze SDK integreert niet alleen naadloos met Adhese, maar biedt ook de mogelijkheid om Google Ads te renderen, zodat het een complete advertentieoplossing is.

Het ontstaan van het project

Waarom dit gemaakt is

Ahold, een grote speler in de retail, ging samenwerken met Adhese om hun advertentiemogelijkheden uit te breiden. Ahold had zeer klantspecifieke integraties nodig die naadloos zouden opgaan in hun bestaande content. De oude Adhese SDK was te algemeen en miste de flexibiliteit om aan die eisen te voldoen. Daarom zijn we begonnen aan een nieuwe SDK die de specifieke wensen van Ahold aankon en tegelijk hoge performance en betrouwbaarheid bood. Mijn rol in dit project was Lead Developer. Ons team was destijds klein, twee developers inclusief mijzelf, dus vrijwel al het programmeerwerk aan de ARMP heb ik gedaan. De integratie van het systeem is door mijn collega gedaan.

Het systeem begrijpen

Het Ahold Request Mediation Platform (ARMP) fungeert als bemiddelaar tussen webpagina's en advertenties. De belangrijkste functies zijn:

  • Content ophalen op basis van de meegegeven configuraties.
  • Bepalen hoe de opgehaalde advertenties gerenderd worden.
  • Zorgen dat advertenties correct op de pagina worden getoond.
  • Allerlei events en logs uitsturen als feedback, en als hooks waar andere systemen of utilities op kunnen reageren.

De oplossing

We begonnen met een grondige analyse van de advertentiebehoeften van Ahold. We werkten nauw samen met verschillende teams van Ahold om hun bestaande contentstructuur en het benodigde integratieniveau te begrijpen. Het werd al snel duidelijk dat een standaardoplossing niet genoeg zou zijn. We moesten iets bouwen dat veelzijdig was, maar specifiek genoeg om de unieke eisen van Ahold aan te kunnen.

Belangrijkste features

Om dat te bereiken richtten we ons op een paar kernpunten:

  • Naadloze integratie: De SDK moest moeiteloos samengaan met de bestaande webcontent van Ahold, zodat advertenties er natuurlijk uitzagen zonder de gebruikerservaring te verstoren.
  • Flexibel advertenties renderen: Of de advertenties nu van Adhese of van Google Ads kwamen, de SDK moest ze passend kunnen renderen op basis van content en context.
  • Events en logging: Door gedetailleerde logs en events uit te sturen bij elke belangrijke actie konden we inzicht bieden en hooks aanreiken voor verdere maatwerkaanpassingen.

Samenwerking en iteratie

Tijdens de hele ontwikkeling hielden we nauw contact met de teams van Ahold. Regelmatige feedbacksessies en demo's hielpen ons om de SDK in lijn te houden met hun verwachtingen. We testten ook uitgebreid om problemen snel op te sporen en op te lossen.

De impact

De nieuwe SDK heeft de manier waarop Ahold zijn advertentiecontent beheert flink veranderd. Met de ARMP hebben we adverteren niet alleen makkelijker gemaakt, maar ook de totale gebruikerservaring verbeterd. De mogelijkheid om naast Adhese-advertenties ook Google Ads te renderen voegde een flexibiliteit toe die er eerder niet was.

Toekomstbestendig

Door de modulaire opzet kan de SDK zich makkelijk aanpassen aan toekomstige eisen of veranderingen in het advertentielandschap. Zo kan Ahold op deze oplossing blijven vertrouwen terwijl hun behoeften veranderen.

Conclusie

Een maatwerk SDK bouwen voor Ahold was een dankbare uitdaging die me goede lessen heeft geleerd over het belang van flexibiliteit en klantspecifieke oplossingen in softwareontwikkeling. Door nauw samen te werken met het team van Ahold heb ik beter leren begrijpen hoe grote bedrijven werken en hoe je je aanpast aan hun wensen. Het succes van dit project heeft nieuwe kansen geopend voor vergelijkbare samenwerkingen, en ik kijk ernaar uit om de opgedane kennis en ervaring toe te passen in andere projecten.