Sunday, August 12, 2018

LiveRamp and Audience Manager Integration

Digital marketers since the onset, have strived to deliver personalized and targeted content to users. That coupled with knowing where users are in the purchase funnel and showing tailored content across multiple devices and channels is what makes their experience truly omni-channel. There's another term coined for this type marketing and it's called People-based marketing. So, how is it all accomplished? 

The following visual shows the various steps involved in delivering a truly unified experience to users across multiple channels and devices. One of the steps we'll cover as part of this post is to do a deep dive on the process of data on boarding.

Data on boarding (step 2) is the process of taking in customer's offline personally identifiable information (PII) and anonymizing it to make it available for online digital marketing efforts. Companies such as LiveRamp specialize in ingesting PII and device/cookie data from various sources and sharing it with Data Management Platforms for further activation. Typically, clients who are unable to connect their customer's hashed profile ID upon authentication with AAM (natural match) leverage LiveRamp but other customers leverage data onboarding as well. Let's dive into how data is shared between LiveRamp and Adobe Audience Manager:

LiveRamp to Adobe Audience Manager

Clients have often asked me how does LiveRamp send data to AAM and how is LiveRamp able to take PII data and anonymize it. At a high level, customers share their CRM data such as email address with LiveRamp which is translated into cookies and device IDs. For AAM, that cookie is the third party UUID that LiveRamp maintains a match table with and provides a batch file that's uploaded to AAM thereby enabling activation in the DMP.

Let's take a look at the various steps involved in bringing LiveRamp data in AAM.
  • Create 3 Data Sources: The first step to create three data sources for taking in LiveRamp data from cookies, iOS IDFA and Android Google IDs. The iOS and Android data sources are created in a similar way and the Cookie data source is created slightly differently as shown below. Please note that these data sources are only created once and can be replicated for all future file based on boarding.

  • Create 3 On Boarded Traits: The next step is to create on boarded traits in AAM based on the 10 digit numeric integration code (ic) provided by LiveRamp for each uploaded (file) set of cookies & device IDs. The following screenshot shows an example of a trait that's created to tie uploaded Android device Id data from LiveRamp to AAM. Make sure to create three flavors of these traits tied to each data source (iOS, Android and Cookies).

  • LiveRamp to upload data to AAM (S3 or FTP): Once all the relevant data sources (can be reused) and onboarded traits are created, the LiveRamp contact will push UUIDs or device IDs to AAM via a batch file process.
  • Monitor Onboarding Status Report: The last step is to monitor the Onboarding Status report and onboarded traits in AAM to validate if the LiveRamp uploads are setup correctly.

Finally, once data has been successfully onboarded from LiveRamp, you can map these traits into segments and then to various AAM destinations for marketing activation.

Audience Manager to LiveRamp

Almost all scenarios involving LiveRamp deal with data being onboarded to a DMP, but there is a way to send Audience Manager segments back to LiveRamp as well. That is made possible with the Server to Server (S2S) integration that AAM has with LiveRamp where UUIDs and mobile IDs are sent back to LiveRamp. A use case for that is propensity modeling where customers take in "enriched" audiences originally shared from LiveRamp to AAM back into their CRM system for further optimization and enrichment. 

To summarize, we covered what role LiveRamp plays in anonymizing customer's PII data, how that data is shared with activation platforms and how it flows back into the CRM for further enrichment. I would like to hear about how you're leveraging data on boarded to a DMP back into your own CRM system.

Sunday, July 29, 2018

Adobe Analytics and Audience Manager Data Sharing Scenarios

Recently, I wrote a post about Audience Library which was about data/segment sharing within the Experience Cloud. A similar question came up while working with a client and colleague around the type of data that can be shared between Audience Manager to Analytics and vice versa. That gave me an idea to write about it and share my insights on what kinds of use cases can be met by sharing data between these solutions.

