Skip to end of metadata
Go to start of metadata

Native Ad Markup Bidding (Beta)

Native Ad Markup Bidding enables your bidder to submit native ad markup via adm in the OpenRTB bid response. Instead of registering every native creative asset you have with AppNexus, you are required to register only a single creative for each ad campaign or brand you represent; all native creative assets for that brand can be passed dynamically via ad markup in the bid response. This page explains how to use this feature.

Note: This feature does not currently support bidding with native video ad markup. Only non-video native ad markup is accepted.

On This Page

 

Getting Started

Your bidder must be enabled to use this feature. If you are not sure whether your bidder is enabled, please check with your AppNexus account representative.

Once enabled, there are two steps required to buy Native inventory via Ad Markup Bidding:

  1. Register your creative. For each brand that you represent, you must register a single creative that represents that brand. Your creative must pass platform audit. All native creative assets associated with this brand within your bidder will serve through this creative. See Register Native Creatives below for details.
  2. Bid with your creative assets on native inventory. See Bid with Native Ad Markup below for details.

Register Native Creatives

For each brand that you represent, you must register a single creative that represents that brand. This is done using the Creative Service. When registering a Native Creative, there are a few considerations to keep in mind:

  • The creative must represent one of the actual native ads that you will dynamically pass on the bid response for this brand. The specific ad you choose to register does not matter, but the creative must contain at least one image asset and one data asset, consistent with an ad you would actually serve on native inventory.
  • When registering a creative, only AppNexus Macros are supported. OpenRTB macros (such as ${AUCTION_PRICE}) will not be expanded.
  • The creative must be submitted for platform audit. 
  • You do not need to specify the brand_id field; this will be set by AppNexus during audit.
  • Be sure to include impression and click trackers when registering your creative. The ad markup submitted in the bid response should use the same set of vendors (or fewer) that were registered with this creative
  • Be sure to use native creative template 39461.

The following section provides an example of defining and registering a Native Creative.

Creative Example

This example uses four data assets and two image assets, but you can choose to use a different combination depending on the assets you want to register. (Remember, you must have at least one asset of each type.) See the Creative Service for more details on native creative assets.

  Adding a native creative

Bid with Native Ad Markup

Note: This feature does not currently support bidding with native video ad markup. Only non-video native ad markup is accepted.

Once you have registered a Native Creative and it has passed platform audit, you can begin bidding with that creative using the OpenRTB protocol. Note that AppNexus supports v1.1 of the OpenRTB Dynamic Native Ads API. Some considerations:

  • Either the crid or adid field must be included in the bid response to identify the creative that was registered. The crid value must match the creative's code; adid must match the creative's id.

  • Native creative assets must be passed via the seatbid.bid.adm.native object. Be sure to include image assets, data assets, impression trackers, and click trackers. These assets will serve instead of the creative asset you initially registered.

    The creative assets you bid with must belong to the same brand as the creative asset you initially registered. AppNexus periodically scans and reviews ad markup creative content to ensure this content is consistent with the registered creative. If there is a discrepancy, your creative can be rejected by platform audit. Frequent creative audit rejections due to rotating brands can result in revoked access to the Ad Markup Bidding with Native feature.

  • If you do not pass native creative assets in your bid response, or the assets are malformed, the registered creative content will serve by default.

Bid Response Supported Fields

  • The following fields are ignored in the bid response:  adomain  and  ver .
  • Brand is set during platform audit of the registered creative, so  adomain  is not needed.

Bid Object

Field

Type

Description

adm

string

Conveys ad markup in case the bid wins. The native object (described below) should be passed in as a JSON-encoded string.

Native Object

Field

Type

Description

assets

array of objects

(Required) List of the native ad's assets. See Asset Object below.
 

linkobject(Required) The default destination link for the native ad. Each individual asset can have its own link object, which applies if that asset is clicked. If an individual asset link does not have a link object, the parent link object is used. See Link Object below.
imptrackersarray of strings

Array of impression-tracking URLs expected to return a 1x1 image or HTTP 204 (No Content) response. This is typically passed only when using third-party trackers.

The following OpenRTB macros are supported in this field:

  • ${AUCTION_ID} - AppNexus auction_id_64
  • ${AUCTION_BID_ID} - ID of the bid specified in the bidid field in the bid response
  • ${AUCTION_IMP_ID} - ID of the impression, from the impid field in the bid object of the seatbid object
  • ${AUCTION_SEAT_ID} - ID of the winning seat, from the seat field in the seatbid object
  • ${AUCTION_AD_ID} - ID of the buyer's creative, from the adid field in the bid object of the seatbid object
  • ${AUCTION_PRICE} - Clearing price of the impression in the currency specified in the cur field in the bid response
  • ${AUCTION_CURRENCY} - Currency of the clearing price, as specified in the cur field in the bid response
