Summit Lab: Server-Side Digital Marketing

Summit Lab: Server-Side Digital Marketing

Last Thursday (16/05/2019) I delivered my very first lab at an Adobe Summit. I would like to thank all of you who attended. It went really well and many participants managed to do the full exercise. I have received many requests to publish the content or explain more. There is so much to explain, that I will write multiple posts in the coming weeks, to cover all aspects. Use the comments if you need more clarifications.

For those of you who could not attend the Adobe EMEA Summit, the lab was about “Server-Side Digital Marketing”. Check my post about the PHP PoC to understand the details.

Pros & cons

In my first post about server-side digital marketing, I gave a detailed explanation of some advantages and disadvantages of these techniques. In the lab, I summarised them (and added a few more) as in the following table.

AdvantagesDisadvantages
Faster websites
  • Less HTTP requests from the browser​
  • Less code to download​
  • Less code to execute in the browser​
  • Very high bandwidth in data centres ​
  • No flicker​

Data quality​
  • More control over the execution environment​​
  • Less likelihood of data​

Easier SPA development​
  • No need for direct call rules​​
  • All request to the server can be made to track something​

Headless implementations​
  • Voice assistant skills​​
  • IoT devices​​
  • Chatbots​
Less flexibility​
  • No such concept as a “tag manager”​
  • More dependence on IT​

Increased complexity​
  • No GUI for optimisation or personalisation​
  • Complex debugging​

Increased time to market​
  • Changes may requires a code release​

No standard libraries available​


DMP functionality very limited

Sample website

I also created a PoC to show how to implement it. You can find it in this Gitlab link: https://gitlab.com/pmonjo/adobe-emea-summit-2019. It is important to mention that it will not work if you just clone/fork it. You need to create a configuration file named ADBServerConfig.json and place in the same directory as index.php and the other *.php files.

I have not tried setting ssl to true , but it should work. Also, remember to enclose in double quotes all strings in this JSON file. Let me know if you see any issues with the website and I will try to fix them. Remember that this is just a PoC and no guarantees are made.

Note. You must keep the copyright notice at the bottom of the web pages. All credits for the HTML code go to https://www.html5webtemplates.co.uk/.

Adobe tools

This is a summary of the Adobe tools I explained in the lab:

  • ECID. I already wrote about it in a previous post and the PHP library also has it. The most important conclusion is that, in web, you should never generate the ECID server-side. The reason is that AAM becomes almost useless. Instead, as I showed in the lab and in the code, you should use a hybrid implementation. The most immediate consequence is that Target and Analytics have to be run client-side on the first page of the first visit. I will write a future post to explain this hybrid solution in detail. Obviously, if you are implementing for a headless device, your only option is ECID server-side.
  • Target. In the index.php file you can see how I implemented a hybrid implementation, using regional mboxes and at.js. The basics of the server-side part are already documented in my server-side Target post, but I did not explain the hybrid solution nor A4T. This will be explained in a later post.
  • Analytics. All *.php files of the sample website contain a hybrid Analytics implementation at the bottom. I already wrote about server-side Analytics, where you can find more details. I am not sure I will write about it in the future, as it is fairly straight forward. Maybe I will enhance the PHP library to also generate the JavaScript. Other ideas are welcome.

I explicitly excluded Audience Manager, as it adds additional complexity in hybrid implementations and the lab was only 45 minutes long. In fact, I still need to figure out how to create this particular implementation, keeping all its features intact. This will also merit its own post in the coming weeks.

Note. By “hybrid implementation” I mean an implementation of Adobe tools where part is client-side and part is server-side.

Single Page Applications

When I started working in the web industry, SPAs were mostly unheard of. Nowadays, if your website is not an SPA, it is “antique”. I still need to learn how they work internally (I understand the concept).

Why am I mentioning them? As I explained in the lab, SPAs may not need hybrid implementations of Target and Analytics. They may be able to operate 100% server-side. I hope to have time to learn SPAs and write about them in another post.

 

Let me know if I have missed something from the lab in this summary!

3 thoughts on “Summit Lab: Server-Side Digital Marketing”

  1. Hi Pedro,

    I wrote down that you didn’t recommend to use the Data Insertion API for sending hits serverside. Instead it would be better to use the same endpoint which is used by headless devices (/b/ss/[rsid]/0).
    This looks like the GET-Endpoint for the Data Insertion API. 🙂
    I think I misunderstood this.

    Is there any reason (from you perspective) why I shouldn’t use the Data Insertion API (via POST or GET)?

    Thank you in advance!
    Nico

    • Hi Nico,

      I think that my old post on this topic was not very clear and needs some updates. To clarify, what I do not recommend is the XML-based call, which is only POST. This is what I meant by Data Insertion API. The main reason is that it does not support all the same features you have with the URL-based calls, like A4T.

      URL-based calls can be either GET or POST. These calls are recommended.

      Let me know if this is still not clear.

      Pedro

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.