Dashboarding & analytics
Wil je weten welke Google Ads-klikken resulteren in afspraken of wil je meer inzicht in de herkomst van je afspraken via UTM-tagging? In deze blogpost leer je hoe je aangepaste parameters kunt doorsturen naar Calendly om zo de effectiviteit van je marketingcampagnes beter bij te houden.
Google Click ID (gclid) meesturen naar Calendly
We hebben een script geschreven om de gclid toe te voegen aan de Calendly-URL’s zodat deze later beschikbaar is naast een afspraak in de Calendly backend. We maken gebruik van de Salesforce UUID-kolom binnen Calendly om de aangepaste parameters (gclid) in op te slaan.
Plaats het onderstaande script op elke pagina met een link naar een Calendly-afspraak:
<script> // Select the <a> element var linkElement = document.querySelector('a[onclick*="Calendly.initPopupWidget"]'); if (linkElement) { // Extract the existing URL from the onclick attribute var onclickAttr = linkElement.getAttribute('onclick'); var urlMatch = onclickAttr.match(/url:\s*'([^']+)'/); if (urlMatch && urlMatch[1]) { var calendlyUrl = urlMatch[1]; // Check if the URL already has parameters var separator = calendlyUrl.indexOf('?') !== -1 ? '&' : '?'; // Append the 'salesforce_uuid' parameter calendlyUrl = calendlyUrl + separator + 'salesforce_uuid={{gclid}}'; // Update the onclick attribute with the new URL var newOnclickAttr = onclickAttr.replace(urlMatch[1], calendlyUrl); linkElement.setAttribute('onclick', newOnclickAttr); } } </script>
Verander de {{gclid}}
parameter in de code naar de variabele met de waarde van je Google Click ID:
calendlyUrl = calendlyUrl + separator + 'salesforce_uuid={{gclid}}';
Meer informatie over het uitlezen en opslaan van de Google Click ID via Google Tag Manager vind je in het artikel van Nino over offline conversie tracking.
Als de gclid wordt meegestuurd, zie je deze in de ‘Salesforce UUID’ kolom bij het exporteren van afspraken binnen Calendly. Je kunt deze kolom gebruiken voor koppelingen tussen bijvoorbeeld Zapier en Calendly om automatisch offline conversies te meten binnen Google Ads, zonder handmatige exports en imports.
UTM tagging meesturen met Calendly
Calendly heeft ook kolommen om de campagne, bron, medium, term en content aan een afspraak te koppelen. Deze worden gevuld als we de UTM-tagging meegeven met de Calendly-afspraaklink. Dit doen we door de UTM-tagging beschikbaar te maken in alle pagina-URL’s van de website indien aanwezig.
Voer de onderstaande code uit op alle pagina’s met een Calendly-link en controleer daarbij of UTM-tagging aanwezig is:
<script> var domainsToDecorate = [ 'rooza.nl' //add or remove domains (without https or trailing slash) ], queryParams = [ 'utm_medium', //add or remove query parameters you want to transfer 'utm_source', 'utm_campaign', 'utm_adgroup', 'utm_content', 'utm_term' ] //decorate all links on the page var links = document.querySelectorAll('a'); // check if links contain domain from the domainsToDecorate array and then decorates for (var linkIndex = 0; linkIndex < links.length; linkIndex++) { for (var domainIndex = 0; domainIndex < domainsToDecorate.length; domainIndex++) { if (links[linkIndex].href.indexOf(domainsToDecorate[domainIndex]) > -1 && links[linkIndex].href.indexOf("#") === -1) { links[linkIndex].href = decorateUrl(links[linkIndex].href); } } } // decorates the URL with query params function decorateUrl(urlToDecorate) { //urlToDecorate uncessary ? //check if there are any parameters existing var collectedQueryParams = []; for (var queryIndex = 0; queryIndex < queryParams.length; queryIndex++) { if (getQueryParam(queryParams[queryIndex])) { collectedQueryParams.push(queryParams[queryIndex] + '=' + getQueryParam(queryParams[queryIndex])) } } //YL: added as a fix to ensure url is not modified when UTMs are not in place if(collectedQueryParams.length < 1){ urlToDecorate = urlToDecorate } else{ urlToDecorate = (urlToDecorate.indexOf('?') === -1) ? urlToDecorate + '?' : urlToDecorate + '&'; } return urlToDecorate + collectedQueryParams.join('&'); } // borrowed from https://stackoverflow.com/questions/831030/ // a function that retrieves the value of a query parameter function getQueryParam(name) { if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(window.location.search)) return decodeURIComponent(name[1]); } </script>
Verander de code op rij 3 zodat het domein van je site overeenkomt:
'rooza.nl' //add or remove domains (without https or trailing slash)
Als je Google Tag Manager gebruikt, kun je de onderstaande trigger gebruiken om te controleren of er UTM-tagging aanwezig is:
De utm_source, utm_medium en utm_campaign URL-variabelen stel je als volgt in:
Tip: Gebruik je Google Ads? Google Ads stuurt standaard geen UTM-tagging mee na klikken op de advertenties. Je kunt offline conversies instellen of UTM-tagging meesturen met behulp van een tracking template in de account- of campagne-instellingen:
Een veel gebruikte tracking template voor de accountinstellingen is:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={keyword}
Kom je er niet uit?
Neem vrijblijvend contact met ons op. Met onze ervaring op het gebied van website analytics vinden we zeker een oplossing.
Labels:
Over de schrijver:
Christian wordt als performance marketing specialist blij als het gaat over het behalen van positieve ROI. Zijn weapons of choice zijn Google Ads, Facebook Ads, LinkedIn ads, Amazon Ads en SEO. Hij deinst ook niet terug voor de realisatie van goede dashboards of Tagmanager implementaties. Vooral als het wat ingewikkelder wordt.
Online marketing dashboard?
Krijg met rapportages en dashboards inzicht in data met geavanceerde en/of maatwerk Google Analytics implementaties.
Meer informatie over online marketing dashboard.
- Beschikbaar online én als PDF
- Op maat gemaakt in je eigen huisstijl
- Eventueel inclusief (complexe) Google Analytics implementatie (zowel hands-on als advies)
- Praktisch altijd een koppeling met uw eigen databronnen mogelijk (CRM, Mailsysteem, Website, Social Media etc.)