I'm going to cover three different scenarios in which data can be shared between Analytics and Audience Manager and the use cases that go along with it and will be using the Hedge Trimmer garden tool as an example. So, let's get started!

Analytics to Audience Manager (Batch)

This is the easiest way to share segments from Analytics to Audience Manager as this integration is available for any customer subscribed to People Core services. We do that by clicking on the checkbox as shown below but there is a cap of 20 segments that can be shared by this method. To share Analytics segments with AAM and the Experience Cloud, click on the checkbox as shown in the screenshot below and it takes about 24-48 hours for it to show up in AAM. The other thing to note is that you don't require a technical integration between Analytics and AAM as this method automatically shares segments but I highly recommend setting up the integration using either of these methods.

Below are some analysis use cases that can be satisfied using this method of sharing.

  • Complicated Segments that Cannot be Easily Created in Audience Manager: A very common scenario I've seen with clients is to share any Analytics segment by default that they can easily create in AAM such as traffic to a particular page. However, it makes more sense to ONLY share segments that cannot be easily created in Audience Manager. An example is Revenue which is not readily available as a metric in AAM but it is available in Analytics. In the example below, we've created a segment that is tied to users who spent $30 or more on Hedge Trimmers and shared it with AAM by clicking the checkbox. 

  • Technical Analytics->AAM integration is Not Set Up: The other use case where you may want to share Analytics segments to AAM is when either the client side or Server side forwarding integration is not setup between these two solutions. A few clients in the early stages of Audience Manager implementation or during a POC may want to leverage this feature to start sharing segments with Demand Side Platforms for marketing purposes.

  • Need to Send Historical Audiences before Technical Integration: The final use case is prevalent when clients want to send audiences from the last 3 months to DSPs for a media campaign but their technical integration is only 7 days old and don't have enough data. That's where we can leverage this segment sharing feature. 

Analytics to Audience Manager (Real-Time)

This is the most common and recommended method to share segments between Adobe Analytics and AAM and it requires either a client side or server side integration of Analytics with AAM. The advantage of this integration is that this data is collected in real-time and rule-based traits created with this data can be mapped to a segment and activated on immediately. Below are some classic use cases that are executed using rule-based traits.
  • Retargeting: Site analytics data captured in AAM can be leveraged for retargeting use cases. The example below is a rule-based trait that is created to retarget potential hedge trimmer customers who viewed the product but did not purchase yet.

  • Personalization: Another very common use case is personalization where site analytics data can be leveraged and segments sent over to Adobe Target to show contextual content to users. An example of this can be showing a page customized for garden tools to visitors who are actively shopping for Hedge trimmers.

  • Conversion: We can measure conversion by creating Conversion traits. This type of rule-based trait is created by selecting "Conversion" from the "Event Type" drop down in the trait UI. As an example, a Conversion trait can be tied to either campaign landing pages or actual orders captured in Adobe Analytics and be analyzed using the Optimal Frequency report in AAM to measure campaign effectiveness.

Audience Manager to Analytics (Audience Analytics)

I'm not going to give a walkthrough of Audience Analytics as it's already covered in detail here but it's a way to send Audience Manager segments to Analytics. Audience Analytics is still relatively new and there'll be more analysis use cases that customers will find from it but in this section, I'm going to cover three use cases that will be helpful to measure via Audience Analytics. One important thing to call out is that AAM data will only start flowing into Analytics once we add a report suite to the Analytics destination in AAM.
  • Tie Offline Conversions/Attributes to Online Activity: With Audience Analytics, we can tie offline attributes to online sales as well as tie offline sales to online activity. In the example, we're looking at demographic information captured from a CRM system and tying it to online sales for garden tools.

  • Customer Journey Analysis: Another important analysis use case for Audience Analytics is cross journey analytics where we can measure how prospective customers traverse across various channels/sources and land on the website. This can inform marketers where their marketing budget needs to be spent or shifted. In this example, we see how visitors present in a 3rd party data set move through various sources and eventually land on the website.

  • Measure View-Through Conversions: We can also use it to easily see how many visitors who saw an impression and not clicked, convert or visit certain pages on your website or app. This type of analysis can also be done in AAM but given that Audience Analytics is built within Workspace, you get more opportunities to do breakdowns and analysis than AAM.

