Showing posts with label id sync. Show all posts
Showing posts with label id sync. Show all posts

Monday, March 9, 2020

Overview of Adobe Device Graph

We are surrounded by all kinds of (regular and smart) devices. It's either a Laptop, Tablet, Smart Phone, Smart Watch, Smart TV, Smart Vacuum, Smart Plug, Nest Thermostat, Wifi Camera or Chromecast to name a few. However, not all of these devices are truly connected due to many factors with one being that not all devices may belong to one single company in a household but the most obvious one is the lack of a true user "Identity". The other issue we face is that it's really difficult to track users and attribute an action across all these devices consistently. Google does this well with Google Home where it's able to sync my Nest thermostat with Chromecast using my Gmail ID. The other company is obviously Adobe ;)

By 2030, Americans will own as many as 15 connected devices. While we're not fully there yet, the introduction of new devices every year might expedite that trend. In 2016, Adobe's coined the phrase "Devices don't buy products, people do" which is still very relevant in 2020 and will be in the future. So how does Adobe establish the link between multiple devices to one person? In this post, I'll provide an overview of the various ways by which Adobe is able to link multiple devices to a person or household.


Concept of a Device Graph


According to this article, "A device graph, also known as “identity management,” is a map that links an individual to all the devices they use, which could be a person’s computer at work, laptop at home, tablet and smartphone". I'd like to add other smart devices to this list but the most common use cases for cross device analytics we see today are still around mobile, desktop and tablet but there's continuous innovation happening to bring different types of devices into the mix. 


Probabilistic and Deterministic Linking


The Adobe device graph comprises of multiple devices linked together via two methods namely deterministic and probabilistic. This Adobe article explains this concept really well but at a high level, probabilistic device link allows us to predict a person's identity (John Doe in our case) based on IP address, operating system etc. and deterministic device link allows us to identify a person based on their encrypted user ID captured on the website sent over to the Experience Cloud ID Service across devices. Please note that this matching and attribution happens 


The visual below is my attempt to explain the device graph at a high level where John Doe visits a website or mobile app using his iPhone, iPad and Mac. There are prettier visuals available in the Adobe documentation but I just wanted to create something simple to convey the concept.






Types of Device Graphs


There are primarily two types of device graphs which Adobe supports and these are ways by which you can create a true identity of your customers across multiple devices and sites. There's also an external graph option as well which allows companies to leverage 3rd party device graph data which is explained in detail here but it's not in scope for this post.


Device Co-Op


The Device Co-Op (available in US and Canada) allows companies to participate in a device graph which allows them to identify their "linked" customer devices (at a person and household level) across a magnitude of channels and websites in near real-time. The last time I heard about the scale of the Co-op, there were 100+ companies, about 300 Million users and 2 billion devices part of the Co-op device graph but this number is obviously higher now. 



The concept of the Co-op can be better understood based on the visual (above) taken from the Adobe blog: 

  • A customer John Doe visits the travel website and authenticates on both his mobile device and laptop. 
  • He then goes to a retail website but doesn't authenticate so the retailer doesn't know who this customer is.
  • Device co-op enables the retail website to "link" the customer's devices assuming both websites (companies) participate in the Device Co-op and identifies the anonymous user as John Doe. 
  • This in turn allows both companies to personalize the experience for this customer on both devices and websites. As you can see, the Device Co-op makes use of both the probabilistic and deterministic linking methods.

In contrast, if these companies didn't participate in the Co-op, then the retail company wouldn't be able to know what all devices did its customers use before purchasing something and treat it as 2 unique visitors instead of 1.

Below are some common use cases of the Device Co-op:

  • If you want to access to a large pool of users for prospecting related use cases.
  • If you want to perform frequency capping across devices.
  • Some other use cases are covered here.

Here's a link to a document which covers the membership and eligibility criteria for companies to participate in the Device Co-op. One other requirement of the Device Co-op is for the company to make changes to its privacy policy so it takes into account all the necessary privacy requirements and it does not collect any kind of PII or behavioral data. You can view your all your devices linked to the Co-op here and can unlink your devices from it anytime.

Private Device Graph


The Private Graph is another way for a company to link their customer devices in a device graph but visible and accessible only for their own organization and not any other company. 

