Understand JSON Responses

MXO returns the following JSON response on the FirstViewController interaction request, which is triggered automatically, by the SDK, based on the Fragment appearing on screen.

In the code example we parse the optimization data to extract the asset and use the path as a place on screen where to place this content.

This response is based on the demo app used throughout this exercise.

JSON Response Example

{
    "statusCode": 200,
    "tid": "a00ad08f-e305-8f9c-5c62-1e884543402c",
    "session": "",
    "trackers": [],
    "captures": [],
    "optimizations": [{
        "data": "eyJhY3Rpb25zIjpbeyJuYW1lIjoiUHJvZHVjdCAyQiAtIGNhcmQgaXRlbSIsImFzc2V0Ijp7ImNvbnRlbnQiOiJ7XG4gJm5ic3A7Jm5ic3A7Jm5ic3A7JnF1b3Q7aW1hZ2UmcXVvdDs6ICZxdW90O2h0dHBzOi8vaS5pbWd1ci5jb20vRzN6SG9uNS5wbmcmcXVvdDtcbn0iLCJtaW1lVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJjb250ZW50VXJsIjpudWxsLCJyZXNwb25zZXMiOlt7ImNvZGUiOiJkR2xrUFdFd01HRmtNRGhtTFdVek1EVXRPR1k1WXkwMVl6WXlMVEZsT0RnME5UUXpOREF5WXl4aFl6MHhNak01T1RZd09USXNZMjUwUFRFeU5EZ3lPRFkwTVN4dmNEMHhNVE14TXpJNU16RXNjSEp2Y0QweE1UQTJPVFE1TVRFc2NuUTlVRTlUU1ZSSlZrVmZRMHhKUTBzc2MyczlUMDVGTFRSRFVWQlZVRmxPTUZjdE9UVXdOU3h3ZGowdE1UVTFOREV5TnpBME16RTRNQSIsInNlbnRpbWVudCI6InBvc2l0aXZlIiwibGFiZWwiOm51bGwsImltYWdlVXJsIjpudWxsLCJ0YXJnZXRVcmwiOm51bGwsInRhcmdldCI6bnVsbH1dfSwicHJvcG9zaXRpb24iOnsiY29kZSI6Im51bGwifX1dfQ==",
        "path": "card-item",
        "dataMimeType": "application/json",
        "directives": "REPLACE"
    }, {
        "data": "eyJhY3Rpb25zIjpbeyJuYW1lIjoiUHJvZHVjdCAxQiAtIHRvcCBiYW5uZXIiLCJhc3NldCI6eyJjb250ZW50Ijoie1xuICAgICZxdW90O2ltYWdlJnF1b3Q7OiAmcXVvdDtodHRwczovL2kuaW1ndXIuY29tL0JNbXhYQ2MucG5nJnF1b3Q7XG59IiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiY29udGVudFVybCI6bnVsbCwicmVzcG9uc2VzIjpbeyJjb2RlIjoiZEdsa1BXRXdNR0ZrTURobUxXVXpNRFV0T0dZNVl5MDFZell5TFRGbE9EZzBOVFF6TkRBeVl5eGhZejB4TWpNNU9UY3dOREVzWTI1MFBURXlORGd5T0RVMk1TeHZjRDB4TVRNeE16STVNekFzY0hKdmNEMHhNVEEyT0RnM056UXNjblE5VUU5VFNWUkpWa1ZmUTB4SlEwc3NjMnM5VDA1RkxUUkRVVkJWVUZsT01GY3RPVFV3TlN4d2RqMHRNVFUxTkRFeU56QTBNekU0TUEiLCJzZW50aW1lbnQiOiJwb3NpdGl2ZSIsImxhYmVsIjpudWxsLCJpbWFnZVVybCI6bnVsbCwidGFyZ2V0VXJsIjpudWxsLCJ0YXJnZXQiOm51bGx9XX0sInByb3Bvc2l0aW9uIjp7ImNvZGUiOiJudWxsIn19XX0=",
        "path": "top-banner",
        "dataMimeType": "application/json",
        "directives": "REPLACE"
    }]
}
Note: The optimization array order is not preserved with each response.

Response Elements

NameTypeDescription
statusCodeString200 success
tidStringUnique identifier assigned anonymous customers
trackersArrayArray of Activity Capture points associated with an interaction/region
capturesArrayArray of Attribute Capture points associated with an interaction/region
optimizationsArrayArray of Optimization points associated with an interaction/region

JSON Response Parameters

All optimizations are returned as an array.

Optimization object structure:

  • data
    • Must be base64 decoded.
  • path
    • Used to determine where the asset is placed on screen.
    • Matches the "type" parameter form the JSON shared.
  • dataMimeType
  • directives
    • Used to determine if the content should be placed above or below the target content area, or replace it entirely.