OpenRTB Extensions Protocol Buffer v.31

View raw content Back to Reference page

// Protocol version: v.31
import "openrtb.proto";
option java_outer_classname = "AdxExt";
package com.google.doubleclick;

// Copyright 2018 Google Inc. All Rights Reserved.

// Protocol buffer for Ad Exchange OpenRTB specification.

// Ad Exchange extensions for the Imp object.
message ImpExt {
  // [AdX: BidRequest.AdSlot.MatchingAdData.billing_id]
  repeated int64 billing_id = 1;

  // [AdX: BidRequest.publisher_settings_list_id]
  // [AdX: BidRequest.AdSlot.publisher_settings_list_id]
  repeated fixed64 publisher_settings_list_id = 2;

  // [AdX: BidRequest.AdSlot.allowed_vendor_type]
  repeated int32 allowed_vendor_type = 3 [packed=true];

  // [AdX: BidRequest.AdSlot.ExchangeBidding.publisher_parameter]
  repeated string publisher_parameter = 4;

  // [AdX: BidRequest.AdSlot.dfp_ad_unit_code]
  optional string dfp_ad_unit_code = 6;

  // [AdX: BidRequest.AdSlot.is_rewarded]
  optional bool is_rewarded_inventory = 7;

  // Possible requirement types for AMP ads.
  enum AmpAdRequirementType {
    // AMP ad requirements unknown.
    UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1;
    // AMP ads are not allowed.
    AMP_AD_NOT_ALLOWED = 2;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are not early rendered.
    AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are early rendered.
    AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4;
    // AMP ads are required.
    // Ads that are non-AMP may be rejected by the publisher.
    AMP_AD_REQUIRED = 5;
    // Exchange-specific values above 500.
  }
  optional AmpAdRequirementType ampad = 8
    [default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE];

  // Data, opaque to Google and to the publisher, generated by the buyer
  // within the publisher's mobile application.
  message BuyerGeneratedRequestData {
    // Identification for the source of the buyer generated request data when
    // that source is from within an application.
    message SourceApp {
      // Identifier for the SDK that generated this data. It will match the id
      // in AppExt.InstalledSdk.id.
      optional string id = 1;
    }
    // The source of the data.
    oneof source {
      SourceApp source_app = 1;
    }

    // Data sent from the buyer's source within the publisher's domain to the
    // bidder. This data is opaque to the publisher and to Google.
    optional string data = 2;
  }

  repeated BuyerGeneratedRequestData buyer_generated_request_data = 9;
}

extend com.google.openrtb.BidRequest.Imp {
  // Extension key for AdX Imp.ext.
  optional ImpExt imp = 1009;
}

message AppExt {
  // Identification of and information about an SDK installed in the
  // publisher's app that the bidder has access to, often because it's the
  // bidder's SDK.
  message InstalledSdk {
    // Identifier for the installed SDK.
    optional string id = 1;

    // Semantic version of the installed SDK and the adapter that communicates
    // between the installed SDK and Google's SDK.
    message Version {
      optional int32 major = 1 [default = -1];
      optional int32 minor = 2 [default = -1];
      optional int32 micro = 3 [default = -1];
    }

    // The version of the installed SDK.
    optional Version sdk_version = 2;

    // The version of the adapter that communicates with the installed SDK.
    optional Version adapter_version = 3;
  }
  repeated InstalledSdk installed_sdk = 1;
}

extend com.google.openrtb.BidRequest.App {
  // Extension key for AdX App.ext.
  optional AppExt app = 1011;
}

// Ad Exchange extensions for the BidResponse object.
message BidResponseExt {
  // [AdX: BidResponse.processing_time_ms]
  optional int32 processing_time_ms = 1;
}

extend com.google.openrtb.BidResponse {
  // Extension key for AdX BidResponse.ext.
  optional BidResponseExt bid_response = 1005;
}

// Ad Exchange extensions for the Bid object.
message BidExt {
  // [AdX: BidResponse.Ad.impression_tracking_url]
  repeated string impression_tracking_url = 1;

  // [AdX: BidResponse.Ad.ad_choices_destination_url]
  optional string ad_choices_destination_url = 2;

  // [AdX: BidResponse.Ad.bidder_name]
  optional string bidder_name = 3;

  // [AdX: BidResponse.Ad.AdSlot.exchange_deal_type]
  enum ExchangeDealType  {
    OPEN_AUCTION = 0;
    PRIVATE_AUCTION = 1;
    PREFERRED_DEAL = 2;
    EXCHANGE_AUCTION_PACKAGE = 3;
  }
  optional ExchangeDealType exchange_deal_type = 4 [default = OPEN_AUCTION];

  // [AdX: BidResponse.Ad.attribute]
  // See buyer-declarable-creative-attributes.txt in the technical documentation
  // for a list of ids. Note that not all declarable attributes come through in
  // the BidRequest in the various `battr` fields.
  repeated int32 attribute = 5 [packed = true];

  // The URL to fetch an AMPHTML ad. Only one of the following should be set:
  // html_snippet, video_url, amp_ad_url, native_ad.
  optional string amp_ad_url = 6;

  // An ad that will be rendered by an SDK known to the buyer. This can only
  // be used when the BidRequest included an AppExt.InstalledSdk submessage.
  message SdkRenderedAd {
    // The identifier for the SDK that will render the ad. Must match an
    // AppExt.InstalledSdk.id sent in the corresponding bid request.
    optional string id = 1;

    // Data to pass to the SDK in order to render the ad. This data is opaque
    // to the publisher and to Google.
    optional string rendering_data = 2;
  }
  optional SdkRenderedAd sdk_rendered_ad = 7;

  message EventNotificationToken {
    // The contents of the token, which will be ignored if longer than 64
    // bytes.
    optional string payload = 1;
  }
  // A token set by bidders for troubleshooting which will be included in the
  // real-time feedback for the Bid it is sent in. The contents of the token
  // will not be logged.
  optional EventNotificationToken event_notification_token = 8;
}

