Yahoo Native Creatives

This article describes services for creating, updating and reading |co| native creatives.

Overview

Use the Creative resource to manage Yahoo native creatives in DSP. Use this help page for guidance on trafficking the creative formats that the Yahoo Native Marketplace supports. See Supported Creative Formats for details on the Yahoo Native Marketplace creative formats. For complete specifications, see the Creatives help page for the Traffic API.

The format for a creative is defined by two key fields: creativeType and adType. While creativeType is a required field for all formats, adType is optional.

Important

If you attempt to link a creative to a Yahoo Native line, DSP only allows you to proceed if the creative is one of the supported formats.

Endpoint

/traffic/creatives

Create and Update

For all the Create and Update requests, replace <Base64 Data> in the payload with actual Base64-encoded binary data. For testing, you can use an online converter like browserling to convert your local image files to Base64-encoded strings.

Standard

A Standard native creative is defined by creativeType =  NATIVE_DISPLAY. It requires a details object that describes the title, description and company name, and a content object that captures the binary data of Main Image, Mobile images, and Advertiser logo. The landing page URL is captured in the root object.

Example Request

POST /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>
{
    "name": "Happy Medium Native Standard Creative 1",
    "creativeType": "NATIVE_DISPLAY",
    "landingPageUrl": "http://happymedium.world",
    "status": "ACTIVE",
    "mimeType": "image/png",
    "accountId": 1234,
    "content": {
        "binaryData": "<Base64 Data of Main Image>",
        "largeMobileImageData": "<Base64 Data of Mobile Web Image>",
        "smallImageBinaryData": "<Base64 Data of Mobile App Image>",
        "smallBinaryData": "<Base64 Data of Advertiser Logo>"
    },
    "details": {
        "title": "Try a Happy Medium.",
        "companyName": "HappyMedium Inc.",
        "description": "When in doubt, go with a Happy Medium!"
    }
}

Example Response

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "id": 3333,
     "accountId": 1234,
     "name": "Happy Medium Native Standard Creative 6",
     "landingPageUrl": "http://happymedium.world",
     "mimeType": "image/png",
     "updatedAt": "2019-11-19T19:49:10Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "images": {
             "iconImageSecuredUrl": "https://s.yimg.com/zi/6b5f12f1-516f-47a6-9313-6d85bbc7a9c7.png",
             "imageSecuredUrl": "https://s.yimg.com/zi/89d0f8ba-0ec6-4f33-8969-369c5a2d0cd2.png",
             "smallImageSecuredUrl": "https://s.yimg.com/zi/63dd54c8-6dfb-4513-8bf8-89e803762e52.png",
             "largeMobileImageSecuredUrl": "https://s.yimg.com/zi/6bd33743-187f-4d1b-b297-553c8cd9c928.png"
         },
         "creativeMedia": []
     },
  },
  "errors": null,
  "timeStamp": "2019-11-19T19:49:11Z"
}

Video

A native Video creative is defined by creativeType =  NATIVE_VIDEO. It requires a details object that describes the title, description and company name, and a content object that captures the binary data of the Video, Main Image, Mobile image, and Advertiser logo. The landing page URL is captured in the root object.

Example Request

POST /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>
{
    "name": "Happy Medium Native Standard Creative",
    "creativeType": "NATIVE_VIDEO",
    "landingPageUrl": "http://happymedium.world",
    "status": "ACTIVE",
    "accountId": 1234,
    "mimeType": "video/mp4",
    "content": {
        "binaryData": "<Base64 Data of Video>",
        "nativeVideoImageData": "<Base64 Data of Main Image>",
        "largeMobileImageData": "<Base64 Data of Mobile Web Image>",
        "smallBinaryData": "<Base64 Data of Advertiser Logo>"
    },
    "details": {
        "title": "Try a Happy Medium.",
        "companyName": "HappyMedium Inc.",
        "description": "When in doubt, go with a Happy Medium!"
    }
}

Example Response