The opportunities to measure audiences flowing in and out of Analytics/Audience Manager are plentiful and will continue to evolve but the first step is to leverage this amazing integration between two powerful solutions. How are you leveraging this integration for your business?

Sunday, July 15, 2018

iOS Mobile App Analytics Debugging

Back in 2008, I wrote about debugging web analytics code. Mobile App Analytics testing, on the other hand has always been a mixed bag for me. I've primarily leveraged Charles Proxy to setup a connection between my device and my computer outlined in the instructions here but I've never been able to set it up without a glitch. Given that I mostly use Apple devices, I'm going to cover how to test iOS Apps in this post.

Charles Proxy iOS App

The new Charles iOS App is a godsend if you're looking to validate Analytics calls on an iPhone or iPad. This App costs only $8.99 for a single device and the best thing about is the simple setup which is what makes it a steal in my opinion given all the time it'll save you in configuration. I highly recommend this app if you want to save yourself the hassle of setting up Charles proxy on your Mac or desktop as this App works both on 4G/LTE and Wifi. Note that this method is recommended when you want to test an App downloaded on your iOS device. Here's a link to the iTunes Store to buy it.

Below are some screenshots and a quick walkthrough of how to set it up on iOS.

  • Download the App and "Trust" the App by going to Settings -> General -> Profiles & Device Management on your iPhone.

  • Now that the app is successfully installed , let's take a look at how to set it up to start recording traffic. The first step is to toggle the Status option to "Active". You will see an icon showing "VPN" appear next the cellular and Wifi icons. Next, click on the Gear icon highlighted in Red to go into the Settings screen.

  • The next step is to click the "SSL Proxying" menu to enable SSL tracking which is a very important step. Install the SSL certificate to capture secure packets.

  • Now that the certificate is installed and proxying enabled, we'll have to enable SSL proxying for individual host names. Click the "Disable SSL Proxying" link and again click on the "Enable SSL Proxying" link to enable SSL tracking for a particular host name. You will have to restart the App for it to take effect.

  • You should end up with a list of all host names that will be displayed when you download the Charles log (covered in the next few bullets). You can also manually add hostnames by clicking on the "+" icon.

  • Once SSL proxying is enabled, let's take a look at how to review the logs by going to the main screen and clicking into the "CURRENT SESSION" menu. 

  • Once on this screen, filter for the host name you want to analyze as shown in the two screenshots.

  • You can now review the analytics request by clicking on the "View body" option under REQUEST BODY.

  • The issue with the Response header is that it's not easily legible so it makes sense to share the analytics requests by clicking on the icon highlighted in Green. To clear all requests, click on the icon highlighted in Red. Note that you can share the Charles session via Slack, email or text. This is now my preferred method of testing App analytics requests.

  • You can finally view the output in the desktop app for Charles proxy to see it more clearly as well as share it with others.

Enable Debugging in XCode

Finally, I highly recommend that you enable setDebugLogging in XCode to validate your test App for your own QA.

Please feel free to share other tools or methods by which you perform your own mobile App validation.

Saturday, June 30, 2018

Adobe Audience Library and Where It Fits In

Digital Analysts and Marketers make informed decisions when they have the data they need without worrying about underlying system limitations. I know how empowered our customers feel when they see reporting solutions connect seamlessly with one another.

Recently, I worked with a client who was trying to share a bunch of segments from Adobe Analytics to Audience Manager and Adobe Ad Cloud. It should've been simple given the robust integrations we already have among various Experience Cloud solutions but in this case, we found a gap. The gap was primarily in terms of the number of segments that can be shared (20 segments from Analytics to Audience Manager) and the lack of a direct integration between Analytics and Ad Cloud. So, what was the solution? 