Using the previous example, if we just look at the travel website alone we can treat it as a participant of the private graph as the data will simply be available within the context of that company. Private Device graph primarily makes use of the deterministic link as it works best if encrypted user ids are captured. Probabilistic matching will also be available to Private Graph sometime this year. 

Below are some use cases of the Private Device Graph:

  • If you want to reconcile user identities across multiple devices into one.
  • If you want to perform frequency capping across devices thereby optimizing ad spend.
  • If you want to establish a common identity across online and offline channels.

In order to participate for the Private Graph, the customer must be on Analytics Ultimate or have Audience Manager or have Target Premium and also be an Adobe Experience Platform customer. If you qualify for this as a client, subscribing to this should be a no-brainer for you given that no privacy policy updates need to take place. However, Device Co-op does give you access to a much larger amount of users which you wouldn't get with a Private Graph so you'll have to weigh your options on which one to choose.


Device Graph and Adobe Experience Cloud Solutions


In this section, I'll cover how to leverage some of the Adobe solutions I've used in conjunction with Device Co-op. Please note that I've only used Adobe Analytics and Audience Manager for customers participating in Co-op but there are use cases pertinent to Adobe Experience Platform, Adobe Target and Ad Cloud as well.

Adobe Analytics

Device Co-op is a natural fit for Adobe Analytics given the availability of the "People" metric which deduplicates the user count tied to multiple device and provides a true representation of a user as opposed to a device. This was introduced back in 2017 so it's been around for a while now and you can find more information about it here. Below is an example of what this looks like in a sample taken from the Adobe documentation.



