Integrate Third-Party Data Into Adobe Target Using Data Providers

Introduction#

Personalization is the process of creating a tailored web experience for every visitor on digital properties. When a visitor is reading something that is customized based upon their interest or actions, they are more likely to stay longer on site. The increased engagement from the user is a foundational step in driving them down the sales funnel and towards conversion.

Online web personalization is no different than the traditional offline world, where we visit our regular barbershop and he greets us with our name and understands our requirements.

Adobe Target is a mighty tool for customer experience personalization powered by the “edge” network. It is a geographically distributed server architecture that is designed to ensure low response times regardless of the user location around the world.

Methods To Get Data Into Adobe Target#

Adobe Target has multiple methods built-in to track user attributes and actions for targeting optimum personalized experiences. Some of these methods require client-side enablement for target data collection others allow file uploads with data attributes for processing/profile enrichment.

Adobe Target also supports profile update APIs for ingesting user attributes and using them for optimization programs

  • Page Parameters (also known as ‘mbox parameters’)
  • In-Page Profile Attributes (also known as ‘mbox profile parameters’)
  • Profile Script Attributes
  • Data Providers
  • Customer Attributes
  • Single/Bulk Profile Update API

In this article, we will review and implement Data Providers and Single Profile Update APIs to integrate third-party data into Adobe Target. We can also use Single Profile Update APIs to add offline data attributes into the user profile and use it for the online personalization programs.

In this article, we will review and implement-

  1. Data Providers to integrate third-party data into Adobe Target using Adobe Launch
  2. Single Profile Update APIs to add offline data attributes into the user profile

The above data collection methods will append additional attributes to visitor profiles and enrich target personalization programs.

Implementing Data Providers#

Data Providers methods are built to integrate third-party data from diverse data provider platforms into Adobe Target for profile enrichment, target content, and building audiences.

Third-party data providers like Demandbase, Bluekai, Experian our own custom web service can be used to integrate additional attributes into visitor profiles.

In the below example - We will be implementing an example to determine user gender based upon the login username provided. Based upon the {Male/Female} response from the third-party API we will pass this data attribute to Adobe Target to deliver a personalized experience.

Follow the step-by-step guide below for this integration guide:

  1. We have created a two-page login app with a user login form and login confirmation page.
  1. The Data Providers methods need to be defined before Target Library is executed /or ‘target-global-mbox’ call is triggered on the page.
    window.targetGlobalSettings = { 
      dataProviders:
 	[genderizeProvider] 
    };

This way we make API call to the respective third-party data provider, then parse the response and Target will collect the name/value pair retrieved.

  1. In Launch we will set up custom code in Target Page Load (Page Top) rule to execute with the third party API call to data provider before Target Library is loaded.

Cusotm Code

var genderizeProvider = { 
name: "genderize-api", 
version: "1.0.0", 
timeout: 2000, 
provider: function(callback) { 
var username = _satellite.getVar('Username')||"";
var url = "https://api.genderize.io/?name="+username; 
$.ajax({ 
type: "GET", 
url: url, 
success: function(data) {
console.log(data)
callback(null, { 
gender: data["gender"], 
}); 
}, 
error: function(err) { 
console.log("Error", err); 
callback(err); 
} 
});         
} 
};  
window.targetGlobalSettings = { 
dataProviders: [genderizeProvider]
}
  1. So now once the page loads, We make the API call to our demo third-party data provider [https://genderize.io/] with username extracted and It returns with gender data.
    We can see the ‘gender’ parameter set as Page Parameter (mbox-parameter) in ‘target-global-mbox’ page call.

Now we can leverage this data collected from the third-party data provider to enhance user experience and personalize the web.

Implementing Single Profile Update API#

Adobe Target creates a unique visitor profile for each user where the data attributes for the users are maintained and served using the ‘edge’ network. This is where the power of personalization kicks in - We can have data attributes written within each user’s visitor profile to have a customized experience delivered.

The profiles are maintained using a unique key which is TnTId and mbox3rdPartyId. TnTId is available in the first-party cookie [mbox] set in the visitor browser.
Sample Value: 4b1103b9acd3409fba6361ab50a8f017.31_0

In order to tie offline - data to online data collected, We can easily pass this value into a form submission hidden field from there we can have these values available in CRM to add offline data and use it for online personalization for the user.

We can make a Single Profile Update API call using the syntax: https://(clientcode).tt.omtrdc.net/m2/(clientcode)/profile/update?mboxPC=[TnTId]&profile.offlineStoreVisited=true&profile.offlineStorePurchase=false

  • Parameters should be encoded in UTF-8 and in ‘profile.attribute’ format.
  • Both GET and POST methods supported.
  • If the profile is not yet available - No new profile will be created.
  • In case of authentication error - We can switch off authentication in Target > Administration > Implementation > Profile API > Require Authentication (Turn Off)

For example: If we need to append an additional user attribute - ‘target_demo=true’. We can simply do be making a GET request using the browser in syntax provided above:
https://(clientcode).tt.omtrdc.net/m2/(clientcode)/profile/update?mboxPC=4b1103b9acd3409fba6361ab50a8f017.31_0&profile.offlineStoreVisited=true&profile.offlineStorePurchase=false

Also we can retrieve and view updated profile paramter values: https://(clientcode).tt.omtrdc.net/rest/v1/profiles/4b1103b9acd3409fba6361ab50a8f017.31_0?client=(clientcode)

If you enjoyed this post, I’d be very grateful if you’d help it spread by sharing it on Twitter/LinkedIn. Thank you!

©2020 abhinavpuri.com