Troubles using mbox3rdPartyId feature in Target Classic



I recently tried using Target Classic's mbox3rdPartyId feature without success. I'm hoping someone might be able to tell me why it did not work for me.

  1. I created a new offer that started capturing a new unique ids off logged in users on my website.
    <script> $(window).load(function(){ $("#footer").before("<div id='thirdpartyid'></div>"); }); setTimeout(function(){ var visitorId = getCookieByName("uniqueId"); var customerNameCookie = getCookieByName( 'VisitorUsaFullName' ); if(customerNameCookie == '' || customerNameCookie == null ){ //do nothing because user is not recognized }else{ mboxDefine('thirdpartyid','thirdPartyId','mbox3rdPartyId=' + visitorId); mboxUpdate('thirdPartyId', 'mbox3rdPartyId=' + visitorId); } }, 2000) </script>
  2. I created a CSV file with some profile parameters for my own profile and then did a batch upload using Terminal.

    curl -X POST --data-binary @bulkprofile.txt <response><success>true</success><batchStatus></batchStatus><message>Batch submitted for processing</message></response>
  3. I then checked the updated profile using terminal to make sure the profile was updated (which it appeared to be).

    curl -k {"client":"xxxxxx","visitorId":"xxxxxx","modifiedAt":"2016-06-10T15:19:15.176-04:00","profileAttributes":{"user.testFrequency":{"value":"2.0","modifiedAt":"2016-06-10T15:56:09.334-04:00"},"user.pageViewFrequency":{"value":"1.0","modifiedAt":"2016-06-09T15:56:09.334-04:00"},"valuedCustomer":{"value":"true","modifiedAt":"2016-06-107T15:19:15.176-04:00"},"user.loginFrequency":{"value":"2.0","modifiedAt":"2016-06-10T15:56:09.328-04:00"}}}
  4. I then got myself placed into a test with the offer listed in step 1 to merge my third party ID with my pcID.
  5. I then tried to place myself into a new offer by defining a new customer segment (user.testFrequency > 0) that was using one of the new profile parameter values. I did not get placed into the test.

If anyone could provide any insight as to why this did not work it would be greatly appreciated.

Thank You

Accepted Solutions (1)

Accepted Solutions (1)




Hi Paul,

A couple of follow up questions.

  1. When moving from #4 to #5 are these tests using different mboxes?
  2. Are there any other tests running on the mbox used in #5?
  3. You mentioned that you used "user.testFrequency" as the condition in #5. "User." variables are typically set by profile scripts in the Target interface rather than offline uploads like you describe in #2. Offline variables should be prefixed as "profile.". They'll show up in the profile view API without the "profile." prefix and you should just see the name. It looks to me like "valuedCustomer" is the variable that is set by your offline upload.

Please confirm there are no conflicting campaigns and that you are referring to the proper offline variable.

Answers (3)

Answers (3)



Hi Paul,

There is another way to achieve this, which is how i have achieved it. I am passing the Login username ( user credentails) as the mboxThirdPartyId in a REST Call to the target API. The call looks something like 

var target_thirdPartyId = thirdPartyID; // user login ID 
                //AJAX call for fetching the values -- to check if the code is null ---
                var externalURL = ""+ target_thirdPartyId;
            externalURL = externalURL + "?client=accentureplc";

            async: false,
            url: externalURL,
            type: 'GET',
            dataType: "json",
            success: function(data){

             console.log("success" + JSONdataObject);
             error: function() {



Similarly you can make a POST AJAX call to save data based on the mbox3rdPartyID . This method is faster ( reflects the data ) then the targetPathParams() method call. 

I hope this helps.





I had the merging offer and the offer I was trying to display on the same mbox. I also changed "user." to "profile.". This seems to have solved my issues. Thank You!