Website tracker SDK | copernica.profile()
Met de copernica.profile() functie kun je profielgegevens van de huidige bezoeker opvragen en bijwerken. De functie geeft een promise-object terug dat uiteindelijk een Profile object oplevert waarmee je operaties kunt uitvoeren. Omdat de functie een promise teruggeeft, heb je alleen asynchroon toegang tot het profiel-object:
// opvragen van profiel van de bezoeker
copernica.profile().then(profile => {
// hier heb je toegang tot het *profile* object
console.log(profile.fields());
});
Het profile object
Zodra je toegang hebt tot het profile-object, kun je er operaties op uitvoeren. Hiervoor kun je gebruik maken van onderstaande methodes:
- profile.fields(): bewerk of bekijk de (openbare) velden van het profiel.
- profile.interests(): bewerk of bekijk de (openbare) interesses van het profiel.
- profile.subprofile(): haal een enkel subprofiel op, of maak een nieuwe subprofiel aan.
- profile.subprofiles(): haal meerdere subprofielen uit een specifieke collectie/miniselectie op.
- profile.remove(): verwijder het profiel uit de database.
Alternatief gebruik
De copernica.profile() 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.profile() een GET request naar de Copernica API gedaan om de bijbehorende profielgegevens 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 profiel te verwijderen
copernica.profile().then(profile => profile.remove());
// snellere manier, zonder eerst een aanroep van copernica.profile()
copernica.profile.remove();
Kortom, copernica.profile kan dus als functie en als object worden gebruikt. Het verschil in de aanroepen kan je zien aan de haakjes: copernica.profile() en copernica.profile. 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 Profile-object.
Omdat in het tweede geval het object nog niet volledig is geinitialiseerd, kun je niet rechtstreeks de velden en interesses opvragen. De ongeinitialiseerde profile-object werkt daarom soms net iets anders:
// normaal gebruik als functie
copernica.profile().then(profile => {
// de velden kunnen nu direct worden benaderd (ze zijn immers al ingeladen)
console.log(profile.fields());
});
// bij alternatief gebruik als object geeft de fields() methode een promise-terug
// omdat de velden nog niet zijn ingeladen):
copernica.profile.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.profile als object te gebruiken. Als je ook de gegevens wilt opvragen, dan gebruik je vaker de functie-vorm copernica.profile().