jstracker
string

Optional JavaScript impression tracker. This should be wrapped in <script> tags.

The following OpenRTB macros are supported in this field:

  • ${AUCTION_ID} - AppNexus auction_id_64
  • ${AUCTION_BID_ID} - ID of the bid specified in the bidid field in the bid response
  • ${AUCTION_IMP_ID} - ID of the impression, from the impid field in the bid object of the seatbid object
  • ${AUCTION_SEAT_ID} - ID of the winning seat, from the seat field in the seatbid object
  • ${AUCTION_AD_ID} - ID of the buyer's creative, from the adid field in the bid object of the seatbid object
  • ${AUCTION_CURRENCY} - Currency of the clearing price, as specified in the cur field in the bid response
privacy
stringIf support was indicated in the request, URL of a page informing the user about the buyer’s targeting activity.
ext
objectUsed for identifying AppNexus-specific extensions to the OpenRTB bid response.

Native Ext Object

AppNexus supports a single object in the native ext object to support AppNexus-specific extensions:

Field

Type

Description

appnexus

object

Native Ext AppNexus Object

AppNexus supports the following fields in the appnexus extension object:

Field

Type

Description

third_party_imptrackers

array of strings

    • ${AUCTION_PRICE} - Clearing price of the impression in the currency specified in the cur field in the bid response
    • ${AUCTION_CURRENCY} - Currency of the clearing price, as specified in the cur field in the bid response

All other OpenRTB macros will expand normally.

Asset Object

AppNexus supports the following fields to define one or more native asset objects to be included as a JSON-encoded string as part of the native object in the adm field of the bid object. 

Field

Type

Description

id

integer

required

integer

Set to 1 if bidder requires asset to be displayed.
 

titleobjectThe title object, for title assets. See Title Object below.
imgobjectThe image object, for image assets. See Image Object below.
dataobjectThe data object, for data assets such as ratings, prices, and so on. See Data Object below.
linkobjectThis object is not supported in our native implementation.

Title Object

Used to define a title asset in a native object.

Field

Type

Description

text

string

Image Object

Used to define an image asset in a native object. Used for all image elements of the native ad, such as icons, main image, and so on.

Field

Type

Description

url

string

winteger(Recommended) The width of the image, in pixels.
hinteger(Recommended) The height of the image, in pixels.
extobjectUsed for identifying AppNexus-specific extensions to the OpenRTB bid response.

Image Ext Object

AppNexus supports a single object in the native ext object to support AppNexus-specific extensions:

Field

Type

Description

appnexus

object

Image Ext AppNexus Object

AppNexus supports the following fields in the appnexus extension object:

Field

Type

Description

prevent_crop

boolean

Allows the buyer to indicate whether the image can be cropped or not. This can be applied to icon and main image.
  • If flag is set to 1, the image can not be cropped (fill)
  • If flag is set to 0, the image can be cropped (fit)
  • If flag is not passed in/default behavior: 0; images are assumed to allow modifications unless explicitly indicated otherwise

Data Object

Used to define a data asset in a native object. Used for all miscellaneous elements in a native ad, such as ratings, price, review count, downloads, and so on.

Field

Type

Description

label

string

valuestringThe formatted string of data to be displayed (such as "5 stars" or "$10").

Link Object

Used to define the link for a native asset. When clicked, the user is taken to the location of the link. Can only be defined on the parent native object.

Field

Type

Description

url

string

clicktrackersArray of stringsArray of third-party tracking URLs to be fired when the link is clicked.
fallbackstringA fallback URL to be used if the URL is not supported by the device.


Bid Response Example

FAQs

Why do I have to register a creative for each brand I represent?

AppNexus policy prohibits brand rotation on creatives. By registering a creative for each brand you work with, your creative will be able to pass AppNexus audit. This will maximize the native inventory on which it can serve. AppNexus ensures that each creative complies with our audit policies by performing an initial audit and then periodically scanning the creative content that your bidder dynamically passes in its bid responses. If the dynamic content served by your bidder differs substantially from the registered creative (i.e. images and text for a different brand) it will be reaudited and may be rejected.

Will I be charged creative audit fees for periodically reaudited creative ad markup?

No. Creative audit fees will apply only during your creative's initial audit.

What happens if my Native Creative passes initial audit but fails a subsequent reaudit?

Your creative will not be permitted to serve. The audit failure may be due to rotating brands. If you believe your creative has been failed incorrectly or have other questions please contact customer support and select the Category "Creative Audit". Please note that frequent creative audit rejections due to rotating brands may result in revoked access to the Ad Markup Bidding with Native feature.

Where do I go for more help?

If you have additional questions, please contact your account representative or customer support