Expand my Community achievements bar.

Tuesday Tech Bytes – Adobe Campaign Classic – Week 04 – Golden Nuggets

Avatar

Community Advisor

7/30/24

Golden Nuggets

 

1. Splitting export files by count

 

Some customers require regular exports of logs from ACC instance to an external location for further reporting in a 3rd party application.

For these exports, especially broadLogs and trackingLogs, the records count is sometimes too high, and exporting such huge files may not be the best approach. In these cases, we would be best by splitting up the files by row count, and have multiple files be exported instead of a single large file.

 

We need not run the query multiple times, and limit the size of returned records in a split. Instead, we can do this by querying the table(s) just once, and then splitting the result-set, for example 1M rows max. for each file. The remainder of the result-set can be looped over again without having to query again.

 

isahore_0-1722343102757.png

 

2. Mass update of common properties of campaign deliveries

 

There are, quite often, cases where the Production instance has multiple campaigns LIVE at the same time. There would be a number of deliveries running in those campaigns. It can happen that due to an architectural/requirement change, an update needs to be made in the delivery properties of all those running deliveries. Very likely, these changes would need to be done at the same time (or within the same day) in Prod.

 

So, instead of having someone to go into each of those campaign workflows and update the deliveries one by one, it is possible to update the property by a mass update action.

 

  1. Navigate to /Administration/Production/Objects created automatically/Campaign delivery templates/ (OOTB location where all campaign deliveries are created as you create them inside a campaign workflow).
  2. In the deliveries list, select the deliveries where you want to apply the change, right click and click on "Actions" and select "Mass update of selected lines...".

isahore_2-1722343525848.png

3. Select the property from the list which you want to update. For example, if you need to update the typology used by all the deliveries goring forward, select the typology Id field and enter the Id of the new typology. Click next and  then click start.

isahore_3-1722343525851.png

3. ACC OOTB link tracking

 

A short and important to note to ensure that all your links in an email delivery are properly tracked -

Links that start with "http://" or "https://" in the source URL are only considered for tracking by Adobe Campaign. Links that start directly with "www." are not tracked by campaign. Make sure that this is followed for all the links. If you have no control over the delivery html source, then you can comfortably check and enforce this via a typology rule.

For example, below style of link declaration in the html source href code are not tracked by the ACC OOTB tracking:

- href="www.example.com"

 

 

For this, you can create a control type typology rule, and write code there to check the delivery content and cleanse the links - to add an "htps://" or "http://" to the links where it is not present.

 

Below code can be used for reference:

 

function cleanseLinks(deliverycontent){
  var findlinks = deliverycontent.match(new RegExp('href="([^"]+)"', "g"));
  if (findlinks != null) {
    for(var i = 0; i < findlinks.length; i++) {
      var links = findlinks[i];
      var removehref = links.replace('href="', '');
      var cleanlink = removehref.replace('"', '');
      var finallink = cleanlink.replace(/\s+/g, '');
      var newUrl = "href=\"" + finallink + "\"" ;
      /*add http:// to URLs wherever it is missing, except where href value contains reference to a personalization block, targetData, or recipient objects*/

      if(new RegExp("http").test(finallink) == false && new RegExp("include view").test(finallink) == false && new RegExp("tel:").test(finallink) == false) {
        newUrl = "href=\"https:\/\/" + finallink + "\"";
      }
      deliverycontent = deliverycontent.replace(links, newUrl);
    }
  }

return deliverycontent;

}

var deliverycontent = delivery.content.html.source;
delivery.content.html.source = cleanseLinks(deliverycontent);

return true;

 

In addition, some implementations require custom tracking parameters to be added to all links in the deliveries. This can also be achieved using custom typology rules which modify the html source and append the custom tracking parameters to the links. This can, of course, be customized to an extent as per the requirements.

 

1 Comment