Campaign link shortener

In marketing campaigns, hyperlinks are commonly used to direct traffic to landing pages through various channels. Yet, SMS/MMS messages have limited character space, making long and unattractive personalized links challenging. That is where our Link Shortener comes to the rescue. It automatically replaces all hyperlinks in your campaign text with shortened versions. Plus, every click on these shortened links is tracked as a campaign event with a clicked status. Say goodbye to long URLs and hello to sleek and trackable links.

πŸ“˜

Feature enablement

Your CSM needs to enable the campaign link shortener. Contact your CSM for more information.

How to use campaign link shortener

Project settings

Once the module is enabled a new section in Project settings appears. It can be found under Campaigns > General > General campaign settings. You can select what channels will use an automatic link shortener (SMS, MMS) and select the domain that will be used for the shortener. Only one domain can be selected at one time for a specific project and all channels use the same domain. Learn more about domains.

Campaigns

Once you turn on the campaign Link shortener in Project Settings, it will be turned on by default for every campaign.
If you want to manage the shortener in a specific campaign, you can do this in the SMS/MMS action node in the given campaign Scenario. Click on the Settings tab, where you can turn on/off the link shortening. This will affect all links in that specific campaign only. You can choose multiple short domains per project and select them on the campaign level.

Preview

The preview in the scenario node highlights all parsed links (in green color). The final message with dummy shortened links is displayed on the right side. The character counter displays the real amount of characters used in the message including shortened links.

Not all links can be identified during the preview phase (e.g., links that are stored in customer properties or are the result of Jinja rendering) and therefore will not be highlighted and counted into the final character counter. All special Jinja links that can be resolved (e.g., consent/unsubscribe page) are highlighted and counted properly.

Hi {{customer.first_name}}, do not miss our special discount offer this week! Shop now on https://www.shop.com/categories/sale?utm_source=bloomreach&utm_medium=sms&utm_campaign=Sale%20promotion.

Link identification - links should always contain protocol (http:// or https:// only). Otherwise, the links will not be recognized by the link shortener, and therefore will not be shortened (the preview will not work as well). If there is a specific link in your SMS/MMS text that you do not want to shorten, omit the protocol (http:// or https://).

🚧

Unmatched symbols in the URLs

Some links with special symbols might not be matched fully by the link shortener. In such case, we recommend URL to encode such symbols (e.g., by https://toolbox.googleapps.com/apps/encode_decode/). See the example picture below, where the semicolon symbol (;) is matched only once after it is escaped as %3B. In other words, first line in the picture shows an unmatched symbol in the URL and the second one shows the fixed link).

Expiration

Expiration defaults to three months and can be configurable per instance. After this period, the link will be deleted. Any user who will visit an expired (or non-existent) link will see a 404 not found page (see the preview below).

Domains

There are 2 types of domains you can use for the link shortener:

  • Shared Bloomreach Engagement domains
  • Custom domains

Shared Bloomreach Engagement Domains

Every multi tenant instance provides one default shortener domain that can be used for your campaigns right away, e.g., exp.cx.

❗️

We do not provide shared domains for single tenant instances, therefore, all single tenant instances need to use a custom domain.

Custom domains

You can use your own domain for the link shortener. Custom domains can be used either on single or multi tenant instances. There are no requirements to the form of the domain but make sure that:

  • it is a dedicated domain for this purpose,
  • its name is as short as possible,
  • the name matches your brand.

One custom domain can be used by multiple accounts but they have to be on the same instance.

Set up the custom link shortener domain

To use a custom domain, you have to set it up in the account settings:

1-4. Create a new domain

Follow the 4-step instructions from the Custom Domain Management article. Once complete, continue with the steps below.

5. Configure your custom domain in Project settings

Once you set up your DNS records correctly and they are valid, you can select your domain for configuration in the Project Setting as mentioned in the Project settings part of this article.

🚧

Manually Added Domains

Please note that if your domains were added by our IT team, prior to this setting being available, you will see the below information message. Such domains cannot be managed from the settings and any changes must be done by our IT team.

Advanced configuration

There are two advanced configurations that can be changed on the instance level - entropy and link expiration.

Entropy
By entropy, we mean the randomness of links our shortener is generating. It is very important that the strings are not sequenced (e.g. aaaaa00001, aaaaa00002, etc.) because of possible abuse of the links. This is especially important when generating unsubscribe or consent page links. Entropy is defined by the length of the string and can be configured on the instance level. Its default value is 10, meaning there are 10 random characters in each link (e.g. https://exp.cx/pskE82In5h). This means we can generate 64^10 different strings (allowed character set is: a-z, A-Z, 0-9, - and _) = 2^60. If we plan to send and store 1B (roughly 2^30) links in SMS/MMS messages for 3 months (currently we send ca 2M SMS messages per month) we will still have 1B unused strings for every used string. This will be hard to crack for any possible abuser.