Correct gebruik van URL's in e-mailtemplates
Wanneer je werkt met URL's in e-mailcampagnes, kun je tegen problemen aanlopen wanneer deze URL's speciale tekens bevatten. Dit komt doordat links in mailings worden vervangen door links naar een tracking-server om kliks te registreren. Nadat de klik is verwerkt wordt de gebruiker doorgestuurd naar de oorspronkelijke hyperlink. Als de oorspronkelijke URL echter niet goed is gecodeerd, dan kan dit er toe leiden dat de tracking-server de gebruiker niet goed doorstuurt.
Dit artikel legt uit hoe je URL's moet formateren om deze problemen kunt voorkomen.
Wat is een URL en hoe werkt het?
Een URL (Uniform Resource Locator) is een webadres dat verwijst naar een
specifieke locatie op het internet, bijvoorbeeld:
http://www.voorbeeld.nl?a=b&c=d
. Vaak bevatten URL's parameters, die extra
informatie doorgeven, zoals de parameters a=b en c=d in het voorbeeld.
Parameters worden aangegeven na een vraagteken (?
) en zijn opgebouwd uit
sleutel-waardeparen, gescheiden door een is-gelijk-teken (=
). Verschillende paren
worden gescheiden door ampersands (&
).
Gebruik van speciale tekens
Speciale tekens, zoals =
, &
, ?
en /
, hebben een specifieke betekenis in
URL's. Wanneer je deze tekens als onderdeel van een waarde wilt gebruiken, kan
dit problemen veroorzaken. Bijvoorbeeld, als je een parameter wilt doorgeven
waarin een &
voorkomt, hoe weet de server dan dat dit &
onderdeel van de
waarde is, en niet de scheiding tussen twee parameters?
Om deze verwarring te voorkomen, moeten dergelijke tekens worden geëscapet. Escaping betekent dat deze tekens worden vervangen door een code die door browsers en servers correct kan worden geïnterpreteerd. Bijvoorbeeld:
- Een
=
wordt geëscapet als%3D
. - Een
&
wordt geëscapet als%26
.
Voorbeeld van een correcte URL met geëscapete waarden:
http://www.voorbeeld.nl?a=%3D&b=%26
Hierdoor begrijpt de server dat de eerste parameter de waarde =
heeft, en de
tweede parameter de waarde &
.
Ongeldige URL's en hun gevolgen
Wanneer een URL niet correct is geëscapet, kan dit leiden tot:
- Verkeerde interpretatie van de parameters: De server ziet mogelijk extra parameters waar die niet horen.
- Fouten in de verwerking: De URL kan niet goed worden gelezen, waardoor een e-mailcampagne niet werkt zoals bedoeld.
In de praktijk worden deze problemen vaak veroorzaakt door:
- Verkeerd ingevoerde URL's.
- Een webserver die de URL niet correct verwerkt.
Voorbeeld van een ongeldige URL:
http://www.example.com?a==&b=&
In dit voorbeeld:
- De waarde van a is onduidelijk door de dubbele =.
- De parameter b lijkt leeg door de ontbrekende waarde.
Hoe verwerkt Copernica URL's?
Copernica heeft twee soorten templates die elk anders omgaan met ongeldige URL's:
- HTML-templates: Probeert ongeldige URL's automatisch te repareren door aannames te maken over wat bedoeld wordt.
- Drag-and-drop-templates: Verwerkt URL's zoals ze zijn ingevoerd, zonder correcties.
Beide benaderingen hebben voor- en nadelen:
- Het repareren van URL's (HTML-templates) voorkomt veelvoorkomende fouten, maar kan onbedoelde resultaten opleveren.
- Het direct doorsturen van de URL (Drag-and-drop-templates) is transparanter, maar vereist dat je geldige URL's invoert.
URL's escapen met Smarty-variabelen
Bij het werken met e-mails in Copernica kun je URL's genereren met behulp van Smarty-variabelen. Wanneer deze variabelen speciale tekens bevatten, is het belangrijk om de urlencode- of escape:'url'-functie van Smarty te gebruiken. Deze functies zorgen ervoor dat alle speciale tekens automatisch worden geëscapet.
Voorbeeld
Stel je hebt een variabele {$productNaam}
met de waarde T-shirts & Broeken
.
Gebruik de volgende syntax om een geldige URL te genereren:
<a href="http://www.voorbeeld.nl?product={$productNaam|urlencode}">Bekijk product</a>
of
<a href="http://www.voorbeeld.nl?product={$productNaam|escape:'url'}">Bekijk product</a>
Dit resulteert in de volgende geëscapete URL:
http://www.example.com?product=T-shirts%20%26%20Broeken
Aanbevelingen
Om problemen met URL's in je e-mailcampagnes te voorkomen, raden we het volgende aan:
- Valideer en escape URL's correct
- Zorg dat alle speciale tekens zoals
&
,/
,:
,?
, en=
correct zijn geëscapet voordat je ze gebruikt. - Gebruik hiervoor tools of functies die URL's automatisch escapen.
- Zorg dat alle speciale tekens zoals
- Test je URL's
- Controleer of je URL's correct worden verwerkt in zowel de HTML- als drag-and-drop-templates.
URL's aan de ontvangende kant verwerken
Wanneer een geëscapete URL wordt ontvangen, moet je ervoor zorgen dat deze correct wordt gedecodeerd voordat de gegevens worden gebruikt. Dit proces, ook wel unescaping genoemd, vertaalt de geëscapete tekens terug naar hun oorspronkelijke vorm. Bijvoorbeeld:
%3D
wordt weer een=
.%26
wordt weer een&
.
Door dit proces toe te passen, zorg je ervoor dat de parameters in hun oorspronkelijke betekenis worden geïnterpreteerd en verwerkt.