The solution was Audience Library. Adobe Audience Library is built on the same framework as Audience Manager where Visitor segments are shared seamlessly across the Experience Cloud. Audience Library provides us that ability by automatically sharing segments across Adobe Analytics, Audience Manager, Adobe Target and Adobe Ad Cloud with no known limits in how many segments can be shared (I will update this if I come to know of any). 

How To Get Access To It?

  • The first step is to get provisioned with Shared Audiences.
  • Make sure you've implemented the Experience Cloud ID Service on your Website or App.
  • Once provisioned, get access to the Audience Library product in the Adobe admin console.

  • Click on the "People" link with the Experience Cloud product selector menu and click on Audience Library.

Quick Walkthrough of Audience Library

  • The Audience Library home screen will show all audiences/segments created in Adobe Analytics, Audience Library and Audience Manager as shown below.

  • Click on the "New" button to create a new audience.
  • On the segment creation page, you can create a combination of Experience Cloud audiences (retroactive) and Real-time audiences which will look like this

  • For this demo, I created a Real-time segment called "Test Segment for Audience Library" which pulls data from an Analytics report suite tied to a page name.

  • Finally, we check if our segment shows up in different Adobe solutions. In this case, we'll check if it shows up in Audience Manager and Target which it does.

When To Use Audience Library

  • When you've run out of segments to share from Analytics to Audience Manager. 
  • If you want to share Analytics batch or Real-time audiences or both across the Experience Cloud (primarily Analytics to Adobe Ad Cloud or Target) automatically. Note that Audience Manager automatically send segments to Adobe Target as well.
  • If segmentation requirements are based on simple conditional logic tied to Visitors for personalization, retargeting or other use cases.

Limitations of Audience Library

  • Audience Library doesn't allow sequential segmentation like it's possible in Adobe Analytics.
  • It doesn't let you define segment containers based on Page View and Visit like we can do in Analytics.

To summarize, Audience Library is not the ultimate solution for all segmentation requirements but it can certainly solve a lot of problems either stemming from lack of system integrations or limitations in terms of the number of segments needed to be shared. I'd encourage you to give it a try.

Saturday, June 9, 2018

Accelerated Mobile Pages Adobe Analytics Tagging

A few months ago, I participated in a "Hackathon" at work and was tasked with creating a technical guide outlining how to set up Launch by Adobe on Accelerated Mobile Pages (AMP). In this post, I'll share a link to the tech guide I worked on as part of the Hackathon as well as cover basic Adobe Analytics link tracking on AMP pages. 

According to the official AMP website, AMP is an open-source library that provides a straightforward way to create web pages that are compelling, smooth, and load near instantaneously for users. AMP pages are just web pages that you can link to and are controlled by you. One of the reasons why these pages are "compelling, smooth, and load near instantaneously" is because they don't run any JavaScript. 

Digital Analytics tags as you already know, rely almost entirely on JavaScript and not having it enabled introduces a lot of implementation challenges. This post covers two different methodologies by which we set up Adobe Analytics page load and link tracking using AMP. I'll also share links to some sample pages with you for you to set them up on your end. Let's dive right in!

AMP Pages Tagging via Launch by Adobe

Before we get started, it's important to call out that this method supports the Visitor ID Service, Adobe Analytics page view tracking and Adobe Audience Manager. Adobe Target and link tracking are not supported with this approach. 

Here's a link to the public facing technical guide I created that walks through how to do Adobe Analytics page load tracking on AMP pages. I'm going to reference certain components from it in this section.

Validate AMP Syntax

The first step is to make sure your site is compatible with AMP. To do so, paste your code into the AMP validator code editor. Below is a screenshot from the validator site showing that my test page passed (click on the image to enlarge) the syntactical check on the validator site.