{
  "response": {
     "id": 3333,
     "accountId": 1234,
     "name": "Happy Medium Native Standard Creative",
     "landingPageUrl": "http://happymedium.world",
     "status": "ACTIVE",
     "mimeType": "video/mp4",
     "creativeType": "NATIVE_VIDEO",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "images": {
             "creativeFileUrl": "https://s.yimg.com/ch/raw-videos/aa4f765f-04dc-4acd-bf08-349fe11c353b.mp4",
             "iconImageSecuredUrl": "https://s.yimg.com/ch/f7a4a594-250f-4675-982e-d2d66210f767.png",
             "imageSecuredUrl": "https://s.yimg.com/ch/a1a9109b-f730-4699-86d5-a4be0667cf1f.png",
             "largeMobileImageSecuredUrl": "https://s.yimg.com/ch/195655f3-6454-4518-9604-386aff68fc65.png"
         },
         "creativeMedia": []
     },
     "updatedAt": "2021-02-13T02:07:42Z"
  },
  "errors": null,
  "timeStamp": "2021-02-13T02:07:42.418Z"
}

Portrait Image

A Portrait Image creative is defined by creativeType =  NATIVE_DISPLAY and adType = PORTRAIT. It requires a details object that describes the title, description, callToAction and companyName, and a content object that captures the binary data of the Portrait Image. The landing page URL and domain are captured in the root object.

Example Request

POST /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>
{
    "name": "Portrait Image Test Creative",
    "creativeType": "NATIVE_DISPLAY",
    "adType": "PORTRAIT",
    "landingPageUrl": "http://yahoo.com",
    "landingPageDomain": "http://yahoo.com",
    "status": "ACTIVE",
    "language": "ENGLISH",
    "mimeType": "image/jpeg",
    "accountId": 1234,
    "content": {
        "binaryData": "<Base64 Data of Portrait Image>",
        "panoramaImageData": "<Base64 Data of optional Panorama Image>"
    },
    "details": {
        "title": "Try a Happy Medium.",
        "companyName": "HappyMedium Inc.",
        "description": "When in doubt, go with a Happy Medium!"
        "callToAction": "Learn More"
    }
}

Example Response

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "adType": "PORTRAIT",
     "id": 3336,
     "accountId": 1234,
     "name": "Portrait Image Test Creative",
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "mimeType": "image/jpeg",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "panoramaImageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         }
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Portrait Image with Touchpoints

Use optional touchpoints on Portrait Image creatives to showcase multiple items on a single screen. Consumers can tap on pins to learn more about individual items or parts of an ad. Touchpoints create a shoppable experience or interactive showroom. See Native Touchpoint Moments for details. To add touchpoints to a Portrait Image creative, use the touchpoints array inside the details object.

Touchpoint

The touchpoint object is designed specifically for Portrait Image creatives and is described by the following attributes.

Field

Description

Data Type

Required

type

Type of the touchpoint, can be either TOUCHPOINT_PORTRAIT or TOUCHPOINT_PANORAMA.

String

Y

templateType

Template type of the touchpoint, must be one of: DEFAULT, DOT_LIGHT, DOT_DARK, TAG_LIGHT, TAG_DARK, PLUS_LIGHT, PLUS_DARK.

String

Y

assetId

ID of the touchpoint asset.

Integer

N

assetIndex

Touchpoint unique index describing its order.

Integer

Y

assetUrl

Url of the uploaded image that will show after clicking the touchpoint.

String

N

assetBinaryData

Base64 binary data for image that will show after clicking the touchpoint.

String (Base64-encoded binary data)

N

landingUrl

Url that the user will be redirected to after clicking the touchpoint.

String

Y

styles

Object holding information about dimensions and coordinates of the touchpoint.

Object

Y

styles.w

Touchpoint width.

Integer

Y

styles.h

Touchpoint height.

Integer

Y

styles.x

Touchpoint x coordinate.

Integer

Y

styles.y

Touchpoint y coordinate.

Integer

Y

Example Request

