Monday, January 27, 2020

Adobe I/O Events: Webhooks and The Triggers API Call

Companies around the world are continuously evolving and finding creative ways to optimize and improve the user experience across numerous platforms. The latest buzzword in that shift is Serverless Computing which is slowly shifting the narrative by allowing you to deploy abstracted code to tackle specific use cases as opposed to setting up massive a Server infrastructure. Now, I'm not saying that the latter is going away but activating specific actions is what some companies are slowly moving towards without necessarily relying on 3rd party hosted solutions. One such use case where Serverless can help is Triggers which I wrote about last year.

I also gave an overview of Adobe I/O where I wrote about the four I/O components and I/O Runtime is at the helm of it all. In this article, I'm going to walk through the application of application of Adobe I/O Events in Triggers. I'm also going to cover how to setup webhooks on your machine (Mac in my case) and leverage a script the Adobe development team wrote to use your machine to "listen" for incoming Triggers. So let's get started.


Triggers Architecture with Adobe I/O


Below is a high level architecture diagram I created to show how the Triggers API would interact with the various Adobe I/O components primarily Runtime and Events. Please note that this is a subset of what all is possible with I/O and an overall Adobe I/O architecture diagram is still in the works which will show the complete picture. 

The steps till #7 in this diagram are almost the same as any regular Triggers lifecycle which I covered in my previous post so here, I'll cover everything from step 8 onwards. If some steps are not clear, don't worry as I will cover these in more detail later in the post. So, let's walk through these in more detail:

8a - A user subscribes to the Triggers API using Runtime by creating a webhook. A prerequisite is to subscribe to the Triggers API which is done in the Admin console (covered later).
8b - The webhook is registered in the Adobe Admin console which is validated by the Event Gateway.
9a - The Analytics Trigger is sent to I/O Events as soon as the trigger is executed (E.g. cart abandonment, some page is viewed etc.).
9b - I/O Events sends the Trigger JSON payload to the client which is collected at some endpoint leveraging Runtime via a POST request.
9c - A Runtime action is invoked  as a custom event to send the JSON payload to a 3rd party Email Service Provider (ESP). Please note Adobe Campaign will automatically receive the JSON payload (step 7).
10 - Runtime action is invoked to query data and receive the output.
11 - This output is sent to an SFTP location to Adobe Campaign or other ESPs via another action. 
12- ESP sends an email or SMS tied to the trigger payload and conditional logic.
13 - User clicks on the email and is routed back to the site.


Listen for I/O Events Via a Webhook


In this section, I'll cover some steps on how to setup a webhook using ngrok which is a tunneling software that allows you to convert your local site URL into a public facing URL. Please note that I'm not using the Runtime AIO CLI to do this but I have it installed on my machine and the instructions to install it can be found here. 

Setup ngrok


Download ngrok from https://ngrok.com/ and run the ngrok application from your Terminal or Command Prompt pointing to the folder where the application is located. In my case, it's located in the /openwhisk folder and I'm creating an ngrok URL tied to my localhost on port 3000 by executing the command ./ngrok http 3000. I'll cover why I chose 3000 later.

Once executed, you'll get the public facing URL for your localhost which is https://c926b37a.ngrok.io/ in my case. Please note that this URL is only public facing for 8 hours but I believe there's a paid version to make reserved URLs.

Create a Webhook "Listening" Server


In this section, I will execute some code written by the Adobe I/O Events development team (A big Thanks for them!) that I retrieved from the Adobe Github page which has additional instructions on how to set this up as well but the main thing is to install this package on your machine. The command to run is npm start (Node.js) once you've installed the package to run the app.js file.

Once it executes, it publishes an HTML page on port 3000 which allows us to create our webhook. Note that this is the same port on which I created my ngrok URL. On this page, I enter a path (trigger) which creates a webhook as https://c926b37a.ngrok.io/webhook/trigger that will "listen" for any incoming triggers.

Register Webhook in Admin Console


The first step is to create an integration with Analytics Triggers in the Adobe I/O admin interface. Follow these steps to create it.


Once the integration is complete, the next step is to click on the "Events" tab of your integration and register & test your newly created webhook. Note that I'm registering the same webhook created in the previous step which is https://c926b37a.ngrok.io/webhook/trigger.

