Cases

Personalisatie integreren in je mobiele applicatie

37 views 20 maart 2018 21 maart 2018 christian 0

Inleiding

Dit document beschrijft hoe een mobiele applicatie (“app”) geïntegreerd kan worden met het IQNOMY platform, met als doel dat de app gepersonaliseerde content kan aanbieden.

Voor begripsvorming, volgt eerst een korte beschrijving van een app waarna tevens in het kort de werking van het IQNOMY platform met betrekking tot personalisatie wordt toegelicht.

IQNOMY platform personalisatie

Profielen opbouwen

Voordat je gepersonaliseerde content hebben zul je meer moeten weten over de gebruiker. IQNOMY doet dit door een profiel van de gebruiker op te bouwen. Het gedrag van de gebruiker binnen de applicatie gaat zorgen voor het aanpassen van het profiel van de betreffende gebruiker. De eigenschappen van de objecten die een bezoeker bekijkt, beïnvloeden het profiel van de gebruiker.

Het gebruikersprofiel wordt gebruikt bij het personaliseren van content (objecten).

Content personaliseren

Het IQNOMY bevat containers met content. Zodra er wordt gepersonaliseerd wordt er middels personalisatie algoritmes content geselecteerd uit een dergelijke container. Het gebruikersprofiel dient als een van de belangrijkste input variabelen van de algoritmen.

Containers kun je configureren in het IQNOMY platform. De content items van deze containers zijn een weergave van alle objecten/producten. Een personalisatie container die gebruikt wordt op de website kan ook in een app worden gebruikt. 

 

Integratie oplossing

IQNOMY service

Voor het opbouwen van een profiel als ook het aanbieden van gepersonaliseerde content kan een en dezelfde publieke service operation gebruikt worden. Deze http GET operation luistert op de volgende url:

https://liquifier.iqnomy.com/myliquidsuite-ws/async/impr/<request id>?tenant=<tenantid>&iqversion=<script versie>&fid=<follow id>&prid=<profile id>&iqurl=<current url>&referrer=<referrer>&canonical=<canonical url>&iqeventdata=<custom event data>&jsonpTransport=<callback functionname>

 

parameter type optio-neel beschrijving waarde voor integratie
request id path nee Hash met 32 hexadecimale digits, welke gegeneerd wordt door de client. door app te genereren
tenant query nee IQNOMY klant identificatienummer IQNOMY account id
iqversion query nee versienummer van clientside script 5
fid query nee willekeurig getal tussen 0 en 100 welke gebruikt wordt voor dataverkeer beheer door app te genereren
prid query ja profiel id zie Identificeren gebruiker
iqurl query nee url welke de website pagina representeert waarop de gebruiker zich bevindt https://app.jouwdomein.nl
referrer query ja url via welke de bezoeker op de pagina terecht is gekomen parameter niet gebruiken
canonical query ja schone url welke representatief is voor de huidige pagina parameter niet gebruiken
iqeventdata query ja custom event data in de vorm van key value pairs zie Profielen opbouwen
jsonpTransport query nee callback functie voor JavaScript (niet van toepassing voor app, wel vereist) jsonp
sync query ja Enkel voor website clientscript doeleinden om asynchrone afhandeling mee af te dwingen. true

 

Alle waarden van de parameters worden url encoded verwacht. Een voorbeeld van de response van deze service (JSONP format):

Zoals uit het voorbeeld blijkt is de response een JavaScript functie welke als input een JSON object krijgt. Daar waar relevant, een korte toelichting op het JSON object:

containerImpressions
Ieder element van deze array representeert een personalisatie van een container.
containerImpressions.imprElements
Ieder element van deze arrray representeert gepersonaliseerde content van een container.
containerImpressions.imprElements.name
Bevat de id van het object/product.
containerImpressions.container.id
Identificeert de container. Deze is nodig om te bepalen welke container van toepassing is op de personalisatie binnen de app.
profileId
Het profield id dat de gebruiker representeert. Zie ook Identificeren gebruiker

Identificeren gebruiker

