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, which makes long and unattractive personalized links a challenge. 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.
The campaign shortener needs to be enabled by your CSM. 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.

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. Prepare your subdomain for the link shortener
Make sure that this is a dedicated domain used solely for those purposes.
2. Add your domain to Account settings
Go to Account Settings > General > General account settings
.

Click on the Add link shortener domain
and save it. After that, we will generate the NS DNS records to be set for your domain.

3. Set the DNS records as instructed in Account settings
The NS DNS records might differ for every entered domain, so make sure to set it correctly. There are usually 4 records to be set.
NS Example:
Your Subdomain | Record Type | Destination Domain | TTL |
---|---|---|---|
sho.rt | NS | ns-cloud-a1.googledomains.com | 21600 |
4. Review DNS if they were created correctly
After you set up your DNS records, come back to the Project Settings > Account > General
. Here, if you see a confirmation message, everything was set up correctly. Please note that it might take a while till the DNS records are propagated and available for validation. It might take up to a few hours to see the confirmation.

We will issue an SSL certificate for your domain which might take some time as well. When it is issued, the warning message should disappear as shown in the picture below. If the SSL certificate is not issued after one day, please contact our Support team.

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.
Updated about 2 months ago