Add References to Libraries

We need to reference a couple of JavaScript libraries which are compatible with the AMP platform. These are pasted below and highlighted in the screenshot. Make sure to reference these correctly as shown in the screenshot.

  • (Mandatory file for any kind of analytics tracking in AMP be it Adobe Analytics or Google Analytics.)
  • (Required if you want to setup Adobe Analytics using any Tag Management solution such as Launch by Adobe)

Leverage  the "adobeanalytics_nativeConfig" Template

This is the most important step in the overall configuration. This method makes use of the "adobeanalytics_nativeConfig" template to host the Launch by Adobe library in an iframe as well as outputs meta data required to pass data over to the Analytics tag.

There are two main components of the code as shown in the sections highlighted below.

This is where the iframe (Red) is added and meta data (Blue) to pass along

The "iframeMessage" section (Red) contains the link to the iframe URL along with additional data points such as page URL, referring URL etc along with the iframe domain which in this case is my blog. The next two screenshots see how "iframeMessage" is linked to a separate "iframe" page on my blog.

The "extraUrlParams" section (Blue) contains any meta data you want to pass along to the Tag Management tool and eventually to your Analytics solution. We can think of this as a virtual data layer. is where the Launch library is hosted

The HTML of the iframe page is very simple where all we've included is the Launch by Adobe library code.

HTML of the iframe page reference added here

Setup Adobe Analytics Extension in Launch

Install the Adobe Analytics extension in Launch.

Create a data element to override the page URL to capture the parent page URL instead of the iframe URL.

Validate Adobe Analytics on the AMP Page

Here's a link to a couple of simple AMP pages which when hosted on a server, will fire the Adobe Analytics tag as shown below.

Caveats with this Approach
  • This method doesn't work on Adobe Target due to the iframe
  • Link tracking doesn't work with the "adobeanalytics_nativeConfig" template

Link Tracking on AMP Pages

This section is based off the instructions provided in the official Adobe documentation. I've added a simple addition to show how to fire off events as a client asked about it which are not listed on this page. Let's go through the setup.

Link Tracking Code Setup

The screenshot below shows the code that we need to use to setup basic image pixel based page load and link tracking on AMP pages. At a high level, there are three main sections in the code.

  • The "requests" section (Red) contains a definition of various Adobe Analytics variables that are referenced for the page view and link tracking image requests.
  • The "vars" section (Blue) contains variables that are mandatory to send the image request such as tracking server and report suite.
  • The "click" section (Orange) is where we define all variables needed to be sent as part of the link tracking call.

Validate Link Tracking

Below is a screenshot that shows the Adobe Analytics link tracking call.

Caveats with this Approach

There are lot of issues with this method which are taken from the test page hosted on Adobe's Github

  • Visitor/visit counts will be hyper inflated.
  • Visitor ID Service is not supported.
  • No way to tie a visitor back to the originating site (no measuring new vs repeat visitors or user acquisition).

Given that the link tracking method on AMP causes visitor duplication, my recommendation is to go with the first method which leverages an iframe. How are you tracking your AMP pages?

Monday, May 21, 2018

Adobe Audience Manager Campaign Template

The most common use case for any DMP is campaign activation, where the DMP acts as the intermediary layer between the client's website or CRM system and the Demand Side Platform to share audiences across. In such cases, it's imperative that we have a very well defined process and structure to get these campaigns launched. 

My colleague and I created a simple, yet detailed template/checklist for documenting everything from business requirements to all the nitty gritty details required for successfully launching a campaign using Adobe Audience Manager. Below is a screenshot of the template. Please click the image to get an enlarged view.

The template is divided into three main categories and has a lot of different steps but I'm only going to cover the ones relevant for this post as the other ones are self-explanatory. Let's take a look at some of these categories in detail.

Business Requirements (5 Business Days)

