Native Layout service

This service allows the seller to specify the layout for a native creative. Once the layout is in our database, it can be retrieved using the renderer_id, and subsequently the layout_id.

REST API

HTTP Method Endpoint Description
POST https://api.appnexus.com/native-layout?member_id=456 Create a new layout.
PUT https://api.appnexus.com/native-layout?id=16&member_id=456 Edit an existing layout.
DELETE https://api.appnexus.com/native-layout?id=123&member_id=456 Delete a layout.

JSON fields

Field Type Description
data_assets array of objects Attributes of the native creative. See Data Assets below for more details.
image_assets array of objects Specify the required attributes of each individual image. See Image Assets for more details.
renderer object The renderer ID of the seller. Enter the id in this array. Example:
"renderer":{"id":1}

Image assets

The image_assets object includes the following fields:

Field Type Description
aspect_ratios array of objects Define the aspect ratios required for the icon image type. Required values are min_width, ratio_width and ratio_height. See Example.
image_type string The format of the image. Possible values include:
- main_image
- icon_image
required int Specify if the image is required.
Possible values: 1 - Required
sizes array of objects The size of the image. Specify both width and height. See Example.

Example for aspect_ratios

"aspect_ratios": [
{
"min_width" : 100,
"ratio_width": 1,
"ratio_height": 2
}
]

Example for sizes

Example:
"sizes": [
{
"width": 300,
"height": 500
}
]

Data assets

The data_assets object includes the following fields:

Field Type Description
data_type string The asset type for the native creative. Possible values:
- sponsored_by
- title
- description
- rating
- call_to_action
- display_url
- likes
- downloads
- price
- sale_price
- phone
- address
- additional_description
required int If required then the value should be 1.
maximum_length int The maximum length of the data asset.

Examples

Create a new native layout protocol

$ cat native_layout

{
    "native-layout": {
        "renderer": {
            "id": 1
        },
        "image_assets":[
            {
                "image_type": "main_image", //depends on api.native_asset_image_type.name
                "required": 1,
                "sizes": [
                    {
                        "width": 300,
                        "height": 500
                    }
                ]
            },
            {
                "image_type": "icon_image",
                "aspect_ratios": [
                    {
                        "minimum_width" : 100,
                        "ratio_width": 1,
                        "ratio_height": 2
                    }
                ]
            }
        ],
        "data_assets": [
            {
                "data_type": "title", //depends on api.native_asset_data_type.name
                "required": 1,
                "maximum_length": 100
            }
        ]
    }
} 

$ curl -b cookies -c cookies -X POST -d @native_layout 'https://api.appnexus.com/native-layout?member_id=456'

{
    "response": {
        "status": "OK",
        "start_element": 0,
        "num_elements": 100,
        "native-layout": {
            "id": 2,
            "member_id": 7,
            "renderer": {
                "id": 1
            },
            "data_assets": [
                {
                    "required": true,
                    "data_type": "title",
                    "maximum_length": 100
                }
            ],
            "image_assets": [
                {
                    "required": true,
                    "image_type": "main_image",
                    "sizes": [
                        {
                            "width": 300,
                            "height": 500
                        }
                    ],
                    "aspect_ratios": null
                },
                {
                    "required": false,
                    "image_type": "icon_image",
                    "sizes": null,
                    "aspect_ratios": [
                        {
                            "minimum_width": 100,
                            "ratio_width": 1,
                            "ratio_height": 2
                        }
                    ]
                }
            ]
        },
        ...
    }
}