Website tracker SDK | copernica.requestpush()

De functie copernica.requestpush() doet twee dingen:

  • Toestemming vragen voor pushmeldingen: Wanneer je de functie aanroept, verschijnt er een prompt in de browser van de gebruiker waarin wordt gevraagd om toestemming om pushmeldingen te ontvangen.

  • Token verzenden naar Copernica: Als de gebruiker toestemming verleent, wordt er een subscription token doorgegeven aan Copernica. Dit token maakt het mogelijk om pushmeldingen te versturen vanuit Marketing Suite naar de gebruiker.

Vereisten

Voordat je de copernica.requestpush() functie kunt gebruiken, zijn er een paar belangrijke vereisten:

  1. Website tracker: Je moet een website tracker op je site hebben geïnstalleerd.
  2. Service Worker bestand: Een Service Worker zorgt ervoor dat pushmeldingen worden ontvangen en verwerkt, zelfs als de gebruiker je website niet actief open heeft staan. Dit bestand moet op je webserver worden geplaatst.
  3. HTTPS-verbinding: De functie werkt alleen op een beveiligde HTTPS-verbinding, omdat browsers vereisen dat pushmeldingen alleen in een veilige omgeving worden toegestaan.

Het is dus niet voldoende om enkel een webtracker te installeren: je moet ook extra script, de Service Worker dus, op je website plaatsen om pushnotificaties te activeren. Dit script moet op je eigen server staan, omdat het gehost moet zijn op precies dezelfde domeinnaam als de website.

Hoe installeer je de Service Worker?

De server worker is een klein javascript-bestand dat je, bij voorkeur, in de root directory van je website plaatst. Dit bestand wordt door browsers ingeladen, en blijft actief zelfs als iemand niet langer je website bezoekt. Hierdoor werken de pushnotificaties ook voor bezoekers die je website al hebben verlaten.

Het script dat je op je webserver plaatst kun je downloaden vanuit de Marketing Suite. In de integratie-module kun je binnen in bij de configuratie van je webtracker dit bestand terugvinden. Download dit bestand, en plaats het vervolgens in de "root directory" van je website. Dit is vaak dezelfde plek waar bijvoorbeeld je index.html staat.

Service Worker in een subdirectory

Als het niet lukt om het bestand in de root directory te plaatsen, dan kun je soms ook van een subdirectory gebruik maken. Je moet er dan wel voor zorgen dat de HTTP header Service-Worker-Allowed voor dit bestand wordt ingesteld op /. Dit zorgt ervoor dat de Service Worker pushmeldingen kan verwerken voor alle pagina's van je website, en niet alleen in de specifieke submap waar het bestand staat.

Het activeren van een dergelijke header kan wat complex zijn, en vereist wat instellingen van je webserver. Het komt er op neer dat je je webserver zo moet configureren, dat als de service worker wordt gedownload, dat de webserver niet enkel het bestand terugstuurt, maar ook de extra header. Hoe je dat kunt instellen is afhankelijk van het type webserver dat je gebruikt.

Gebruik

Wanneer je copernica.requestpush() aanroept, verschijnt er een prompt in de browser van de gebruiker waarin wordt gevraagd om toestemming voor pushmeldingen. Als de gebruiker akkoord gaat, wordt het benodigde token doorgegeven zodat je pushmeldingen kunt verzenden.

De functie vereist 1 parameter: de plaats waar het Service Worker bestand staat. Veel gebruikers kiezen er voor dit bestand als "/copernica.js" op hun webserver te plaatsen.

De functie retourneert een promise met een subscription-object, of een error-object in het geval van een fout. Normaal gesproken heb je dit subscription-object verder niet nodig. Je kunt het echter gebruiken om zelf direct een push-notificatie te versturen.

Voorbeeldcode

copernica.requestpush('copernica.js').then(subscription => {
    subscription.send('Titel van de notificatie', 'Bericht van de notificatie');
}).catch(error => {
    console.error('Fout bij pushmelding:', error.reason);
    console.error('Type pushmelding:', error.type);
    console.error('Code pushmelding:', error.code);
});