This is the first and most important stage in the entire DMP->Campaign workflow. This involves everything from defining your goals to determining the granularity of your incoming media data. Let's dive into the details.

  • Key Business Objectives (KBOs): For any analysis project, product or campaign to be successful, business objectives or goals need to be defined before getting started. In case of campaigns, there are a lots of different factors involved such as strategy, budget, targeting platform and many others that are outside of the scope of this article. For a DMP, we'll stick to overall objectives and the marketing channels such as display, search, email, social, personalization etc) as well as others included in the template.
  • Key Performance Indicators (KPIs): Once we know the goals, we need to determine the KPIs that'll be used to measure success such as Clicks, Impressions, Click Through Rate (CTR) and other website/app success metrics. These KPIs are instrumental and should tie back to the goals.
  • Target Audience: We need to determine what kind of audience will be targeted for the campaign. It can be anyone between the ages of 18-35, male or female, tech professionals, government officials, income > 100K per annum, location etc. Again, it all has to tie back to back to the overall business objectives.
  • Duration and Dates: Some businesses are seasonal and others are not but there's never a bad time to bring in new customers. It's very important to know when the campaign will run and for how long as timing is everything. Knowing how long the campaign will run can help us estimate how much traffic we'll drive as well as gauge the critical mass to determine success.
  • Identify Destinations: This involves documenting which Demand side platforms will be used to run the campaign. Some examples of DSPs are Adobe Ad Cloud, DoubleClick Bid Manager etc. which already have a server to server (S2S) integration with Audience Manager. There are other platforms which may not have a S2S integration so we need to know what those are so in advance that we can determine the best approach to send data to them. Outside of S2S destinations, we can share AAM data via data exports, cookies and pixels.
  • Data to be Shared with DSPs: We need to identify what kind of data (1st or 3rd party) has to be shared with the DSP. For prospecting campaigns, a very common use case is to purchase 3rd party data from the Adobe Marketplace which is a platform that allows marketers to purchase new audiences from data providers such as Acxiom and Dun & Bradstreet. In other cases, a marketer may want to retarget their existing customers who exited the site before submitting a lead.
  • Data to be Brought into AAM: Every DSPs captures media data at a click and impression level at the very least so we need to determine how will that data be brought into AAM. Data can be brought into AAM either via pixels or by ingesting Ad Server logs. Recent changes around GDPR readiness will impact log ingestion for global companies with European customers so it's important to gauge your ingestion approach beforehand.
  • Define and Receive Media Taxonomy: Finally for the requirements phase, we need to define and lock down our general taxonomy to structure the data in AAM. The campaign owner needs to send over the campaign ID, site, placement etc. matrix. This involves determining the granularity of data required to bring into the DMP. As an example, if you only care about measuring data up to the site level, it may not make sense to capture data at a placement level as it'll be too granular and will result in wasted effort.

Setup and Launch (6-7 Business Days)

This stage involves the operational and technical setup within AAM to prepare for the campaign. This also involves communicating with the campaign owner to receive the campaign taxonomy matrix that contains campaign ID, site, placement etc. information that is used to build traits and segments in AAM. Let's take a deeper look.
  • Send AAM pixel documentation (If applicable): Based on the campaign matrix received from the campaign owner, the AAM consultant creates a pixel documentation and tailors it to match the taxonomy requirements. This involves defining both click and impression level pixels that will be setup in the DSP. Please note that this is not a required step if you're already ingesting Ad Server log files but will be required if you're planning to deploy media pixels.
  • Trait and Segment creation: This step involves creating AAM traits to capture track audiences (1st or 3rd party) for activation in the DSP as well as traits to capture media performance. Activation specific traits are tied directly to the target audience defined in the business requirements state and media performance traits are either tied directly to media pixels or conversion activity on the site. It's a good idea to create both kinds of traits. Once the traits are created, map them to segments as that is how data is shared with external partners. Please note that both traits and segments take about 24-48 hours to initially start populating data and are then populated daily so timing is everything.
  • Pixel validation and sign-off: The campaign owner sets up the pixels in the DSP and shares the pixels with Adobe for validation. The AAM consultant validates the pixels, monitors data in the traits and provides their feedback or sign-off.
  • Map Segments to Destination(s): Once the traits have been setup and validated, we map the segments over to the DSPs and destinations which will be used to run the campaign. It's critical to map the segments at least 3-5 days before campaign launch so that we have enough time to validate data flow and fix any issues with the integration.
  • Campaign Launch!


