Blast Analytics and Marketing

Analytics Blog

Supporting Leaders to EVOLVE
Category: Digital Analytics

Switch to Adobe Analytics Server-Side to Improve Data Quality and Site Performance

May 21, 2019

Deploying Adobe Analytics via a client-side method is the most common approach, but it might not be the right approach for your organization.

From potential security risks to performance concerns, more organizations are beginning to look at deploying analytics and marketing technologies on their website/apps via server-side methods.

A New Way to Deploy Adobe Analytics: Server-Side

In the last 3 or so years, tools like Tealium EventStream and Segment have been cropping up that help you capture data for vendors like Adobe Analytics without deploying their tag. What differentiates these tools from the tag managers that are more widely used, is that they only deploy one JavaScript library, which includes one set of cookies, and one server call going out for each page view and link call.

What differentiates these tools from the tag managers that are more widely used, is that they only deploy one JavaScript library, which includes one set of cookies, and one server call going out for each page view and link call.

But this one JavaScript library is able to send data to numerous vendors. After a server call goes out, it is taken to either Tealium’s or Segment’s servers and dispersed to each of your vendors via their server-side APIs.

Before we continue, I’ll provide a quick explanation of the difference between Adobe Analytics server-side implementation and client-side implementation.

What Is Client-Side Implementation?

Client-side (AKA device-side implementation) is the classic way of implementing Adobe Analytics. You place your AppMeasurement JavaScript file on each page of your site which then listens for either a s.t(page view) or s.tl(link click) call and it sends the data passed along with those calls to Adobe’s servers, where the data is processed and made available for reporting.

With a client-side Adobe Analytics implementation you can see the server calls going out to Adobe by monitoring your own computer’s network traffic. You can see all the code that is making everything work too.

What Is Server-Side Implementation?

Server-side Adobe Analytics implementations work similarly but in a different part of your website. Each website has a back-end set-up that basically feeds information from databases to your website telling it what to load and when to load it. This information also includes e-commerce and user information.

image representing traditional vs server-side data collection

When Adobe Analytics is implemented server-side, it communicates directly with this back-end system and is never loaded on the site to be in view of the end-user. Instead of using the AppMeasurement javascript library it uses an API (Application Program Interface) called Data Insertion API. You still send page views and link calls but you no longer use s.t() and s.tl() calls to do so.adobe analytics logo

Long story short, Segment and Tealium EventStream send data from their servers to Adobe Analytics via the Data Insertion API. You might be asking yourself why you would use Segment or Tealium EventStream vs just using the Data Insertion API directly. Because, if you did it that way, you wouldn’t have to load anything on your site, right?

The primary reason you wouldn’t want to do this is that a Data Insertion API set up for your site is very difficult to maintain. You need a lot of engineer support to get it up and running and it is very difficult to debug.

Now that we have gone over how tools like Segment and Tealium EventStream work, we are going to focus on the pros and cons of implementing this approach from an Adobe Analytics standpoint.

Pros of a Server-Side Implementation

Why implement Adobe Analytics server-side when client-side works just fine? Well there are a lot of benefits to going server-side that client-side can’t provide.

image representing benefits of server-side implementations in adobe analytics server side

Increased Data Integrity Throughout

You can use your same, well thought out, amazing Adobe Analytics implementation for any vendor that these tools support, and they support a lot! You can check out Tealium EventStream’s APIs for example. Imagine, all platforms using the same data value format.

By using this method, gone are the days of comparing your Adobe Analytics data against another vendor because they’ll be using the exact same implementation. Also, heaven forbid, if you ever switched to a different analytics platform like Google Analytics or Mixpanel you can. Easily! All you have to do is flip a couple of switches and fill out a few text fields and you are up and running.

Gone are the days of comparing your Adobe Analytics data against another vendor because they are using the exact same implementation.

Complete Ownership

Something that is great about both Segment and Tealium EventStream is that they make it very easy to not only send your data to multiple vendors, but you can also send it to your own database. Anybody who has tried to move clickstream data from Adobe Analytics to their database knows that being able to easily own your data is something special.

Easier Upkeep and QA

Managing a Tag Management System (TMS) that contains a large number of tags can burdensome. Every time you publish something you should be checking every tag that you have within your TMS to makes sure that what you published didn’t unintentionally break something.

But with an Adobe Analytics server-side implementation, you only have to check one server call and makes sure that your one JavaScript library is not outputting any errors. Talk about efficiency!

Faster Page Load Speeds

Instead of having your tag manager load several tags on every single page you only have to load one tag. This means faster page loads, and a happier site visitor.

Fewer Cookies

Yes, you are reading that correctly. The single thing that most major browsers have had a personal vendetta against will become less of an issue, because you will have fewer cookies to worry about being blocked. (Recommend reading this article on Safari ITP 2.1 from Adobe if you aren’t familiar with how Safari and other browsers are starting to change how they handle 3rd and 1st party cookies, and thus why fewer cookies is highly desirable.)

Increased Security and Privacy

With less code and cookies involved with your Adobe Analytics implementation there are fewer chances of errors occurring or having someone’s privacy compromised. The chances of data being compromised after it is sent from your site remain the same, but at least you will end up being more secure.

With less code and cookies involved with your Adobe Analytics implementation there are fewer chances of errors occurring or having someone’s privacy compromised.