Een gebruiker moet geïdentificeerd kunnen worden. IQNOMY doet dit middels een prid (profile id). Dit profile id wordt voor een onbekende bezoeker gegeneerd als bij het aanroepen van de eerder genoemde service operation geen prid als parameter wordt meegegeven.
De eerste keer als de app voor de gebruiker een IQNOMY service call maakt, beschikt de app nog niet over een prid. In dit geval dient de app dus geen prid parameter op te geven bij de call. In de response ontvangt de app nu een profileId als onderdeel van de JSON. Het is aan de app om deze profile id nu te bewaren voor de gebruiker. Bij alle volgende calls naar de service dient de prid parameter wèl opgegeven te worden met de bewaarde profile id.

E-mailadres koppelen

Aan het profiel kan ook een e-mailadres of ander identificerend id worden gekoppeld. Een iqeventdata key/value waarvan de key begint met _iqId{{type}}, wordt automatisch gekoppeld met het profiel id. Om e-mailadressen op de website te koppelen gebruiken we _iqIdEmail.

Profiel opbouwen

Voor iedere categorie, collectie, object, product of artikel dat de gebruiker expliciet bekijkt (door erop te ‘klikken’), dient het profiel van de bezoeker gevoed te worden. Een profiel kan gevoed worden door gebruik te maken van de service operation, waarbij de parameter iqeventdata gevuld moet zijn. De waarde van deze parameter is een (urlencoded) set aan key/value pairs. Key/value pairs worden gescheiden van elkaar met een ampersand (&) en Ieder key/value pair moet op zichzelf ook weer url encoded zijn.

De combinatie van key/value pairs is afhankelijk van het type positie.

 

Key Value Voorbeeld
value
Gebruiken bij selectie van
titlePage naam van de positie Productpagina – ProductA object, article,

collection

lang actieve taal
en, de, nl, fr
nl object, article,

collection

iq:pagetype PageProduct

PageObject,

PageArticle,

PageCollection etc.

PageProduct object, product, article,
collection, categorie
iq:object:id object id 34523823 object
iq:object:tags comma seperated set van tags van positie herenkleding,broeken,review4,sale  object
iq:object:color comma seperated set van kleuren id’s welke van toepassing voor positie 199,200,201 object
iq:object:size comma seperated set van maten 584,587,591 object
iq:categorieid  id van de categorie van de positie  211  categorie id

 

Zie hier een voorbeeld van een call:

https://liquifier.iqnomy.com/myliquidsuite-ws/async/impr/2e77902db86f5988646ee600327d053a?tenant=12392342&iqversion=5&fid=11&prid=AXyIvQ!!-0sdvb90slahjymp00G7hGMbaf0x0NLUz5r73GRwV&iqurl=https%3A%2F%2Fwww.demowebsite.nl%2Fen%2FProductA%2F%3Flqcid%3D77d3e11a-3f71-4c17-8462-d48f6416c6b2-4-0&referrer=https%3A%2F%2Fwww.demowebsite.nl%2Fen%2FProductA%2F&canonical=https%3A%2F%2Fwww.demowebsite.nl%2Fen%2FProductA%2F&debug&iqeventdata=titlePage%3DProductA%26lang%3Den%26iq%3Apagetype%3DPageProduct%26iq%3Aobject%3Aid%3D34523823%26iq%3Aobject%3Atags%3Dherenkleding&jsonpTransport=flyjsonp

Personaliseren

De call die gebruikt wordt om de gebruiker id mee vast te stellen als waarmee het profiel opgebouwd wordt, kan tevens hergebruikt worden om gepersonaliseerde objecten mee op te vragen. Breidt hiervoor de iqeventdata parameter uit met de volgende key/value.

 

Key Value Voorbeeld
value
iq:object:shown set van object ids die niet geretourneerd mogen worden door de call. Dit zijn doorgaans de objecten die al worden getoond. 345079,3453211,345399,33446946

 

Bij iedere call zal het IQNOMY platform proberen gepersonaliseerde objecten te retourneren. Deze kun je terugvinden in verschillende containers (containerImpressions)met daarin verschillende contents (containerImpressions.imprElements). In containerImpressions.container.id staat het id van het gepersonaliseerde object. Iedere geconfigureerde container heeft een eigen id.

Heeft dit je geholpen?