POST /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>
{
    "name": "Portrait Image with Touchpoints",
    "creativeType": "NATIVE_DISPLAY",
    "adType": "PORTRAIT",
    "landingPageUrl": "http://yahoo.com",
    "landingPageDomain": "http://yahoo.com",
    "status": "ACTIVE",
    "language": "ENGLISH",
    "mimeType": "image/jpeg",
    "accountId": 1234,
    "content": {
        "binaryData": "<Base64 Data of Portrait Image>",
        "panoramaImageData": "<Base64 Data of optional Panorama Image>"
    },
    "details": {
        "title": "Try a Happy Medium.",
        "companyName": "HappyMedium Inc.",
        "description": "When in doubt, go with a Happy Medium!"
        "callToAction": "Learn More",
        "touchpoints": [
          {
            "type": "TOUCHPOINT_PORTRAIT",
            "templateType": "PLUS_LIGHT",
            "assetIndex": 0,
            "assetBinaryData": "<Base64 Data of Portrait or Panorama Image>",
            "landingUrl": "http://yahoo.com",
            "styles": {
              "w": 45,
              "h": 45,
              "x": 200,
              "y": 300
            }
          }
        ]
    }
}

Example Response

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "adType": "PORTRAIT",
     "id": 3336,
     "accountId": 1234,
     "name": "Portrait Image with Touchpoints,
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "mimeType": "image/jpeg",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "panoramaImageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         },
         "touchpoints": [
          {
            "type": "TOUCHPOINT_PORTRAIT",
            "templateType": "PLUS_LIGHT",
            "assetId": 145,
            "assetIndex": 0,
            "assetUrl": "https://s.yimg.com/zi/50b65482-c1d5-435e-8e70-5e669a30e021.png",
            "landingUrl": "http://yahoo.com",
            "styles": {
              "w": 45,
              "h": 45,
              "x": 200,
              "y": 300
            }
          }
        ]
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Portrait Video

A Portrait Image creative is defined by creativeType =  NATIVE_VIDEO and adType = PORTRAIT. It requires a details object that describes the title, description, callToAction and companyName, and a content object that captures the binary data of the Portrait Video and Portrait Image. The landing page URL and domain are captured in the root object.

Example Request

POST /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>
{
    "name": "Portrait Video Test",
    "creativeType": "NATIVE_VIDEO",
    "adType": "PORTRAIT",
    "landingPageUrl": "http://yahoo.com",
    "landingPageDomain": "http://yahoo.com",
    "mimeType": "video/mp4",
    "mimeType": "video/mp4",
    "status": "ACTIVE",
    "language": "ENGLISH",
    "accountId": 1234,
    "content": {
        "binaryData": "<Base64 Data of Portrait Video>",
        "nativeVideoImagedata": "<Base64 Data of Portrait Image>"
    },
    "details": {
        "title": "Try a Happy Medium.",
        "companyName": "HappyMedium Inc.",
        "description": "When in doubt, go with a Happy Medium!"
        "callToAction": "Learn More",
        "isVideoScrollable": true
    }
}

Example Response

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_VIDEO",
     "adType": "PORTRAIT",
     "id": 3337,
     "accountId": 1234,
     "name": "Portrait Video Test",
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "mimeType": "video/mp4",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "isVideoScrollable": true,
         "images": {
             "imageSecuredUrl": "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "creativeFileUrl": "https://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         }
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Read

All Creative Formats

Example Request

GET /traffic/creatives HTTP/1.1
Host: <HOST_NAME>
Content-Type: application/json
Accept: application/json
X-Auth-Method: OAuth2
X-Auth-Token: <ACCESS_TOKEN>

Example Response - Standard Native Creatives

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "id": 3333,
     "accountId": 1234,
     "name": "Happy Medium Native Standard Creative 6",
     "landingPageUrl": "http://happymedium.world",
     "mimeType": "image/png",
     "updatedAt": "2019-11-19T19:49:10Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "images": {
             "iconImageSecuredUrl": "https://s.yimg.com/zi/6b5f12f1-516f-47a6-9313-6d85bbc7a9c7.png",
             "imageSecuredUrl": "https://s.yimg.com/zi/89d0f8ba-0ec6-4f33-8969-369c5a2d0cd2.png",
             "smallImageSecuredUrl": "https://s.yimg.com/zi/63dd54c8-6dfb-4513-8bf8-89e803762e52.png",
             "largeMobileImageSecuredUrl": "https://s.yimg.com/zi/6bd33743-187f-4d1b-b297-553c8cd9c928.png"
         },
         "creativeMedia": []
     },
  },
  "errors": null,
  "timeStamp": "2019-11-19T19:49:11Z"
}