extend com.google.openrtb.BidResponse.SeatBid.Bid {
  // Extension key for AdX Bid.ext.
  optional BidExt bid = 1014;
}

message NativeRequestExt {
  // [AdX: BidRequest.AdSlot.native_ad_template[0].style_id]
  optional int32 style_id = 1;

  // [AdX: BidRequest.AdSlot.native_ad_template[0].style_height]
  optional int32 style_height = 2;

  // [AdX: BidRequest.AdSlot.native_ad_template[0].style_width]
  optional int32 style_width = 3;

  // [AdX: BidRequest.AdSlot.native_ad_template[0].style_layout_type]
  enum LayoutType {
    PIXEL = 0;
    FLUID = 1;
  }
  optional LayoutType style_layout_type = 4 [default = PIXEL];
}

extend com.google.openrtb.NativeRequest {
  // Extension key for the AdX Native.ext.
  optional NativeRequestExt native_ext =  1001;
}

message EventTrackerExt {
  // Additional context provided for rendering.
  enum Context {
    UNKNOWN = 0;
    OMID = 1;
  }
  repeated Context context = 1;

  // Parameters associated with the resource that will be passed to the
  // resource when it is loaded. The format of the parameters is dependent
  // on the script vendor.
  optional string verification_parameters = 2;

  // Used to uniquely identify the verification script provider.
  optional string vendor_key = 3;
};

extend com.google.openrtb.NativeResponse.EventTracker {
  // Extension key for the AdX EventTracker.ext.
  optional EventTrackerExt eventtrackers = 1000;
}

message PublisherExt {
  // The billing address country code of the publisher. This may be different
  // from the hosting country of the website. For a complete list of country
  // codes, please refer to
  // https://developers.google.com/adwords/api/docs/appendix/codes-formats#country-codes
  optional string country = 1;
};

extend com.google.openrtb.BidRequest.Publisher {
  // Extension key for the AdX Publisher.ext
  optional PublisherExt publisher = 1002;
};

message SiteExt {
  enum AmpPage {
    // This is not an AMP page.
    DIALECT_HTML = 0;
    // This is an Amp page.
    DIALECT_HTML_AMP = 1;
  }
  // Whether this is an AMP page or not. Omitted if unknown.
  optional AmpPage amp = 1;
}

extend com.google.openrtb.BidRequest.Site {
  // Extension key for the Adx Site.ext
  optional SiteExt site = 1010;
};

message BidRequestExt {
  // Feedback on bids submitted in previous responses. This is only set if
  // real-time feedback is enabled for your bidder. Please contact your
  // account manager if you wish to enable real-time feedback.
  message BidFeedback {
    // The unique id from BidRequest.id.
    optional string request_id = 1;

    // The status code for the ad. See creative-status-codes.txt in the
    // technical documentation for a list of ids.
    optional int32 creative_status_code = 2;

    // If the bid won the auction, this is the second price cpm in your account
    // currency. If the bid participated in the auction but was out-bid, this is
    // the cpm that should have been exceeded in order to win the auction. This
    // is not set if the bid was filtered prior to the auction, if the publisher
    // or winning bidder has opted out the price feedback or if your account
    // has opted out of sharing winning prices with other bidders. This field
    // will never be set for Exchange Bidders.
    optional double price = 3;

    message EventNotificationToken {
      // The contents of the token.
      optional string payload = 1;
    }
    // The token included in the corresponding bid.
    optional EventNotificationToken event_notification_token = 4;

    // The creative ID included in the corresponding bid.
    optional string buyer_creative_id = 5;
  }
  repeated BidFeedback bid_feedback = 1;
};

extend com.google.openrtb.BidRequest {
  // Extension key for the Adx BidRequest.ext
  optional BidRequestExt bid_request = 1018;
};

message UserExt {
  message ConsentedProvidersSettings {
    // Set of IDs corresponding to providers for whom the publisher has told
    // Google that its EEA users have consented to the use of their personal
    // data for ads personalization. A mapping of provider ID to provider name
    // is posted at providers.csv.
    repeated int64 consented_providers = 2 [packed = true];
  }
  // Information about the providers for whom the publisher has told Google that
  // its EEA users have consented to the use of their personal data for ads
  // personalization. This field will only be populated when RegsExt.gdpr is
  // true.
  optional ConsentedProvidersSettings consented_providers_settings = 1;
}

extend com.google.openrtb.BidRequest.User {
  // Extension key for the Adx User.ext
  optional UserExt user = 1007;
};

message RegsExt {
  // AdX fills this field solely based on whether the impression will serve to
  // an EEA user, based on information available to Google. It does not
  // constitute legal guidance on GDPR.
  optional bool gdpr = 1;
}

extend com.google.openrtb.BidRequest.Regs {
  // Extension key for the Adx Regs.ext
  optional RegsExt regs = 1001;
};

Send feedback about...

Authorized Buyers
Authorized Buyers