Once the campaign has launched, we need to start our post-launch activities which revolve primarily around reporting. Let's take a look into what some of these steps entail.

  • Monitor data: This step involves monitoring media traits and segments right after launch to make sure we're capturing data as expected. The other reason why monitoring reports is important because AAM samples certain reports such as the Overlap report that requires a minimum threshold to populate so it's important to assess it early on. 
  • Audience and Overlap report analysis: The last step is to analyze campaign performance in the Audience Optimization and Overlap reports. The Audience Reports are helpful in gauging overall segment performance, volume, trends and optimal frequency. The overlap reports help in identifying high overlap (less reach) and less overlap (high reach) which can be helpful in both prospecting and finding our commonalties. Finally, it's important that you leverage other reports in the DSP and your Analytics tool along with AAM to get the complete picture.

This is a good starting template for documenting and tracking all campaigns being activated from AAM. It will continue to evolve and get better as we start using it for more campaigns and as we get feedback from clients. Currently, this template is in excel format and needs to be created separately for each campaign but at some point we'll probably move it to SharePoint or some other online tracking platform. Feel free to contact me if you need a copy of this template. Out of curiosity, how are you tracking campaigns for your business?

Sunday, May 6, 2018

Migrate legacy Adobe Visitor ID to Experience Cloud Visitor ID

The Adobe Experience Cloud ID Service (formerly known as the Marketing Cloud ID Service) has been around for more than three years now but there are some Adobe Analytics customers who are still on the legacy visitor tracking system. This post covers the various steps involved in migrating from a legacy Analytics tracking solution to the new Experience Cloud Visitor ID Service.

The Experience Cloud Visitor ID Service leverages a common and universal cookie identifier across all Adobe solutions that enables us to seamlessly integrate Adobe solutions with each other.

