API - Implementatie mediabronregistratie

Gewijzigd op Di, 22 Sep om 9:29 AM

Gebruikers hebben binnen TOOL2MATCH de mogelijkheid om per mediabron statistieken op te halen. Hierbij kan worden bekeken hoeveel views verschillende mediabronnen genereren en welke mediabronnen daadwerkelijk voor sollicitaties zorgen.


In dit artikel wordt beschreven hoe deze functionaliteit kan worden geïmplementeerd wanneer TOOL2MATCH via API's in de website is geïntegreerd.


Let op: wanneer gebruik wordt gemaakt van de TOOL2MATCH-plugin, is deze functionaliteit onderdeel van de plugin en hoeft onderstaande implementatie niet afzonderlijk te worden uitgevoerd. 


De implementatie bestaat uit de volgende 3 onderdelen:

  1. utm_source uit de URL opslaan in localStorage
  2. TOOL2MATCH-pixel implementeren
  3. Voorkomen van dubbele views


Let op: onderaan dit artikel staat een volledig JavaScript-voorbeeld waarin alle onderdelen van de implementatie worden gecombineerd. Dit voorbeeld kan rechtstreeks als uitgangspunt worden gebruikt voor de implementatie.


1. UTM_source uit URL opslaan in localStorage

Gebruikers koppelen aan hun campagnes bij een bepaalde mediabron een URL naar de vacaturedetailpagina of het sollicitatieformulier. Een dergelijke URL heeft bijvoorbeeld de volgende structuur: 


https://klant.nl/vacature/123?utm_source=mediabron


De beschikbare utm_source in de URL willen we opslaan in de localStorage. Dit zorgt ervoor dat de mediabron lokaal bewaard blijft indien de kandidaat naar andere pagina's navigeert. 


Wanneer een kandidaat uiteindelijk een sollicitatie verricht, wordt gecontroleerd of er een geldige mediabron beschikbaar is. Deze geldige mediabron wordt vervolgens meegegeven aan de sollicitatie. Wanneer geen geldige mediabron beschikbaar is, wordt de sollicitatie als ‘Overige’ geregistreerd. 


Let op: wanneer gebruik wordt gemaakt van het TOOL2MATCH-sollicitatieformulier (zie Sollicitatieformulier integreren in website), wordt het ophalen van de mediabron uit de localStorage en het meegeven van deze bron aan de sollicitatie automatisch uitgevoerd. Wanneer het sollicitatieformulier zelf is gebouwd, dient dit proces onderdeel te zijn van de eigen implementatie.  


Te verrichten actie:  

Haal de utm_source uit de URL en sla deze op in de localStorage. Hiervoor kan onderstaande code worden gebruikt:



<script>
const urlParams = new URLSearchParams(window.location.search);
const utmSource = urlParams.get('utm_source');

if (utmSource) {
    localStorage.setItem('t2m_source', utmSource);
    localStorage.setItem('t2m_source_timestamp', Date.now());
}
</script>


Bewaartermijn controleren

localStorage heeft geen automatische vervaldatum. Daarom wordt naast de mediabron een timestamp opgeslagen. Bij het ophalen van de mediabron wordt gecontroleerd of deze nog binnen de gekozen bewaartermijn valt. 


TOOL2MATCH hanteert een bewaartermijn van 30 dagen vanaf het moment waarop voor het laatst een nieuwe utm_source is opgeslagen. Na deze termijn wordt de bron bij de eerstvolgende controle verwijderd. 


Hiervoor kan onderstaande code worden gebruikt: 


<script>
const utmSource = localStorage.getItem('t2m_source');
const timestamp = localStorage.getItem('t2m_source_timestamp');

const storagePeriod = 30 * 24 * 60 * 60 * 1000;

let validUtmSource = null;

if (
    utmSource &&
    timestamp &&
    Date.now() - Number(timestamp) < storagePeriod
) {
    validUtmSource = utmSource;
} else {
    localStorage.removeItem('t2m_source');
    localStorage.removeItem('t2m_source_timestamp');
}
</script>


Vanaf dit punt mag uitsluitend validUtmSource worden gebruikt wanneer de mediabron verder wordt verwerkt. Gebruik hiervoor niet opnieuw rechtstreeks t2m_source uit de localStorage. Op die manier wordt voorkomen dat een verlopen mediabron alsnog wordt gebruikt.


Wanneer de bewaartermijn is verstreken, worden de opgeslagen mediabron en de bijbehorende timestamp verwijderd zodra deze controle wordt uitgevoerd.


Wanneer binnen de bewaartermijn een nieuwe utm_source wordt aangetroffen, wordt de eerder opgeslagen mediabron overschreven en start de bewaartermijn opnieuw.


2. TOOL2MATCH-pixel implementeren

De TOOL2MATCH-pixel wordt gebruikt om een vacatureview te registreren. 


Views worden geregistreerd wanneer kandidaten op de vacaturedetailpagina landen. Wanneer sprake is van een aparte sollicitatiepagina, worden ook directe views op deze pagina gemeten. 


Te verrichten actie: 

Controleer eerst de bewaartermijn. Gebruik daarna validUtmSource als utm_source in de pixel en codeer deze waarde voor gebruik in de URL. Zonder geldige bron wordt een lege waarde meegestuurd en registreert TOOL2MATCH de view als ‘Overige’. 


<iframe
    src="https://<TOOL2MATCH-DOMEIN>.tool2match.nl/jobsite/tp/<JOB-ID>?utm_source=<GECODEERDE-VALID-UTM-SOURCE>"
    title="Tracking"
    aria-hidden="true"
    style="width:1px;height:1px;">
</iframe>


De volgende waarden zijn dynamisch: 