Example Response - Native Video Creatives

{
  "response": {
     "id": 3333,
     "accountId": 1234,
     "name": "Happy Medium Native Standard Creative",
     "landingPageUrl": "http://happymedium.world",
     "status": "ACTIVE",
     "mimeType": "video/mp4",
     "creativeType": "NATIVE_VIDEO",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "images": {
             "creativeFileUrl": "https://s.yimg.com/ch/raw-videos/aa4f765f-04dc-4acd-bf08-349fe11c353b.mp4",
             "iconImageSecuredUrl": "https://s.yimg.com/ch/f7a4a594-250f-4675-982e-d2d66210f767.png",
             "imageSecuredUrl": "https://s.yimg.com/ch/a1a9109b-f730-4699-86d5-a4be0667cf1f.png",
             "largeMobileImageSecuredUrl": "https://s.yimg.com/ch/195655f3-6454-4518-9604-386aff68fc65.png"
         },
         "creativeMedia": []
     },
     "updatedAt": "2021-02-13T02:07:42Z"
  },
  "errors": null,
  "timeStamp": "2021-02-13T02:07:42.418Z"
}

Example Response - Portrait Image Creatives

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "adType": "PORTRAIT",
     "id": 3336,
     "accountId": 1234,
     "name": "Portrait Image Test Creative",
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "mimeType": "image/jpeg",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         }
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Example Response - Portrait Image Creatives with Touchpoints

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "adType": "PORTRAIT",
     "id": 3336,
     "accountId": 1234,
     "name": "Portrait Image with Touchpoints,
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "mimeType": "image/jpeg",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "panoramaImageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         },
         "touchpoints": [
          {
            "type": "TOUCHPOINT_PORTRAIT",
            "templateType": "PLUS_LIGHT",
            "assetId": 145,
            "assetIndex": 0,
            "assetUrl": "https://s.yimg.com/zi/50b65482-c1d5-435e-8e70-5e669a30e021.png",
            "landingUrl": "http://yahoo.com",
            "styles": {
              "w": 45,
              "h": 45,
              "x": 200,
              "y": 300
            }
          }
        ]
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Example Response - Portrait Video Creatives

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_VIDEO",
     "adType": "PORTRAIT",
     "id": 3337,
     "accountId": 1234,
     "name": "Portrait Video Test",
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
     "language": "ENGLISH",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!",
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "creativeFileUrl": "https://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         }
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}

Example Response - Sponsored Mail Creatives

Example Response

{
  "response": {
     "status": "ACTIVE",
     "creativeType": "NATIVE_DISPLAY",
     "adType": "SPONSORED_MAIL",
     "id": 3338,
     "accountId": 1234,
     "name": "Your First Sponsored Mail Ad",
     "landingPageUrl": "http://yahoo.com",
     "landingPageDomain": "https://www.yahoo.com",
      "mimeType": "image/png",
     "language": "ENGLISH",
     "updatedAt": "2020-10-25T21:52:18Z",
     "details": {
         "title": "Try a Happy Medium.",
         "description": "When in doubt, go with a Happy Medium!"
         "companyName": "HappyMedium Inc.",
         "callToAction": "Learn More",
         "images": {
             "imageSecuredUrl": "imageSecuredUrl": "http://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain",
             "iconImageSecuredUrl": "https://pbp-ci.yahoofs.com/pbp-stg/creatives/bba78eac-b4c0-4e24-995a-e8d76a85f49c2191578831137715663.plain"
         }
     }
  },
  "errors": null,
  "timeStamp": "2020-10-25T21:52:18Z"
}