The other service you can leverage (I've not used it yet) is Cross Device Analytics (CDA) which allows you to analyze cross device behavior in Analysis Workspace using Adobe Analytics data (needs a cross device report suite). This is not a default service and all the details and eligibility requirements are included in this Adobe Spark page.


Audience Manager

If you are a member of the Co-op and use Audience Manager, you get a lot of benefits primarily around prospecting and cross device frequency capping in offsite marketing. The first thing to do is to setup your Profile Merge Rule similar to how it's shown in the screenshot below taken from Adobe's documentation. 

The other thing which is very consistent with the screenshot is that your Co-op devices per Person count should be lower than the Person count of other data sources. Finally, you should expect to see a much larger count of users (potential reach) in the Co-op Person number compared to any other data source.


Adobe Experience Platform, Adobe Target,  Ad Cloud

Device Co-op also provides additional capabilities to Adobe Experience Platform for id stitching, Adobe Target for personalizing experiences across devices and to Ad Cloud for media uses cases around retargeting across devices. I haven't personally leveraged Co-op for AEP, Target and Ad Cloud so I'm unable to provide any additional context as I don't have much exposure to these three in the context of Device Co-op.

So, that was a high level overview of the Device Graph but I'll be writing more about it as I learn more about how it's used with other solutions of the Adobe Experience Cloud stack. Please feel free to share your feedback!

Sunday, November 10, 2019

Deploy Audience Manager Email Pixel in Adobe Campaign Standard

Email is a very effective channel to reach your customers and it's one of the more cheaper options to consider in your overall marketing strategy. It's estimated that email users will hit 3 Billion by 2020 according to this article which is ~40% of the total world population (7.7 Billion as of October-19). Last year, I wrote about tracking email clicks and impressions in Audience Manager that captures the user id and syncs it with the DMP. I didn't cover how to deploy this pixel in an Email Service Provider (ESP) so in this post, I’ll explain how to deploy AAM email pixels in Campaign Standard and specifically expand on the "Deploy the Pixel in the Email Marketing Software" section from the previous post. I'm also writing this as I got a few questions about how to actually do it in an ESP so given that Campaign is an Adobe product, this made sense to me.

I'm going to refer to some components of the Campaign Standard UI in this post so you can read this Adobe article in case you're not familiar with how to create an email template. Let's go through the various steps:


Use Case


Before we continue, let's take a closer look at the problem we're trying to solve. The main use case here is to perform an Audience Manager ID sync on users who view or click on an email. This can be helpful when you don't have a good way to capture authenticated users on your website for AAM Id sync/natural match purposes. The other advantage here is that you can upload additional data into Audience Manager tied to these IDs and connect these with additional data sources thereby activating on your Email marketing channel users.

It's important to note that there's no concept of a UUID cookie here unless the email is viewed in a browser but given that we add an ID sync, we target users tied to the data source and profile merge rule in Audience Manager. Again, the primary intent is data onboarding in AAM and limited activation which is made possible via the ID sync.


Deploy the AAM Pixels in Campaign Standard


Assuming that we're using the same pixel format (Subdomain).demdex.net/event?d_event=imp&d_cid=(DataSourceID)%01(HashedID)%011&c_emailopen=true&c_campaign=acs542test, we can add the pixel in the email designer where I will cover how to add the pixel both using HTML (imp pixel) and the email designer UI (click pixel) in Campaign Standard. 


AAM Impression Pixel (HTML)

In the email designer UI, select the "HTML" option.


At the end of the HTML code, manually add the image tag. Please note that I'm using the same user ID as per my last post as I don't have a hashed ID in Campaign but in order to get the most value, I highly encourage you to add a hashed id tied to email and for that, you'll have to use the Email Designer option to add the user ID as a personalized field (see next section).


AAM Click Pixel (Email Designer)

Follow the steps laid out in this Adobe article to personalize the links. I will show a simple example of how to do that but will not really include it for my example. 

Select the "Get Started" CTA and click on the pencil icon to to add a URL. 

In the editor, I've added a click pixel where I've included the d_rd (Mandatory redirect URL) parameter which redirects you the landing page URL that needs to be encoded. Also, note that I've added a personalization field as an example so if you have a user ID, you can add it to the pixel as shown below. Finally, I've also added a custom query string parameter called "m_source" which you can track on your landing page in an eVar if you use Adobe Analytics or leverage the utm parameters if you use Google Analytics.

Create Traits in AAM

Before sending the email, make sure that you create the relevant traits tied to impressions and clicks in Audience Manager. I cover this in the next section.


Send the Email

In my example, I just sent to email to myself which is why you just see one email sent.




I can see the email in Microsoft Outlook where an impression pixel will fire as well as the click pixel if a user clicks on the "Get Started" CTA.  



Validate the AAM Pixels


We already covered how to validate the email pixels in the last post I wrote but I'm going to do so again as now I'm deploying the pixels in an actual ESP this time around.

Validate in Campaign Standard

We can preview the email in Campaign where it shows you how the email will look on both Desktop and Mobile. After opening up the network tab, I'm able to see the impression pixel fire. Please note that this needs to occur before you send the email so I skipped a step here.

Validate Impression Pixel in Microsoft Outlook

For the purposes of this demo and to simplify QA, I'm manually opening up the email in a browser but note that the pixel will fire in Outlook as well. I'm able to see an impression pixel firing after I open it in a browser.

Validate Click Pixel in Microsoft Outlook

In this case, I clicked on the "Get Started" CTA and preserved logs in Chrome to see that the click pixel took me to the landing page as fired a call to AAM.

Validate Email Pixels in Audience Manager

The next step is to validate the email pixels in AAM. We created two traits tied to impression and click and both show that I qualified for each of the traits.


Validate Email Clicks in Analytics Solution

The final step is to validate how many users actually land on your site which will be users who click on the email. In my case, I have Google Analytics tagged on my blog so I've included a quick example but in hindsight, I should've leveraged the utm parameters as I'm using GA but you can capture this query param in your Campaign ID variable.


So that's the extent of the various steps involved in tracking AAM email pixels in Adobe Campaign Standard.

Additional Things to Consider

I'm going to cover some additional points that are important to consider before doing this.

  • Emails and JavaScript: Emails don't run JavaScript code so we have to leverage an AAM image tag for capturing impressions and clicks. 
  • Email Client Limitation: Audience Manager or any other image pixels don't fire by default in Gmail or any other web based email service but the pixel will fire when you click the option to view the email in detail (separate browser tab/window) which is typically included at the end of the email. An app based email service such as Outlook will fire the pixel by default so you will have to estimate the potential drop-off because of this limitation.
  • Email Click Redirect: You will notice that the clicked URL will momentarily redirect to Campaign before taking you to the final landing page. This happens because a click needs to be registered in Campaign which is visible in the native Campaign reporting UI.
  • Feasibility of the AAM Click Pixel: You may or may not need the click pixel depending on how well the tracking is on your landing page. If you're already tracking the query string parameter on your landing page then you may not need to implement the click pixel as it will incur an additional AAM server call in addition to the impression pixel. So, if the intent is just to ID sync users in AAM then you won't really need to implement it.

So, that's a wrap! Hope you found this post useful as you can use the same framework to deploy any other image pixel aside from AAM in Campaign Standard.

Saturday, January 12, 2019

Miscellaneous Facts About Adobe Audience Manager

Happy New Year 2019 to all and Thanks for reading this post. Adobe Audience Manager just like any other data management has its fair share of characteristics that are not commonly known. Unless you've actually spent some working time on AAM, it's unlikely to find these facts readily available in our documentation. In this post, I've aimed to document some of these in a single post. So, let's get started!


1.    The third party Audience Manager demdex cookie is the same across all sites (customers) that have AAM deployed. The reason why it's the same as it allows cross domain tracking of AAM customers and also forms the basis to share data across all AAM customers (2nd party data share). So, if you delete the demdex cookie, it gets refreshed for all AAM customer sites.


2.  Metrics in Audience Manager are based off Cookies/Visitors tied to the UUID (device/browser) or demdex. Customer often ask about replicating Adobe Analytics segments based on Visits in AAM which isn't possible to replicate 1:1 so it's important to understand this nuance.


 3. Server side Forwarded Adobe Analytics data to Audience Manager is billed separately in Audience Manager. Customers often assume that this data is forwarded for free which isn't the case as the same applies to data captured via the client side DIL data collection method in AAM which is billed separately.


4. Audience Manager variables starting with 'c_' are customer defined keys, 'd_' are platform level keys and h_ are typically browser header keys. Let's review of few of these.
o   Following are some keys to filter for the URL and/or referrer.
§  d_referer (not traffic referrer) allows you to filter for the page URL
§  If you have Adobe Analytics forwarding enabled, you can also use c_pageURL.
§  If you want to filter for the traffic referrer and have Analytics data forwarded, you can use c_referrer.
o   If you have a scenario where you capture the same page name across multiple sites (with different Adobe Analytics report suite IDs) and have SSF enabled, you need to use the d_dst_filter field. I've included a screenshot which shows how to filter it using a trait. See how the customer variable starts with 'c_' and platform variable starts with 'd_'.

o   If you want to capture data tied to city or country based off automatic IP address which is collected in AAM, you can use the following Geo platform keys: 
§  d_city 
§  d_country

5.   Given that Adobe Analytics data is now forwarded to AAM via report suites, the Audience Management Module is not required to forward data BUT should ALWAYS be implemented if you want yours users to qualify for segment as without it, you cannot leverage AAM for A/B testing and personalization. The other advantage of the module is that it creates a first party cookie for AAM (covered in #7).

6.  One other confusion that clients have is around the data collection frequency and availability of rule-based traits in AAM. Rule based traits start collecting data in real time since creation even though the data may be take up to 24 hours to show up in the AAM UI. So, if you have a scenario where you want users to qualify for a trait in real-time for personalization, you can rest assured. To validate if you qualified for a trait, you can use Visitor Profile Viewer in AAM and other methods defined here.

7.  UUID demdex cookie (covered in #1) which is usually a third party cookie can be captured as a first party cookie called 'aam_uuid' within the Audience Management module (#5). Once you set the UUID as a first party cookie, you can easily create a data element in Launch by Adobe (shown below) and map it to an Analytics variable.

8.  Customer IDs synced using natural match upon authentication need to be hashed and should not contain any ids that are even borderline PII. A good method to anonymize your user ids is to leverage the SHA256. The other important thing to keep in mind is that you should leverage the same type of user ID across multiple sites and map them to the same AAM data source so that there's no ID collision.

9. Data onboarded via 3rd party data providers such as Acxiom or data onboarders such as LiveRamp upload data to AAM using a unique 'ic' (integration code) which is numeric (example below). In a previous post, I covered how to upload data using key value pairs but an 'ic' can also be used to upload your CRM data.



10. 3rd party ID syncs enabled by AAM consultants shares the AAM UUID with Demand Side Platforms where they store this ID in a match table so that they can target users on their own network using this ID. Adobe also receives a corresponding ID from that system as well so that each system's cookies can be synced with each other. This sync is used to calculate the match rate which is why it's recommended to ask your consultant to turn on these id syncs to get a higher match rate between AAM and your DSP. However, these cookies can be turned off by setting the disableThirdPartyCookies variable to true in the ID Service library.
   
Below is what these id syncs look like in the network tab of your browser (Adobe Ad Cloud) populated the very first time a user visits your site. Also, note that subscribing to a data provider in the Adobe Marketplace automatically turns on an id sync as well.

I hope you found this post helpful and feel free to share any other misc facts that you learnt about Audience Manager.

Sunday, October 14, 2018

Adobe Audience Manager Email Pixel ID Sync

I wrote about email marketing back in 2009, and it's still very relevant and effective in 2018. According to this recent (2016) article, "users of email marketing systems are achieving $38 in ROI for every $1 spent". Almost all my clients do some kind of email marketing to send email newsletters to either existing or potential customers. Some of these clients leverage a Data Management Platform to connect data from multiple sources and email is one of the most common choices. I also wrote about email marketing back in 2009 and in 2018, it's still as relevant as back then.

From an Audience Manager perspective, a very useful data point for clients is to capture custom email attributes upon impression or click and user IDs to sync them with AAM for cross device targeting. This post covers the various steps to capture email data in AAM.

  • Configure the Email Pixel: The general format of the email pixel is very similar to display banner pixels with some minor differences. Below is a screenshot of an email pixel as well as a walkthrough of the various parameters.

(Subdomain).demdex.net/event?d_event=imp&d_cid=(DataSourceID)%01(HashedEmailID)%011&c_emailopen=true&c_campaignname=thanksgiving2018
    • Subdomain: This is the Audience Manager subdomain. In my example, it's "ags542" as per the screenshot. 
    • d_event: This is the event type which can either be 'imp' (impression) or 'click'  depending on where you want to capture this event.
    • d_cid: This parameter allows us to sync a user ID with AAM.
    • DataSourceID: This is the data source ID created for this data point. It's '133374' in my case and I've covered this in detail below. 
    • HashedEmailID: It's 'ABC789' as per the example but it can be any numeric or alphanumeric ID for ID syncing purposes.
    • c_emailopen and c_campaignname: You can pass any customer specific parameters (c_) which in my case are outlined in the screenshot. Note that we will need to create rule based traits to capture these parameters.

  • Create Data Source and Profile Merge Rule to Capture IDs: Given that we will be syncing user data with AAM, we need to create a cross device data source as shown below.


We will also need to create a profile merge rule mapped to this data source which we will need to leverage for activation.

  • Create Rule Based Traits: The next step is to create rule based tied to custom attributes that you want to capture for the email pixel. In my case, they are c_emailopen and c_campaignname. Below is what one of these customer specific traits look like.

  • Deploy the Pixel in the Email Marketing Software: As explained above, once you've completed the prerequisites of setting up the data source and the necessary traits, you can go ahead and setup the pixels in your EMS. Please make sure that there are no extra spaces and the pixel should look very similar to this example where you need to include the additional "%01" and "%011" characters to follow the ID sync conventions. https://ags542.demdex.net/event?d_event=imp&d_cid=133374%01ABC789%011&c_emailopen=yes&c_campaign=ags542_test. 

  • Monitor Audience Traits: This process is often not known to everyone but there is an easy way to test if user IDs synced as part of the email pixel, made it into AAM. This can be done by going to the Audience Traits folder and clicking into the ID sync trait created for email as shown below.


  • Create Rule Based Traits for the Landing Page: Given that we're only capturing the email open impression and not click, the recommended approach is to create a rule based to capture users who clicked on an email tied to your landing page URL. So, the trait condition will be tied to the following attributes h_referer == AND c_campaign==ags542_test.

  • Upload CRM Files (if applicable): One interesting use case of syncing user IDs with AAM is to upload demographic or other customer data from the CRM. The process is the same for uploading files in AAM and I've covered it in detail here. 

Email marketing is not going anywhere and with a minimum amount of effort, we're able to ID sync users with the DMP. It is a great alternative to ID sync users if you're unable to capture user IDs upon authentication. So, are you capturing email marketing data in AAM and ID syncing your users?

Sunday, March 11, 2018

Upload Offline Customer Data into Adobe Audience Manager (Part 2)


This post is a continuation to Part 1 of the series where I’m covering how to upload offline customer data to AAM. This post goes even deeper into the weeds and covers how we can add, modify and remove (we cannot really delete data from the backend but can exclude users) customer data from AAM. There are different ways to configure the batch upload file for AAM, but this post only shows how to leverage key-value pairs to bring in data. The official Adobe documentation goes into some more detail on those other methods.

Let’s first take a look at a few steps we need to take as a prerequisite before uploading batch files:
  1. File Extensions: There are two types of file extensions that are supported in the file name. The first one is “.sync” that is used to add records to Audience Manager and the other one is “.overwrite” that is used to overwrite or modify records. These two were covered in a lot of detail in the previous section.
  2. File Name: The file name starts with 'ftp_dpm' (fixed) followed by a random number typically less than 10 digits along with the file extension. So, an example file name can be: ftp_dpm_Data-Source-ID_201831012.sync|.overwrite where the data source ID is the same as '#1' in the screenshot below, number used is in the “Year/Month/Date” format (can be anything) and .sync or .overwrite are the file extensions.
  3. File Size: Each file should ideally not exceed more than 5GB and can be zipped using .gz so if you need to upload greater than 5GB then you can upload multiple files. The nomenclature of these files will be named like ftp_dpm_Data-Source-ID_123456789.sync.1.gz or ftp_dpm_Data-Source-ID_123456789.sync.2.gz.
  4. Attribute Limit: According to Adobe’s documentation referred earlier, there is a limit of 200 lines Adobe can process for each user ID sent in the inbound data file.
  5. Column Structure of the File: As covered in the previous section, the user ID is in the first column. The second column (separated by a tab) contains all key value pairs separated by a comma. Some points to consider:
    • It’s easy to mix up the “ double quote with the " quotes being used in the second column. The double quote that will work is the " quote so it’s better to use a separate text editor to configure the file as excel might switch up the quotes being used.
    • Numeric data can be sent as a string in the file but in the AAM UI, they will be evaluated as numbers so logical operators such as "<" OR ">" can be used while creating traits.
    • Make sure that the tab between column one and column two is actually a tab and not a space as that will break the file format.
  6. Data Source Setup: As discussed in the previous post, one of the first things we need to capture to initiate a batch upload process is to capture the authenticated user ID on the website. The data source ID (#1) is hard coded into the batch file name which covered in the third step. We tie this ID to Audience Manager via an integration code (#2 below) by initiating an ID sync. The user ID needs to be mapped to a data source by tying the user ID to the Customer ID inbound field (#3). Also, enable the option to sample errors so that you can pinpoint the exact cause in case of a failure. 
Source: Audience Manager UI

We're now going to cover how to add, modify and remove records from Audience Manager while leveraging key-value pairs:
  • Add New Records to Audience Manager (".sync" format): This is the most common type of upload where we simply add new user IDs along to the first column and user attributes to the second column as shown below. The file format used here is “.sync”.
  • Modify Already Uploaded Records (".overwrite" format): In this type of upload using the “.overwrite” format, we add all existing attributes of the user along with the modified records. In the example below, we’ve uploaded all existing records and only modified the ‘age’ and ‘purchases_last_month’ fields. If we don’t add certain attributes added previously, those attributes will not be part of user qualification moving forward.
  • Add New Attributes to Existing Records: If you want to add a new attribute to an existing record (user ID), there are two ways to do this:
    • (".overwrite" format): In this format, we include all existing records for a user along with the new attribute (company_size) as shown below:
    • (".sync" format): In this format, we include just the new attributes (company_size) we need to add  for a user as shown below:
  • Add Multiple Values for the same Dimension (".sync" format): We simply add the dimension that we wish to add data for multiple times in the same row as shown below:

  • Remove Attributes from Existing Records (".overwrite" format): If you want to remove a certain attribute from exiting records, upload an ".overwrite" file with just the attributes you wish to keep and exclude the one you wish to remove. In the example below, we've removed the 'company_size' attribute that we added earlier. Also, note that we included the updated 'age' and 'purchases_last_month' fields:

  • Delete Records from Audience Manager: There is no way to really "delete" a record from Audience Manager. The recommended approach is to include an attribute/flag (E.g. existing_customer=N) in the batch file and add it as a condition in AAM. Users with this flag can be part of an exclusion list that can be uploaded to a DSP so that they're not targeted moving forward.
The research went into these two posts took months but I'm hopeful that this post will act as a guide on how upload customer data into Audience Manager. I'll appreciate your feedback and comments.