Once you save it, a challenge will be sent as a GET request to this webhook to check if it's active.

If it's live, then you'll see the "Active" status in the admin console page which means your webhook is now ready to listen for Triggers.


Create and Test Your Trigger


For the purpose of this post, I've created a very simple Trigger Action to fire when a user visits my homepage called "sandbox-home" and visited my page a few times.


Aside from the Triggers UI, I can also see five Trigger events posted on the app.js page actively listening for the events. Based on my test, it took the between 20-30 seconds for me to receive the webhook (see below) and I got 5 triggers (POST requests).


Parse the Trigger POST Response


Finally, you can parse the trigger response by expanding the POST request. In the JSON response, we can see that there are two main components of the call where the first one has information about the timestamp, IMS org among others and the second one is the actual analyticsHitSummary payload that contains all the "enriched" data from Adobe Analytics. Please note that a valid use case for this would be to send this to a 3rd party Email Service Provider given that Adobe Campaign receives it automatically. Please note that the customer ID (used to link ACS with a customer ID) captured on your site needs to be sent in an eVar as part of the Payload.


BONUS: Send a Slack Message When a Trigger Occurs


Now, this section is just to show how to send a message to a Slack channel when a Trigger fires. Please note that this is probably not a good use case for Slack given the frequency of Triggers so some better use cases will be server maintenance notifications, code publishing notifications, new members added or removed, fraud detection among many others. I'll just use the Triggers API to show how it works:

Enable Incoming Webhook for Slack


In this step, we will integrate our webhook with Slack to send a Trigger response to a Slack channel when an event occurs. You can do that by going here which is the regular process. In my case, I went here and added this app to my Slack workspace and channel called #trigger-channel.

Once you complete the integration, you'll receive your Slack Webhook URL which looks like this: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Once the integration is complete, you can send a POST request to the hook and post a custom message like I did via Postman. 

Once it's done, you'll see a bunch of messages stating the the integration is setup including a "Hello World" message which I sent. 

Next, I'll show you how to enable Slack to receive your Triggers webhook.

Modify Code In app.js


Modify the app.js file and update your webhook URL and channel name.

Next, we'll modify the Triggers payload to customize what we want to send to our Slack channel. In my case, I want to display my ECID and URL which I've slightly modified in the script written by the Adobe I/O team.

Monitor Triggers in Slack


Finally, we can see that we got 5 Trigger responses in our Slack channel as well like we saw in the Triggers UI and the ngrok "listening" page. Again, not sure if this a good use case for Slack but you can use the model for other use cases which are more pertinent. 

So, that was it! Hope you found this helpful for your own use case on how to use I/O Events. Are you using Adobe I/O in any form today?

Wednesday, December 25, 2019

Overview of Adobe I/O

Our customers are always looking for various ways to access and extend the capabilities of our solutions and APIs are a natural way to provide them with additional capabilities that the UI may not provide. Adobe I/O allows developers to find documentation and tools to integrate with the Experience, Creative, and Document Clouds in a streamlined manner. In addition, it allows developers to add more functionality to Adobe solutions and customize them to tailor experiences for their customers.

