I recently moved into a product management role at Adobe. This is my first post as a PM published on Adobe's Medium Tech blog about Ethos (the team I work in). Ethos is a cloud-native and cloud-agnostic platform (and principles) that streamlines the development, operation, and consumption of cloud services inside Adobe. Here's a link to it and below is a high-level architecture of Ethos.
Product management, data management, tag management, Adobe solution integrations and data analysis will be some of the themes of this blog but I may write about other relevant topics occasionally.
Friday, November 19, 2021
Friday, July 16, 2021
Adobe Experience Platform Query Service Video Demo
In this post, I want to share a demo I created working for the Adobe Experience Platform Query Service product team. The target audience are primarily pre-sales and account teams but anyone can use it get a general understanding of how Query Service connects with external tools. Below is what I worked on to create this demo:
- Identified a common telecom sector customer churn use case
- Ingested online/offline data into Adobe Experience Platform using AWS S3
- Mapped the incoming data files to relevant schemas and datasets
- Used SQL to combine those datasets into one common dataset using a CTAS query
- Created a simple churn analysis dashboard using Tableau and connected it to Query Service using PostgreSQL.
- Here's a link to it. Please note that the dashboard will not populate (due to AEP access requirements) but you can look at the general structure and fields being used.
Adobe Experience Platform Query Service is a powerful serverless tool that allows brands to analyze online-to-offline customer journeys and understand omnichannel attribution. Query service also allows you to join any dataset in the AEP Data Lake and capture the query results as a new dataset for use in reporting, machine learning, or for ingestion into Real-time Customer Profile. It provides customers with a rich set of SQL-based analytic capabilities to provide rich insights on customer data collected from all channels and devices.
In addition, here are some other practical applications of Query Service aside from combining AEP datasets and connecting to external data visualization tools:
- Leverage Query Service to take a back up of AEP datasets.
- Run pathing analysis, attribution analysis and sessionize raw data using Adobe defined functions.
- Create new calculated attributes using existing data like creating a new calculation for Customer Lifetime Value (CLV).
Below is the video which is uploaded on YouTube and a direct link to it.
Sunday, June 6, 2021
Multi-Org Adobe Target and AEM Experience Fragment Integration and Governance Ideas
Adobe Experience Manager and Adobe Target integration is one of the most powerful and robust in the Adobe Experience Cloud. I wrote about some of the benefits of this integration back in 2019. In this post, I want to cover two topics within the context of these two solutions:
- Cross-IMS Org integration between AEM and Target
- General Target workspace governance and XF nomenclature ideas
AEM & Target Cross-IMS Org Integration
This is one topic I never got a clear answer to unless I tried and tested it myself. A well known fact about IMS orgs is that we cannot integrate solutions across which is absolutely true when it comes to the Adobe Experience Cloud Visitor ID among other solution but in this case, it is possible to integrate AEM with different Adobe Target instances via Adobe I/O. Having said this, I must also mention that it's not very common for us to see given most companies have a single Target instance but there are some Adobe customers that have multiple Target instances and orgs.
I've included the steps I took to set this up where I tested this using a single AEM author and two Target instances across two IMS orgs. Let's a closer look:
In AEM (6.5.x), go to Security - > Adobe IMS Configurations and either click on an existing Target integration or create a new one. In this case, I already have two integrations set up with two Target instances (2 IMS orgs).
The first few steps are outlined in the next two screenshots which is key where we first need to generate the public certificate/key in AEM.
Adobe Target Workspace and AEM XF Governance
Before we can set governance in any solution, it's important for us to understand the concepts of user access in any solution. I'm not going to explain each of the user roles or the core access functionality in Target (covered in great depth in the documentation) but I have taken a stab to visualize WHAT the users are given access to in Target.
As you can see, the "Default Workspace" in Target has access to all Target properties and any additional workspaces do not have access to Target properties by default so you will have to manually add them to the workspace. This is an important concept as in AEM 6.5, you can share Experience Fragments directly to Target workspaces.
Target Workspace Governance
- Workspaces by Brand: This works well in companies that have multiple brands and each business group operates differently.
- Workspaces by Geography/Locale: This works well in companies that have multiple country sites/implementations/teams.
- Workspaces by Environment: Workspaces are tied to each unique site environment like Dev, QA, Stage etc. This is getting more and more common as more companies start sending XFs to these environments for testing before a launching to production.
- Hybrid Workspaces: This typically works well for a large companies that are organized by various functions but eventually, it always makes sense to formalize it based on some fundamental construct.
Experience Fragment Nomenclature Ideas
I've seen examples where XFs are named as "XF1" to something which is well structured like "Site:Location:Offer".
In my experience, a good XF nomenclature has a delimited set of values that have a predefined logic to it and I'm only referring to cases where they're meant to be shared with a Target workspace. Some examples are:
- XFs based on Brand: <brand>:home:summercampaign
- XFs based on Geography: en-us:home:springcampaign
- XFs based on Environment: <dev/stage>:home:wintercampaign
- Hybrid XFs: <brand>:en-us:home:fallcampaign:20%off
These examples are probably oversimplified and generic but the main point I'm trying to make is that it's important to add some sort of structure to how XFs are named as we want to minimize any confusion and redundancy when these land up as offers in Adobe Target. The other important point is that both the developers in AEM and Target users should align on these before applying these widely to save time.
Even though Target has robust filtering capabilities for offers (and others), this is how XFs will look in Target if the two groups won't align which in this example, shows inconsistency.
So, that was it! Hope you found this topic helpful. Please feel free to share with me your ideas on workspace organization or XF nomenclature best practices that you've seen work well.
Sunday, February 21, 2021
Overview of Adobe Experience Platform Event Forwarding
Happy (belated) New Year 2021! There is no denying the fact that the introduction of the Adobe Experience Platform Web SDK has revolutionized data collection. There are a lot of advantages of this approach but the main ones are reduced page latency, fewer cookies, a consolidated tracking library and the ability to directly stream data to Adobe Experience Cloud solutions to name a few. It's no surprise that Adobe is openly propagating this approach as the recommended path to implement all client-side solutions moving forward. I coauthored a post about the high level migration approach to the Web SDK on Adobe's official Medium blog site.
Assuming that we know the basics of the Adobe Experience Platform Web SDK, XDM and setting up the AEP schemas & datasets which will all apply in this case, this article will solely focus on Event forwarding which is a recently launched service by the Adobe data collection team. I'm working with one of my clients to evaluate the feasibility of this feature and have already set this up on my sandbox which I'll cover in this article.
Overview and Use Case
Architecture
Steps to Implement
The next step is to create a new property (Rohan's Test in my case) in this section and add the extension called "Adobe Cloud Connector". Please note that there's another extension which allows you to federate data to Google Analytics as well.
What Else Would I Like to See
Below are a few additional things I'd like to see included in Launch Server Side:
- The ability to do the same thing on a mobile app client-side implementation. Adobe is working on a Mobile app equivalent of the Web SDK so hopefully we'll see it soon.
- It'll be great if the Launch Server Side team can collaborate with the Data/Bulk Ingestion API team and see if they can come up with shared learnings to standardize server side data collection within Adobe's own solutions as well.
- Being able to replicate the same data elements created in the client-side Launch property to avoid redundancy.
- Include more extensions in addition to Google Analytics to federate data server side which is collected by the Edge Server . This will hopefully allow clients to get rid of additional 3rd party scripts from the page such as Facebook and Google conversion pixels.