The Visitor ID service provides the following benefits:
  • As explained above, the ID service provides us with the benefit of seamlessly integrating all Adobe solutions which isn't easy to do with the legacy visitor tracking solution.
  • Visitor ID service enables the Adobe Experience Cloud Device Co-op which is a feature that allows subscribed customers to identify customers across devices and mobile apps. Device co-op also provides customers with the “People” metric that shows a deduplicated count of your users across multiple devices.
  • It enables Customer Attributes that allows customers to upload offline CRM data and tie it to online behavioral data.
  • Customers can leverage the latest video Heartbeat tracking that provides a lot of functionality to track media events across multiple video player formats.
  • It sets a first party cookie (AMCV) that is less susceptible to deletion. The legacy visitor tracking method (by default) sets a third party cookie that is more likely to be deleted by browsers, firewalls and ad blockers. This benefit may not apply to customers who leverage a CNAME as the tracking server where they set the cookie on their own domain.
  • It removes the need to get tracking servers migrated to a CNAME (E.g. which would otherwise require additional support from the network operations team. This benefit only applies to customers who are already on RDC (covered below).

Before we proceed, let's first take a look at the various cookies involved in this process. 
The following table shows which cookies & IDs come into play during the Visitor ID migration. Please click it to enlarge if you're unable to see it clearly.

Now that we've looked at the various cookies involved, let's go through the steps we need to follow to migrate to the new Visitor ID service.

Migrate Tracking Server to RDC

Visitor ID Service requires the tracking server to be migrated to RDC (Regional Data Collection) which is a network of data collection servers that are faster, safer and more reliable compared to the older data collection servers. RDC connects to the closest data center thereby reducing response times of image requests and incorporates load balancing to switch servers in case of a failure. 

The RDC domain is on "" as opposed to the legacy "" domain so it's always a good idea to check if you're already on RDC ( or The steps outlined in this Adobe article shows you how to check if your tracking server is on RDC or not.

If you're on the legacy domain then you will have to switch your tracking server entirely or if there are other domain change scenarios involved in your case, then follow the steps outline in this Adobe article to proceed.

If you're already on CNAME pointing to legacy servers and don't plan to change your tracking server, then you will follow the following steps:

  • Contact Adobe client care to request a migration to RDC by providing them with your existing CNAME based secure and non-secure tracking server names.
  • Customer services provides you with the new RDC tracking server hostnames which will end with
  • Contact your network operations team to redirect your CNAME tracking servers to now point to the new RDC ( domain.
  • Finally, test your tracking servers by pinging them and validating if they're redirecting to the domain as described in this article.

Setup Grace Period

A grace period typically setup for 30/60/90 days is put in place when customers want to continue leveraging the legacy analytics s_vi cookie in place of the new AMCV cookie set by the Visitor ID service. This is most commonly put in place if certain areas of the website have an older code version that cannot upgrade to the Visitor ID service and the implementation is leveraging a global report suite. The reason why it's necessary to put a grace period in place so that we don't see visitor "cliffing" or inflation in visitor & visit counts. That's because the Visitor ID service leverages a new cookie to track visitors and will probably count a repeat visitor as a new visitor. A grace period can also be setup for a company that wants to avoid visitor "cliffing" as they prepare to factor in the eventual visitor & visit inflation. 

To request a grace period, contact the Adobe client care team and provide them with the following information:
  • Experience Cloud or IMS Org ID
  • Company Name
  • Data Center
  • Date to start Grace Period
  • Grace Period Length (Up to 180 days but can be extended)

Setup Visitor ID Service

Once a grace period has been put in place by client care, work with your IT team to setup the Visitor ID service. Here's an example from the Launch by Adobe Tag Management tool to show the Visitor ID service extension. Notice that the we have to put in the Experience Cloud Org ID and populate the secure and regular tracking server fields (highlighted in Red) to setup the Visitor ID service which is required to get grace period to work and for the 'aid' parameter to appear.

Once the ID service is setup, you will start to see the new first party AMCV cookie and third party demdex cookie appear in your browser instead of the legacy s_vi cookie. However during a grace period, the s_vi continues to be set and is populated in the AMCV cookie to avoid visitor & visit inflation. Below is a visual that explains how cookies are set during a grace period.

Source: Adobe Blog


The next step is to validate the grace period. This is done by checking if the "AID" and "MID" parameters appear in the Analytics image request. The "AID" will contain the Visitor ID value from the s_vi cookie and will continue to be set till the grace period is active. This screenshot shows what the image request during a grace period looks like.

Prepare for the Inevitable

Finally, the most important step is for you to internally prepare your organization for this change as it's a revamped methodology to track visitors and at some point, you will have to confront the reality of visitor inflation when the grace period is turned off. Please note that this visitor "cliffing" will ONLY impact repeat visitors as new visitors will automatically get the new AMCV cookie. 

It might be a good idea to estimate how much impact this change will have on your visitors & visits based on your repeat visitors. If you're on the grace period for 180 days and turn it off after that, what % of your repeat visitors come back to your site or app after 6 months. This number will vary based on the kind of business you're in so all in all, you need to weigh the pros and cons and determine when you want to take the plunge.

So, that was it! If you're already on the Visitor ID service and don't have to deal with any of these outlined steps, then Congratulations. If not, then I'd highly encourage you to give a serious thought to proceeding with it as it will be worth it if you're an Adobe Experience Cloud customer.