The Adobe I/O platform has four primary components which I'll cover at a high level. I wrote about this in more detail on Medium where I coauthored a post on the architecture of Adobe I/O and its uses cases. This post also shows how each of these components interact with each other and the Experience Cloud solutions.


  • Adobe Developer Console (Tool): The Adobe Developer console provides you with a UI to access APIs across the three Adobe clouds as shown below. Developers can create integrations with each of these solutions primarily via three authentication methods (Api key, OAuth and JWT) to access APIs for solutions such as Adobe Analytics, Audience Manager, Campaign etc. The previous article I wrote shows how to access these APIs using JWT via Postman.



  • Adobe I/O Gateway (Service): Adobe I/O Gateway is the infrastructure that sits in front of Adobe services and exposes the APIs. It does things like throttling and logging, routing and load balancing, authentication and security, whitelisting, validating API keys, tokens among others. There isn't much documentation available and it's not an actual product or UI that clients have access to.

  • Adobe I/O Events (Service): Adobe I/O Events allow you to programmatically deliver targeted, expedited, and personalized experiences based on user behavior. I/O Developers can subscribe to webhooks and can define what they want to be notified for whenever certain events occur. An example is triggers which allows you to send an email if a user abandons an eCommerce cart or update your 3rd party CRM system based on any action performed on the website. Some other examples of Events are as follows:
    • When an AEM asset is uploaded or updated, republish the page with the newly updated asset
    • If Adobe Analytics traffic spikes, create a segment
    • Get a cadence and order of occurrence of events via the Journaling API
    • Some other use cases around the creative and document clouds is outlined here.

  • Adobe I/O Runtime (Service): Adobe I/O Runtime is a  powerful and serverless way for developers to extend the capabilities of Adobe Experience Cloud solutions with no server management required. It allows developers to transform their code into applications by writing and deploying code on top of the Adobe Experience Cloud stack. It is built on top of Apache OpenWhisk, which is an open source project that is very flexible and allows you to code in many programming languages such as Node.js, JavaScript, Swift, Python, PHP, Java to name a few. The great thing about is that you don't have to setup any servers or software to run your code. Some use cases for I/O Runtime are as follows:
    • Write code to perform ETL on records stored in a 3rd party CRM system and send these to Adobe Audience Manager or Campaign
    • Allows you to open an internal ticket if a negative review is added
    • This article covers a very pertinent use case for integrating Adobe Campaign Classic with Adobe Experience Platform
    • Some other Runtime related use cases are outlined here.

As a continuation to my previous post on accessing Adobe APIs using Postman, here's another example of how to access a User Management API to get a list of all products a user is subscribed to which can allow you to retrieve this information without logging into the Admin console UI. Please note that you need to access the Adobe Developer console to create an integration with the User Management API.

The first step is to get an access token using the JWT token created in the Developer console.


Call the API to get user information by using the Bearer token generated in the previous step and getting a list of all groups a user has subscribed to. There's another API which allows you to get a list of all users and their groups tied to a particular Adobe IMS org.

I'll update this post once I've created a diagram to show how each of the I/O components talk to each other. So, how do you use Adobe I/O in your organization?

Sunday, December 8, 2019

Drop Off Rate Calculator



This calculator lets you calculate your funnel drop off rate. Please note that this form has limited form validation currently which I'll optimize as time permits. Also, the first calculation only requires the first and last step as it only calculates the drop off rate based on the first and last steps.



Enter the number of steps in your conversion funnel (between 2-5):



Which drop off rate calculation (click to explore both calculations) do you prefer (pick 1 or 2)?:






Thursday, November 28, 2019

Adobe.com Blogpost: Adobe Experience Manager to Adobe Target Tips and Tricks

I recently wrote an article published on the Adobe blog site which talks about the benefits of integrating Adobe Experience Manager with Adobe Target. I also put together a tips and tricks document which can be found here. Hope you find these helpful!

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.

Sunday, October 20, 2019

Implications of Classifications in The Adobe Analytics UI on Analysis

As Analysts working in Adobe Analytics or any other system, we want to analyze data without any restrictions or caveats around volume. Analysts who work with Adobe Analytics must've heard about the dreaded "Low Traffic" bucket which shows up when a report in the UI has more than 500,000 unique values per month (eVar/prop etc.). Here's how it shows up in the report.



A customer recently asked whether they could upload over a Million rows of classification data in Adobe Analytics tied to a primary user ID stored in an eVar and leverage the UI for analysis and segmentation. We discussed the implications of uploading this amount of classification data into Adobe Analytics and even considered Audience Manager. I recently wrote about the impact of classifications on segments for a different use case. In this post, I will cover some of the pros and cons of uploading over a million rows of classification data into Adobe Analytics and onboarding records into AAM for deeper analysis.


Pros and Cons of Classification Data (Over 5ooK Rows)



Adobe Analytics UI

These pros and cons are listed for the Adobe Analytics UI and does not apply to Analytics data feeds or Data Warehouse.

Pros

  • Uploaded classification data is retroactive
  • There's no extra cost in uploading classification data
  • Recommended tool for deeper data analysis and segmentation of classified dimensions (below 500K rows)
