The Adobe Target Bulk Profile Update API lets you update user profiles for multiple visitors to a website in bulk using a batch file.
Using the Bulk Profile Update API, you can conveniently send detailed visitor profile data in the form of profile parameters for many users to Target from any external source. External sources can include Customer Relationship Management (CRM) or Point of Sale (POS) systems, which are not usually available on a web page.
Version | URL example | Features |
---|---|---|
v1 | http://CLIENTCODE.tt.omtrdc.net/m2/CLIENTCODE/profile/batchUpdate |
Support for bulk profile update only. |
v2 | http://CLIENTCODE.tt.omtrdc.net/m2/CLIENTCODE/v2/profile/batchUpdate |
|
Version 2 (v2) of the Bulk Profile Update API is the current version. However, Target still supports version 1 (v1).
To update profile data in bulk, create a batch file. The batch file is a text file with values separated by commas similar to the following sample file.
batch=pcId,param1,param2,param3,param4
123,value1
124,value1,,,value4
125,,value2
126,value1,value2,value3,value4
The batch=
parameter is required and must be specified at the beginning of the file.
You reference this file in the POST call to Target servers to process the file. When creating the batch file, consider the following:
pcId
or thirdPartyId
. The Marketing Cloud visitor ID is not supported. pcId is a Target-generated visitorID. thirdPartyId
is an ID specified by the client application, which is passed to Target through an mbox call as mbox3rdPartyId
. It must be referred to here as thirdPartyId
.paramName
only. Parameters are displayed in Target as profile.paramName
.pcId
. Profiles are created for any pcId
or mbox3rdPartyId
that is not found in Target. If you are using v1, profiles are not created for missing pcIds or mbox3rdPartyIds.Make an HTTP POST request to Target edge servers to process the file. Here is a sample HTTP POST request for the file batch.txt using the curl command:
curl -X POST --data-binary @BATCH.TXT http://CLIENTCODE.tt.omtrdc.net/m2/CLIENTCODE/v2/profile/batchUpdate
Where:
BATCH.TXT is the filename. CLIENTCODE is the Target client code.
If you don’t know your client code, in the Target user interface click Administration > Implementation. The client code is shown in the Account Details section.
The Profiles API returns the submission status of the batch for processing along with a link under “batchStatus” to a different URL that shows the overall status of the particular batch job.
The following code snipped is an example of a Profiles API response:
<response>
<success>true</success>
<batchStatus>http://mboxedge45.tt.omtrdc.net/m2/demo/profile/batchStatus?batchId=demo-1701473848678-13029383</batchStatus>
<message>Batch submitted for processing</message>
</response>
If there is an error, the response contains success=false
and a detailed message for the error.
A successful default response when the above batchStatus
URL link is clicked looks like the following:
<response><batchId>demo4-1701473848678-13029383</batchId><status>complete</status><batchSize>1</batchSize></response>
Expected values for the status fields are:
Status | Details |
---|---|
complete | The profile batch update request was completed successfully. |
incomplete | The profile batch update request is still being processed and not completed. |
stuck | The profile batch update request is stuck and was not able to complete. |
A more detailed response can be fetched by passing a parameter showDetails=true
to the batchStatus
url above.
For example:
http://mboxedge45.tt.omtrdc.net/m2/demo/profile/batchStatus?batchId=demo-1701473848678-13029383&showDetails=true
<response>
<batchId>demo4-1701473848678-13029383</batchId>
<status>complete</status>
<batchSize>1</batchSize>
<consumedCount>1</consumedCount>
<successfulUpdates>1</successfulUpdates>
<profilesNotFound>0</profilesNotFound>
<failedUpdates>0</failedUpdates>
</response>