Website tracker SDK | copernica.subprofile()
Met de copernica.subprofile() functie kun je subprofielgegevens van de huidige bezoeker opvragen en bijwerken. De functie geeft een promise-object terug dat uiteindelijk een Subprofile object oplevert waarmee je operaties kunt uitvoeren. Omdat de functie een promise teruggeeft, heb je alleen asynchroon toegang tot het subprofiel-object:
// opvragen van subprofiel van de bezoeker
copernica.subprofile().then(subprofile => {
// hier heb je toegang tot het *subprofile* object
console.log(subprofile.fields());
});
Het subprofile object
Zodra je toegang hebt tot het subprofile-object, kun je er operaties op uitvoeren. Hiervoor kun je gebruik maken van onderstaande methodes:
- subprofile.fields(): bewerk of bekijk de (openbare) velden van het subprofiel.
- subprofile.remove(): verwijder het subprofiel uit de database.
Via het profiel-object
Naast het gebruik van copernica.subprofile() is het ook mogelijk om een subprofiel-object te verkrijgen via het profiel-object. Dit kan met de volgende methoden:
- profile.subprofile(): haal een enkel subprofiel op, of maak een nieuwe subprofiel aan.
- profile.subprofiles(): haal meerdere subprofielen uit een specifieke collectie/miniselectie op.
Alternatief gebruik
De copernica.subprofile() functie kan ook rechtstreeks als object worden gebruikt. Dit is handig als je een operatie wilt uitvoeren, zonder dat je eerst gegevens wilt ophalen. Standaard wordt bij elke aanroep van copernica.subprofile() een GET request naar de Copernica API gedaan om de bijbehorende subprofielgegevens op te halen. Als je deze gegevens niet nodig hebt voor de hieropvolgende operatie, kun je deze eerste call ook weglaten:
// normale (maar wat langzame) manier om een subprofiel te verwijderen
copernica.subprofile().then(subprofile => subprofile.remove());
// snellere manier, zonder eerst een aanroep van copernica.subprofile()
copernica.subprofile.remove();
Kortom, copernica.subprofile kan dus als functie en als object worden gebruikt. Het verschil in de aanroepen kan je zien aan de haakjes: copernica.subprofile() en copernica.subprofile. De eerste variant start een GET-call naar de server van Copernica en geeft een Promise terug, de tweede variant geeft je direct toegang tot een nog niet geinitialiseerd Subprofile-object.
Omdat in het tweede geval het object nog niet volledig is geinitialiseerd, kun je niet rechtstreeks de velden en interesses opvragen. De ongeinitialiseerde subprofile-object werkt daarom soms net iets anders:
// normaal gebruik als functie
copernica.subprofile().then(subprofile => {
// de velden kunnen nu direct worden benaderd (ze zijn immers al ingeladen)
console.log(subprofile.fields());
});
// bij alternatief gebruik als object geeft de fields() methode een promise-terug
// omdat de velden nog niet zijn ingeladen):
copernica.subprofile.fields().then(fields => {
// de velden zijn nu pas beschikbaar
console.log(fields);
});
Welke van de twee je gebruikt is afhankelijk van je voorkeur en doel. Als je alleen gegevens wilt bewerken of verwijderen, dan kan het efficienter zijn om copernica.subprofile als object te gebruiken. Als je ook de gegevens wilt opvragen, dan gebruik je vaker de functie-vorm copernica.subprofile().