Adobe Web SDK scaffold for tracking to Adobe Analytics via the Adobe Client Data Layer (ACDL) using Adobe Experience Platform Tags (Adobe Launch)

If you're using Adobe Web SDK to send events for Adobe Analytics, one of the biggest challenges is figuring out how to even do it in the first place. Adobe has a helpful article that covers the end-to-end basics, but sometimes, you just need a basic setup to get you going. Here's a scaffold that I designed for Adobe Web SDK with Adobe Client Data Layer (ACDL) as the data layer and Adobe Experience Platform Tags (a.k.a. Adobe Launch) as the tag management system. The full gist is at . I've listed out the minimal set of: extensions data elements, and rules that need to be set up in Adobe Launch to enable complete tracking of your website's usage data to Adobe Analytics via Web SDK + ACDL, i.e. your website with Adobe Launch -> ACDL -> Web SDK -> Analytics. Hopefully, this scaffold is useful for those of you who are getting started with implementing Web SDK for Analytics, or migrating from Analytics

Adobe Analytics: Don't use clearVars() to clear variables!

This article was posted originally at Adobe Experience League Communities. (Disclaimer: The following recommendation is based on my personal experience. It is not endorsed nor recommended by Adobe or any of its partners.) Background: sending more than one beacon in the same page When it comes to accurate analytics tracking, one of the most important things to guard against is that you don't track variables that shouldn't actually be tracked. This happens particularly often when multiple beacons are sent from the same web page. A simple example is what happens when you want to track a link click on a page. When the page's Pageview beacon ( s.t() ) is sent, you might have tracked eVar8 with the page's site section. This eVar8 remains set in the Analytics "s" object. So when you track the click on the link with a Custom Link beacon ( ), that eVar8 would be tracked as well – even if that wasn't your intention . This problem manifests itself ev

Adobe Launch extension update: YouTube Playback v1.5 - video milestones!

A new milestone has been reached for my YouTube Playback extension for Adobe Experience Platform Launch. With version 1.5.0, video milestones can now be tracked! (And also customised states when the video is playing.) For a long time, I've resisted adding video milestone tracking to my extension for one simple reason: it's not actually a supported feature in YouTube's IFrame API. My goal for my extension was to ensure that whatever functions that YouTube exposed in its API could be accessed through my extension with no (or little) coding. To that extent, I had succeeded. But my extension's users wanted more. And top of their list was video milestones. This is where pre-set milestones, like 25%, 50% or 75% of the video, will trigger Events that Adobe Launch can detect and operate on. Whenever someone asked me for it, my usual response was "That's not in the API, so you'll have to write your own custom code for it." But that response was clearly not wha

GTM dataLayer and Adobe Client Data Layer: a side-by-side comparison of usage

Data layers are an essential component of modern web analytics implementation. They provide an easily accessible and dynamic means of providing data from the website for marketing and analytics purposes, keeping it separate from the website's application layer. The most common data layer is probably the one associated with Google Tag Manager, or GTM. But other tag management systems, like Tealium, also provide their own data layers. The "new kid on the block" is the Adobe Client Data Layer, released in 2020. Unlike the other data layers, this one is independent of any tag management system, making it portable as well. I've prepared a simple, side-by-side comparison of how GTM dataLayer and Adobe Client Data Layer are used. This will help you be in a better position to understand their similarities and differences, and also how to properly transition from one to the other seamlessly. GTM dataLayer and Adobe Client Data Layer: a side-by-side comparison of us

Adobe Launch extension update: YouTube Playback v1.2 - enable tracking in a Rule action

About two months ago, my extension, YouTube Playback , was released on Adobe Experience Platform Launch (or Adobe Launch, for short). ( Read the blog post announcing its v1.0 launch. ) Since that time, it has been used in a couple of Properties, which is far fewer than I'd prefer, but I'm expecting it to grow in usage over time. Well, now, there's an even better reason to use it to track your YouTube video playback in Adobe Launch. Version 1.2.0 was released about a week ago, and it's what I would really consider the "real version 1" because of one key feature: Enable YouTube playback tracking within a Rule, instead of only at window load. This is an immense development. Previously, my extension would only enable YouTube playback tracking for videos that were loaded with the current web page. But if your YouTube videos were loaded dynamically, for instance, when a user clicked a button, then my extension would fail to track that video. Not any more!   Enable

Adobe Launch extension: Differential Privacy

About 2 weeks ago, I released a new extension for Adobe Experience Platform Launch (or "Adobe Launch" for short): Differential Privacy . In the current era of digital analytics where user privacy is becoming more and more important, what with governmental regulations and the like, it is increasingly important for analysts to consider protecting their users' privacy while still being able to do their analytical work with a fair amount of precision. That brings us to differential privacy . It's not a new idea, but it has become more prevalent in recent times. Essentially, it allows data analysts to be confident about their data at the aggregate level, but not too confident at the individual level. In that way, user privacy can be controlled for while still allowing good quality insights to be derived. For my extension, I implemented a very simple level of differential privacy: given a list of items and a random number, return either a pre-selected item (if the random

Announcing my first Adobe Launch extension: YouTube Playback

Today is a big day for me. After 24 hours over 10 days, my very first extension for Adobe Experience Platform Launch has been published: YouTube Playback . As the name implies, it allows marketers to measure playback of their YouTube videos – without any custom coding! It performs the following functions: Prepares YouTube IFrame elements with enablejsapi and origin parameters. Detects all YouTube player and playback events, including playback state change, playback quality and rate changes, and player errors. It also allows a selector to be used to select specific YouTube IFrame elements to track their playback. Announcement of my extension in the Launch Developers Slack workspace This has been a labour of love for me. It all started when I had to setup YouTube video tracking for a client in Adobe Launch. Like most marketers, I went with the tried-and-true method of adding custom code to work with YouTube's IFrame API. But as I worked on that implementation, I realised that this wa