Cons

  • Classification data over 500K rows might take days or weeks to catch up and may delay analysis
  • Classification data in the UI AND segments tied to it will be subjected to the 500K unique limit
  • Classification data is also subjected to hash collision where some IDs may show 2 or more Unique visitors in the UI as explained here. 
  • Values over the “Low Traffic” bucket do not get classified. Data Warehouse does not have this limitation so if data can be exported out, we won’t run into the limit.

Audience Manager UI

These pros and cons are listed to highlight the advantages and constraints of uploading large amount of data in AAM and the constraints are called out for deeper analysis in the AAM UI. I recently wrote about the various ways to import data into AAM.

Pros

  • Onboarded data is retroactive IF data is segmented in AAM and an ID sync is in place
  • Large amount of data can be handled without any volume constraints
  • Data is uploaded to AAM quicker (24-48 hours) than how long Analytics classification  over 500K rows will take (assuming there are no errors encountered during onboarding)
Cons

  • Limited ability for reporting and segmentation in the AAM UI compared to Analytics. The UI will show overall uniques based on segmentation but will not allow you to slice and dice the data like Analytics can. An example is lack of sequential segmentation which you get in Adobe Analyics
  • Onboarded data/segments will only apply to users who visit the site AFTER the data has been onboarded when AAM segments are shared with Analytics and analysis is done there. I cover this in a post I wrote about last year.
  • Each row of data will be charged as a separate server call
  • Data is mostly available in the form of Unique Visitors and not as Page Views or Visits

As you can see, there's no clear winner when it comes to classifying large amount of data for analysis in either UI. So to summarize, the Adobe Analytics UI is better suited for deeper analysis and segmentation (data under 500K rows per report) whereas Audience Manager is better suited to handle large amount of data with segmentation capabilities suited more for activation of audiences (Cookies and Mobile device IDs).


Potential Options and Alternatives

This section will cover some of the ways to get around the "Low Traffic" issue and large number of classification data in Adobe Analytics:

  • Leverage Adobe Data Warehouse: It's not perfect but you can leverage Adobe Data Warehouse to export data and run segmentation as you won’t run into the same limits as the UI.
  • Reduce the Cardinality: You can split dimensions with high cardinality into separate variables.
  • Increase the uniques exceeded limit "within reason": You can contact Customer care to increase the uniques limit from 500K to up to a Million. This will work for anything between 500K-1 Million but not for anything over that.
  • New- Customer Journey Analytics: CJA is a newly added offering which leverages AI/ML models and much larger datasets from Adobe Experience Platform. This offering will remove all limitations around uniques exceeded and will be added to Workspace to allow for easy analysis of big datasets.

Again, there's no perfect solution to tackle this issue currently but the new feature of Customer Journey Analysis aims to fix this issue which is exciting. I hope this post was helpful to give you an understanding on some of the implications of uploading large amount of data into Analytics but all is not lost and there are some potential ways to avoid this.

Sunday, September 29, 2019

Methods to Export Data Out of Adobe Audience Manager

My previous article was centered around the various methods to send data to Audience Manager. This post will cover some of the ways by which we can export data out of AAM. In this article, I will follow suit like before and link to individual posts I've written as well as reference the official Adobe documentation.

One important concept to understand is that we're typically exporting device IDs (cookies, Mobile IDs), 
segments IDs, aggregated metrics in the AAM UI (E.g. Unique Trait Realization) or hit level data collected in AAM (logs). I'll provide an overview of each of these at a high level. 


1. Audience Manager Reports

I wrote an article last year explaining some key AAM metrics which can be slightly complicated to understand at first. In this section, I'm not going to cover each report in detail as they're already covered here but just explain how you can export data from these reports can be used for at a high level. All AAM reports are located under the "Analytics" menu in the top navigation bar.

General and Trend Reports

General reports allow you to export data as CSV (traits, segments and destinations) as CSV for the last 1, 7, 14, 30, 60 and 90 days as well as for the lifetime of the customer.

Audience Reports