Another security concern that you can avoid by using a server-side set up is the threat of 3rd party hosted JavaScript libraries being compromised. With a server-side Adobe Analytics implementation you don’t have to load any 3rd party libraries so you can avoid the headache that companies like Ticketmaster and British Airways had to endure.

Both companies had their 3rd party scripts compromised which resulted in data breaches for a large number of their customers.

Mobile App Implementations

There is no such thing as a good mobile app tag manager. You have to add an SDK to your app for every vendor you want to track with. The Adobe Analytics SDK is beefy by itself and takes a lot of work to implement.

I still have nightmares from every single mobile app analytics implementation that I have done. I can’t imagine doing that for every vendor. With Segment or Tealium EventStream, you only have to manage the implementation of one SDK. Which is probably the closest thing we will have to a mobile app based tag manager.

Cons of a Server-Side Implementation

This all sounds great right? So what is the catch why isn’t everybody going this route. Well when it comes to Adobe Analytics specifically there are some caveats you have to keep in mind.

image representing the disadvantage of server-side implementations in adobe analytics server side

Experience Cloud ID Service

The visitor ID service that Adobe Analytics uses to identify users is strictly JavaScript based. What this means is that if you want to use this service, you have to still add it directly to your site. From there you can grab the ID that the service generates and send it to Tealium EventStream’s or Segment’s servers and it will continue to work as normal.

Segment has its own visitor ID’ing service that you can use in lieu of the Adobe Experience Cloud ID service. However, if you have been using Adobe’s ID service for years, or you are using multiple Adobe Experience Cloud products services and want to keep everything between them unified, that might not be an option.

Video Heartbeat Tracking

Since video Heartbeat relies on the Adobe Experience Cloud ID, and doesn’t have a server-side API, it will be more difficult to track any videos with Heartbeat. To make matters worse, Adobe Analytics recently announced that you have to use Heartbeat in the future to track all videos.

No Data Manipulation Tools

A tag management system allows you to manipulate data to fit your needs. Segment doesn’t have anyway to do this, but with Tealium EventStream you can still do this in Tealium iQ before it is sent to the EventStream.

Engineer Support Is A Must

Having the support of engineering when it comes to a tag manager is preferred. But sometimes they are not able to make the changes you need when you need them. With a tag manager you can inject JavaScript, but as mentioned above with a server-side implementation, you can’t.

So, when using a tool like Segment, engineer support is crucial. With Tealium EventStream I highly recommend having engineering support, but you can still use Tealium IQ to use JavaScript before data gets to EventStream

Client-Side Implementation vs Server-Side Implementation Comparison

Feature Device (Client-Side) Cloud (Server-Side)
Send basic data such as page name, site section, and page URL Y Y
Send custom data via eVar, props, events, and contextData Y Y
Send e-commerce data such as product and order information Y Y
Specify whether a hit should be a page view or link call Y Y
Heartbeat Video tracking Y Through a lot of blood, sweat, and tears it can be possible (contact us if you need help doing this).
Automatically grabs and sends the Experience Cloud ID Y You have to have the visitor API load on your site, grab the ID it produces and then send it via the cloud deployment platform of your choice
Less server calls across various analytics and marketing tools N Y
Better consistency of data across various analytics and marketing tools N Y
Less Javascript, Swift, Objective-C, and Java code N Y
Easier Mobile App Implementation N Y
A tag management system that allows you to manipulate data to fit the needs on a per tag basis. Y Y (Tealium web only)
No 3rd party JavaScript libraries. Which will increase security for your site. N Y
Less cookies N Y

Client-Side or Server-Side, That Is the Question

So what should you do?

Should you take a leap and go with a server-side implementation for Adobe Analytics? My advice is that if you are just starting out, or have a pretty straightforward implementation where none of the above negatives concern you, you should go for the server-side approach.

One of the benefits I mentioned earlier was easier upkeep. This benefit is completely reliant on your relationship with your engineers. If your engineers are hard to work with and slow to move on tracking tasks, then upkeep will be very difficult because they have to do all of the heavy lifting.

If you have a complex analytics tracking implementation, I would hold off when it comes to Adobe Analytics server-side. By complex, what I mean is a lot of JavaScript within your tag management system to manipulate your data the way you like it. If you moved to a server-side implementation you have to move all of that manipulation outside of the tag manager, and your engineer will have to manage that.

The good news, from what I have seen with my various clients, is that relationships between the engineering teams and the marketing teams have greatly improved in the last 5 or so years. Also, these tools and the API’s they use including Adobe’s own Data Insertion API are improving.

…I have no doubt that tools like Segment and Tealium EventStream will pop up and server-side tools that are already around will only get better.

As the importance of site speed and data integrity continue to increase, I have no doubt that more tools like Segment and Tealium EventStream will pop up, and server-side tools that are already around will only get better. If you know of any other tools that can help with setting up an Adobe Analytics server-side implementation, or if you would like to share your own experience with server-side tracking for Adobe Analytics, leave a comment and let us know how it went for you.

TJ Webster
About the Author

TJ is an Associate Manager of Implementation at Blast Analytics, and specializes in Adobe Analytics and Google Analytics implementations. He has a strong understanding of various tag management systems, such as Adobe Launch, Adobe Dynamic Tag Manager, Google Tag Manager, Tealium iQ and Ensighten.

Connect with TJ on LinkedIn. TJ Webster has written on the Blast Digital Customer Experience and Analytics Blog.