Using request URLs to push data into Adobe Audience Manager

10 September 2020

There are times when you need to scrap the recommended setup of Tag Manager and Analytics software. Some of the reasons why you might need to do this could be:

a) Server-side tracking approach
b) IoT-Tracking
c) Wanting to integrate tracking into an (offline) software system

This is often done by sending request URLs directly to an Adobe Audience Manager server without having any other code installed on your page.

If you are using Google, there is no need to worry this might be because of Google Analytics’ mighty Measurement Protocol. A well-defined and documented method to send data to Google Analytics is by using Request URLs. Although they might exceed the skills of those who are unable to code their own tracking scripts, Request URLs offer customizability and flexibility for developers, as they can send the request URL at the determined time with the parameters and values concatenated to the Request URL. In theory, it is as simple as that, although it might exceed the skills of those who are unable to code their own tracking scripts.

This article is not about the glory of Googles Measurement Protocol, but to show you Adobe’s version of it. Adobe’s version is called Request URLs. Adobe provides a thorough documentation including information about hardcoding requests in their Analytics Implementation Guide. However, the documentation for Adobe Audience Manager also states that the DIL code is required to be present. As this might not always be the case or might not be an option, you may use another solution to send data to Adobe Audience Manager.

Understanding the request 

This solution requires the knowledge of terminology that will be explained briefly in the following section.

UUID: Adobe Unique User ID is a unique 38-digit User ID that is randomly generated every time a request is made to Adobe’s Data Collection Server. The server also sets a cookie on the domain for later re-identification of this user.

Basic Request URL: The most minimal request possible used to send data to the Adobe servers is https://something.demdex.net/event? In this case, “something” is your own subdomain on the demdex server. You can find your subdomain easily by accessing your Adobe Audience Manager and viewing its URL. The URL will look similar to https://experience.adobe.com/#/@something/audience-manager/. The part behind the @ will reveal your tracking domain that is used to replace “something”.

Key-value Pair: A simple key that is assigned to a value. For instance, a key could be an event and the associated value could be pageview. They will always be written as key=value, e.g. event=pageview

Prefixes: Adobe Audience Manager requires every key to have one of the following prefixes. A key will look like the following example: c_key=value

PrefixDescriptionExample
c_Customer specific key.
Can be filled with any string
c_name
p_Keys with private or personally identifiable information that will not be logged but can be used in traitsc_age=20 will not be logged, but will cause trait qualification for c_age >18
d_Audience Manager specific keysd_pdid for the data source
h_Contains http header information
Prefix tells AAM to inspect the header, not the query string
Signals are not surfaced in Signal Search
h_referer, h_accept-language

Build the request 

In order to send data to the Audience Manager, you need to combine all the puzzle parts into one big picture. Take your base Request and concatenate all your key-value pairs to it just like so:

https://something.demdex.net/event?prefix_key1=value1&prefix_value2=value2

After this, you need to attach a UUID to it. This can be either a randomly generated 38-digit number or you could set a constant. Alternatively, if a DIL code is present, you can take the value of the demdex first-party cookie as well.

Note: If you want to add user re-identification, you can set your randomly generated UUID into a First-Party Cookie yourself. Before generating a UUID, you can then check for the presence of the Cookie and if present, take this value.

If not, generate a new UUID and set it as a Cookie.

Finally, all you have left to do is to add your UUID key-value pair to the request URL and send it off.
Note: The UUID aways has the d_ prefix, therefore the UUID key-value pair looks like this: d_uuid=<38-digit number>

Note: The UUID aways has the d_ prefix, therefore the UUID key-value pair looks like this: d_uuid=<38-digit number> 

Send the request 

Sending off the request really depends on your tracking scenario. If it is anything web-related chances are you can use for instance XML or Img Requests. In other cases, it is best to contact your developer. In any way, all there needs to be done is for the request URL to be parsed into the web.

Validating the request  

Adobe Audience Manager offers a nice feature for validating hits called the Visitor Profile Viewer. Inserting the UUID from the request will show all signals (e.g. key-value pairs) added under this UUID. Now if your tracking request was correct, you should now be able to see the respective key-value pairs you have pushed.

Keep in mind the following things:  

  • Whitespaces in the value must be encoded
  • Multiple values can be grouped under a single key by comma separation like so key1=value1,value2
  • A UUID must be present, otherwise the Audience Manager will simply drop the request. Audience Manager does not seem to validate UUIDs, you can simply generate a random 38-digit number yourself.
  • Without mapping a signal to a trait, a signal remains unused. Unused signals can only be seen if they are sent to the AAM more than 100 times in a single day. For troubleshooting, it is possible to send the same request 100 times asynchronously.

We hope that with this article we have cleared some common misconceptions when working with Adobe Audience Manager. It has proven to be a lot more flexible and lends itself to custom tracking approaches. In case you have further questions, feel free to reach out to us.

Back to top