Highlighted

Enable tracking for URL's passed as targetData

Avatar

Avatar

dboat

Avatar

dboat

dboat

06-02-2018

Hello,

When URL's are passed as targetData from the workflow to the content form they are not marked for personalization and no tracking information is added. Is there a way to ensure they are detected and the proper tracking information is appended?

Thanks.

Replies

Highlighted

Avatar

Avatar

Amit_Kumar

MVP

Avatar

Amit_Kumar

MVP

Amit_Kumar
MVP

06-02-2018

Hi,

use this documentation for your reference and follow the instruction given there then you will be able to track them.

How to track personalized links in emails

Feel free to reach out to us if you need more information.

Regards,

Amit

Highlighted

Avatar

Avatar

dboat

Avatar

dboat

dboat

06-02-2018

Hi Amit,

I did read this documentation and at first it seemed like it would work however I am not understanding the implementation. The URL is passed from the workflow (e.g., targetData.myUrl has a value of 'https://www.mywebsite.com/') and can be unique per recipient however the detection of tracking links happens before the personalization process so these URL's are not appended with the respective tracking information.

I wanted to preprocess this targetData so that the tracking analysis would see these links, however the object isn't available in the @value instructions.

Highlighted

Avatar

Avatar

Amit_Kumar

MVP

Avatar

Amit_Kumar

MVP

Amit_Kumar
MVP

06-02-2018

Hi,

what you are doing falls under dynamic vale, so you have two options:

Option 1:  Use <a href="http://<%=targetData.myURL%>"> myURLwill have value without the protocol part, but this is not recommended.

Option 2: Use <%@ value

This instruction gives access to parameters of the delivery that is constant for all recipients.

Syntax:

<%@ value object="myObject" xpath="@myField" index="1" %>

Where:

  • "object": name of the object (example: delivery, provider, and so on).
  • "XPath": XPath of the field.
  • "index" (optional): if "object" is an array (for extra script objects), item index in the array (Starts at 0).

The object can be:

  • "delivery": for the current delivery (see details and restrictions in the subsection below).
  • "provider": for the current delivery provider/routing (nms:externalAccount).
  • An additional script object: if an object is loaded in the context through: Properties > Personalization > Add objects in the execution context.
  • Item of the foreach loop: see Foreach section below.

"delivery" object: For email personalization, the delivery object is accessible in two ways:

  • In JavaScript. For example: <%= delivery.myField %>. In the JavaScript object delivery custom fields are not supported. They work in the preview, but not in the MTA because the MTA can only access the out-of-the-box delivery schema.
  • Through <%@ value object="delivery" pre-processing

For the <%@ value object="delivery" xpath="@myCustomField" %> instruction, there is another limitation for deliveries sent via mid-sourcing. The custom field @myCustomField must be added to the nms:delivery schema on both marketing and mid-sourcing platforms.

Note: for delivery parameters/variables, use the following syntax (using the delivery object):

<%@ value object="delivery" xpath="variables/var[@name='myVar']/@stringValue" %>

did you try these options?

Regards,

Amit

Highlighted

Avatar

Avatar

dboat

Avatar

dboat

dboat

07-02-2018

Thanks Amit, we are currently using a method similar to option 1 however we also want to account for situations where the URL may be part of a larger block of copy/text.

For option 2 it seems like we have some barriers unless I am misunderstanding. Our delivery templates are used across multiple campaigns with a large amount of variability in the content shown. We cannot assume that one URL will be the same across campaigns so adding it as an additional script object does not seem possible.

Highlighted

Avatar

Avatar

Amit_Kumar

MVP

Avatar

Amit_Kumar

MVP

Amit_Kumar
MVP

07-02-2018

Hi,

You can create a delivery variable i.e myURLVar for this URL, and you can assign your URL value from additional data to this variable in the delivery script.

Use below for url in your delivery and this will work everywhere. you can use your parms like below if you have any.

<a heref="<%@ value object="delivery" xpath="variables/var[@name='myURLVar '']/@stringValue" %>?firstName=<%=recipeint.firstName%>" _label="custom url">my link value </a>

Regards,

Amit

Highlighted

Avatar

Avatar

dboat

Avatar

dboat

dboat

07-02-2018

We have a unique-per-recipient URL in the workflow, wouldn't setting it to a value in the delivery would make the URL the same for all recipient's?

Highlighted

Avatar

Avatar

Amit_Kumar

MVP

Avatar

Amit_Kumar

MVP

Amit_Kumar
MVP

07-02-2018

Hi,

If you have a unique link for every recipient then you can use a view, it will be similar to what you are using for MirrorPageUrl.

<a href="<%@ include view='customUrl' %>" _label="Custom Page" >web page link </a>

Regards,

Amit

Highlighted

Avatar

Avatar

dboat

Avatar

dboat

dboat

07-02-2018

Thanks Amit I appreciate the time you're taking. I tried as you suggested and created a view that simply returns <%= targetData.url %> with an @include instruction in the content form, however the tracking information was not automatically appended.

You mentioned the mirror page view, this view handles the appending of the tracking information, were you suggestion my new view should do the same?

Thanks.

Highlighted

Avatar

Avatar

Amit_Kumar

MVP

Avatar

Amit_Kumar

MVP

Amit_Kumar
MVP

07-02-2018

Hi,

I just did a quick test, and it is working fine for me

1413224_pastedImage_1.png

1413193_pastedImage_0.png

Hope this helps!

Amit