These reports require additional access (AAM Consultant/Support can provide) and the UI is built specifically in Tableau. There are various reports such as:
  • Audience Optimization- Media reports populated via pixels and Ad Server logs.
  • Trait Variation- Shows difference in trait volume based on standard deviation.
  • Unused Signals- Shows attributes collected by AAM that don't have traits created. Recently added signals is the recommended way to get unused signals now.
  • Overlap Reports- These reports allow you to look at the overlap between traits, segments or between traits and segments in one report. Common usage is to look for low overlap between 1st and 3rd party data sets to determine which 3rd party data sources to buy for prospecting.

All these reports can be exported using the default options which Tableau offers as shown below:



When to use this

When you want to export aggregated AAM metrics tied to traits, segments, destinations out of the AAM UI.

2. Audience Manager Destinations

Destinations (server to server) are the most common way of sharing AAM data with other 3rd party Demand Side Platform, ad networks or optimization platforms for downstream activation. The data which is shared is basically AAM cookies (3rd party UUID), mobile device IDs along with the segments (criteria) which need to be activated. The general expectation is for the destination partner to also have the AAM cookie present which they leverage for advertising purposes. The match rate is calculated based on how many AAM cookies can be found in the destination partner ecosystem so if the match rate is high then the the ability for the partner to reach users for advertising will also improve.

The other types of destinations such as cookie based on URL where you can share AAM segment qualifications on pages where AAM code is deployed.

People-based destinations is a new addition to AAM where we're able to send hashed email addresses (without the need for cookies) to social platforms such as Facebook for serving offers based on offline data. 

The Outbound File History report shows you how much data is shared with individual destination partners on a daily basis. 


When to use this

When you want to send AAM device IDs and their segment qualifications to 3rd party media partners for advertising activation (E.g. retargeting, frequency capping etc.).

3. Customer Data Feeds

Customer Data Feeds allow us to get raw Audience Manager data such as timestamp of events, page request parameters, segment/trait realizations, device, IP address to name a few on an hourly basis. I'm not going to cover this in detail as the official Adobe documentation is really good to dive deeper into it but I'll cover the core concept.

CDF is delivered to an Amazon S3 bucket (unique to each customer) on an hourly basis and needs to be requested via customer service as there's no self-service option to get these. The content of the file is constant and follows a similar pattern as shown in the example below.

Each CDF file (compressed) is accompanied by a .info file which provides a status of the numbers files, size etc. in JSON format. The other thing to note is that the timestamp included in the CDF file name may be different than the timestamp of the hit level data in the file in case there's some latency.

When to use this

When you want to store raw AAM hit level data (limited in the AAM UI) in your DataWarehouse and do data modeling or analysis on this data.

4. Custom Data Exports

This method is used to export IDs captured in Audience Manager and can range from UUID, MID, segment IDs among others and are set up by Audience Manager consultants or AAM support. This is typically set up when you need to send raw AAM Ids to a destination with which AAM doesn't have an integration such as some Email Service Providers for activation. Below is an example of an export and the various fields associated with it. Here's a link explaining what each of the file format options mean. There are numerous way to construct an export and it'll take a whole article to go through each so I'll save that for another day.



When to use this

If you want to test your CRM import (by exporting a custom file) or sending AAM IDs and their segment qualifications to a 3rd party partner which may not have a server to server integration with Audience Manager. 

5. Experience Cloud Audiences

We can also share Audience Manager segments and audiences to tools such as Adobe Analytics, Target and Adobe Campaign. Please note that all three integrations require the Experience Cloud ID service to be implemented.

Adobe Analytics

Audience Analytics allows you to share demographic data or offline data captured in AAM with Adobe Analytics. 

Adobe Target

It is recommended to leverage the server to server integration with Adobe Target to send AAM data for A/B testing and personalization. This is usually onsite data captured in AAM but can also be offline data combined with onsite.

Adobe Campaign

AAM data can be sent to Adobe Campaign for email marketing activation via the OOTB integration between the two systems.


When to use this

If you want to send segment qualifications to Target for A/B testing or personalization, send demographic data to Analytics or send segments to Adobe Campaign for further activation via emails.

There are other methods which can arguably be added to this list such as Rest APIs and DCS (S2S) API which can also be used to export AAM data. So, which of these is the most common method you use to export data out of Audience Manager or is there something is not included in this list?