WaardeIn te vullen
<TOOL2MATCH-DOMEIN>Het TOOL2MATCH-domein van de klant
<JOB-ID>Het ID van de betreffende vacature
<GECODEERDE-VALID-UTM-SOURCE>De waarde van validUtmSource, nadat deze met encodeURIComponent() is gecodeerd. Gebruik hiervoor niet rechtstreeks t2m_source uit de localStorage.


De uiteindelijke url in de pixel kan er bijvoorbeeld als volgt uitzien: https://klant.tool2match.nl/jobsite/tp/12345?utm_source=Indeed


Wanneer geen mediabron beschikbaar is, wordt de pixel bijvoorbeeld als volgt geladen: https://klant.tool2match.nl/jobsite/tp/12345?utm_source=


3. Voorkomen van dubbele views

De pixel mag voor dezelfde vacature binnen één tabbladsessie maar één view triggeren. 


Wanneer de kandidaat binnen hetzelfde tabblad naar andere pagina's binnen de website navigeert en later terugkomt op dezelfde vacature, mag er niet opnieuw een view worden geregistreerd. Ook wanneer de kandidaat vanaf de vacaturedetailpagina naar een aparte sollicitatiepagina navigeert, mag geen extra view worden geregistreerd. De vacaturedetailpagina en de sollicitatiepagina mogen samen dus maximaal één view voor dezelfde vacature registreren binnen dezelfde tabbladsessie.


Een nieuw tabblad heeft een eigen sessionStorage. Wanneer dezelfde vacature in een nieuw tabblad wordt geopend, kan daar opnieuw één view worden geregistreerd.


Te verrichten actie: 

Controleer voordat de TOOL2MATCH-pixel wordt geladen of voor de betreffende vacature binnen het huidige tabblad al een view is geregistreerd. Hiervoor kan sessionStorage worden gebruikt.


Implementeer deze controle op de vacaturedetailpagina en, indien beschikbaar, ook op de pagina waar het sollicitatieformulier wordt getoond. De vacaturedetailpagina en de sollicitatiepagina moeten hierbij dezelfde jobId en dezelfde sessionStorage-key gebruiken.


Beide pagina's moeten daarnaast onder dezelfde origin draaien. Dit betekent dat het protocol, domein en de poort hetzelfde moeten zijn, zodat dezelfde sessionStorage beschikbaar is. 


Onderstaand voorbeeld combineert het controleren van de bewaartermijn, het bepalen van validUtmSource, het voorkomen van dubbele views en het dynamisch laden van de TOOL2MATCH-pixel. 


<script>
const jobId = '<JOB-ID>';
const viewKey = `t2m_view_registered_${jobId}`;

// Controleer of voor deze vacature binnen het huidige tabblad al een view is geregistreerd
if (!sessionStorage.getItem(viewKey)) {

    // Haal de opgeslagen mediabron en timestamp op
    const utmSource = localStorage.getItem('t2m_source');
    const timestamp = localStorage.getItem('t2m_source_timestamp');

    // Bewaartermijn van 30 dagen
    const storagePeriod = 30 * 24 * 60 * 60 * 1000;

    let validUtmSource = null;

    // Controleer of de opgeslagen mediabron nog geldig is
    if (
        utmSource &&
        timestamp &&
        Date.now() - Number(timestamp) < storagePeriod
    ) {
        validUtmSource = utmSource;
    } else {
        // Verwijder de mediabron wanneer de bewaartermijn is verstreken
        localStorage.removeItem('t2m_source');
        localStorage.removeItem('t2m_source_timestamp');
    }

    // Codeer de geldige mediabron voor gebruik in de URL
    const encodedUtmSource = validUtmSource
        ? encodeURIComponent(validUtmSource)
        : '';

    // Maak de TOOL2MATCH-pixel aan
    const pixel = document.createElement('iframe');

    pixel.src = `https://<TOOL2MATCH-DOMEIN>.tool2match.nl/jobsite/tp/${jobId}?utm_source=${encodedUtmSource}`;
    pixel.title = 'Tracking';
    pixel.setAttribute('aria-hidden', 'true');
    pixel.style.width = '1px';
    pixel.style.height = '1px';

    // Voeg de pixel toe aan de pagina
    document.body.appendChild(pixel);

    // Registreer de view voor deze vacature binnen het huidige tabblad
    sessionStorage.setItem(viewKey, 'true');
}
</script>


Let op: 

  • Hierbij is jobId het dynamische ID van de betreffende vacature.  
  • De sessionStorage-waarde wordt per vacature opgeslagen. Hierdoor kan iedere vacature binnen dezelfde tabbladsessie afzonderlijk één view registreren.
  • De TOOL2MATCH-pixel wordt uitsluitend geladen wanneer voor deze vacature nog geen view is geregistreerd in de huidige tabbladsessie.  


De gewenste werking is: 

Situatie 1: Kandidaat landt op vacaturedetailpagina en klikt door naar sollicitatiepagina

--> 1 view


Situatie 2: Kandidaat landt rechtstreeks op sollicitatiepagina

--> 1 view


Situatie 3: Kandidaat landt op vacaturedetailpagina, navigeert naar een andere pagina en keert later terug naar dezelfde vacature 

--> 1 view


Situatie 4: Kandidaat bekijkt binnen dezelfde tabbladsessie een andere vacature 

--> 1 nieuwe view voor de andere vacature


Afronding

Met bovenstaande implementatie worden vacatureviews en sollicitaties binnen TOOL2MATCH gekoppeld aan de bijbehorende mediabron. Hierdoor kunnen gebruikers binnen TOOL2MATCH inzicht krijgen in welke mediabronnen bezoekers en sollicitaties genereren.

Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren