Snippet Status Protocol Buffer

View raw content Back to Reference page

// Protocol version: v.22
// Copyright 2017 Google Inc. All Rights Reserved.

message SnippetStatusItem {
  // The account_id of the snippet.
  optional int64 account_id = 19;

  // Possible approval statuses.
  enum Status {
    UNKNOWN = 0;
    NOT_CHECKED = 1;
    APPROVED = 2;
    DISAPPROVED = 3;
    CONDITIONALLY_APPROVED = 4;
  }

  enum DisapprovalReason {
    // The length of the image animation is longer than allowed.
    LENGTH_OF_IMAGE_ANIMATION = 0;
    // The click through url doesn't work properly.
    BROKEN_URL = 1;
    // Something is wrong with the creative itself.
    MEDIA_NOT_FUNCTIONAL = 2;
    // The ad makes a fourth party call to an unapproved vendor.
    INVALID_FOURTH_PARTY_CALL = 3;
    // The ad targets consumers using remarketing lists and/or collects
    // data for subsequent use in retargeting, but does not correctly declare
    // that use.
    INCORRECT_REMARKETING_DECLARATION = 4;
    // Clicking on the ad leads to an error page.
    LANDING_PAGE_ERROR = 5;
    // The ad size when rendered does not match the declaration.
    AD_SIZE_DOES_NOT_MATCH_AD_SLOT = 6;
    // Ads with a white background require a border, which was missing.
    NO_BORDER = 7;
    // The creative attempts to set cookies from a fourth party that is not
    // certified.
    FOURTH_PARTY_BROWSER_COOKIES = 8;
    // The creative sets an LSO object.
    LSO_OBJECTS = 9;
    // The ad serves a blank.
    BLANK_CREATIVE = 10;
    // The ad uses rotation, but not all destination urls were declared.
    DESTINATION_URLS_UNDECLARED = 11;
    // There is a problem with the way the click macro is used.
    PROBLEM_WITH_CLICK_MACRO = 12;
    // The ad technology declaration is not accurate.
    INCORRECT_AD_TECHNOLOGY_DECLARATION = 13;
    // The actual destination url does not match the declared destination url.
    INCORRECT_DESTINATION_URL_DECLARATION = 14;
    // The declared expanding direction does not match the actual direction.
    EXPANDABLE_INCORRECT_DIRECTION = 15;
    // The ad does not expand in a supported direction.
    EXPANDABLE_DIRECTION_NOT_SUPPORTED = 16;
    // The ad uses an expandable vendor that is not supported.
    EXPANDABLE_INVALID_VENDOR = 17;
    // There was an issue with the expandable ad.
    EXPANDABLE_FUNCTIONALITY = 18;
    // The ad uses a video vendor that is not supported.
    VIDEO_INVALID_VENDOR = 19;
    // The length of the video ad is not supported.
    VIDEO_UNSUPPORTED_LENGTH = 20;
    // The format of the video ad is not supported.
    VIDEO_UNSUPPORTED_FORMAT = 21;
    // There was an issue with the video ad.
    VIDEO_FUNCTIONALITY = 22;
    // The landing page does not conform to Ad Exchange policy.
    LANDING_PAGE_DISABLED = 23;
    // The ad or the landing page may contain malware.
    MALWARE_SUSPECTED = 24;
    // The ad contains adult images or video content.
    ADULT_IMAGE_OR_VIDEO = 25;
    // The ad contains text that is unclear or inaccurate.
    INACCURATE_AD_TEXT = 26;
    // The ad promotes counterfeit designer goods.
    COUNTERFEIT_DESIGNER_GOODS = 27;
    // The ad causes a popup window to appear.
    POP_UP = 28;
    // The creative does not follow policies set for the RTB protocol.
    INVALID_RTB_PROTOCOL_USAGE = 29;
    // The ad contains a URL that uses a numeric IP address for the domain.
    RAW_IP_ADDRESS_IN_SNIPPET = 30;
    // The ad or landing page contains unacceptable content because it initiated
    // a software or executable download.
    UNACCEPTABLE_CONTENT_SOFTWARE = 31;
    // The ad set an unauthorized cookie on a Google domain.
    UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN = 32;
    // Flash content found when no flash was declared.
    UNDECLARED_FLASH_OBJECTS = 33;
    // SSL support declared but not working correctly.
    INVALID_SSL_DECLARATION = 34;
    // Rich Media - Direct Download in Ad (ex. PDF download).
    DIRECT_DOWNLOAD_IN_AD = 35;
    // Maximum download size exceeded.
    MAXIMUM_DOWNLOAD_SIZE_EXCEEDED = 36;
    // Bad Destination Url: Site Not Crawlable.
    DESTINATION_URL_SITE_NOT_CRAWLABLE = 37;
    // Bad Url: Legal disapproval.
    BAD_URL_LEGAL_DISAPPROVAL = 38;
    // Pharmaceuticals, Gambling, Alcohol not allowed and at least one was
    // detected.
    PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED = 39;
    // Dynamic DNS at Destination url.
    DYNAMIC_DNS_AT_DESTINATION_URL = 40;
    // Poor Image / Video Quality.
    POOR_IMAGE_OR_VIDEO_QUALITY = 41;
    // E.g. Image Trick to Click.
    UNACCEPTABLE_IMAGE_CONTENT = 42;
    // Incorrect Image Layout.
    INCORRECT_IMAGE_LAYOUT = 43;
    // Irrelevant Image / Video.
    IRRELEVANT_IMAGE_OR_VIDEO = 44;
    // Broken back button.
    DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK = 45;
    // Misleading/Inaccurate claims in ads.
    MISLEADING_CLAIMS_IN_AD = 46;
    // Restricted Products.
    RESTRICTED_PRODUCTS = 47;
    // Unacceptable content, e.g. malware.
    UNACCEPTABLE_CONTENT = 48;
    // The ad automatically redirects to the destination site without a click,
    // or reports a click when none were made.
    AUTOMATED_AD_CLICKING = 49;
    // The ad uses url protocols that do not exist or are not allowed on AdX.
    INVALID_URL_PROTOCOL = 50;
    // Restricted content (e.g. alcohol) was found in the ad but not declared.
    UNDECLARED_RESTRICTED_CONTENT = 51;
    // Violation of the remarketing list policy.
    INVALID_REMARKETING_LIST_USAGE = 52;
    // The destination site's robot.txt file prevents it from being crawled.
    DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT = 53;
    // Click to download must link to an app.
    CLICK_TO_DOWNLOAD_NOT_AN_APP = 54;
    // A review extension must be an accurate review.
    INACCURATE_REVIEW_EXTENSION = 55;
    // Sexually explicit content.
    SEXUALLY_EXPLICIT_CONTENT = 56;
    // The ad tries to gain an unfair traffic advantage.
    GAINING_AN_UNFAIR_ADVANTAGE = 57;
    // The ad tries to circumvent Google's advertising systems.
    GAMING_THE_GOOGLE_NETWORK = 58;
    // The ad promotes dangerous knives.
    DANGEROUS_PRODUCTS_KNIVES = 59;
    // The ad promotes explosives.
    DANGEROUS_PRODUCTS_EXPLOSIVES = 60;
    // The ad promotes guns & parts.
    DANGEROUS_PRODUCTS_GUNS = 61;
    // The ad promotes recreational drugs/services & related equipment.
    DANGEROUS_PRODUCTS_DRUGS = 62;
    // The ad promotes tobacco products/services & related equipment.
    DANGEROUS_PRODUCTS_TOBACCO = 63;
    // The ad promotes weapons.
    DANGEROUS_PRODUCTS_WEAPONS = 64;
    // The ad is unclear or irrelevant to the destination site.
    UNCLEAR_OR_IRRELEVANT_AD = 65;
    // The ad does not meet professional standards.
    PROFESSIONAL_STANDARDS = 66;
    // The promotion is unnecessarily difficult to navigate.
    DYSFUNCTIONAL_PROMOTION = 67;
    // Violation of Google's policy for interest-based ads.
    INVALID_INTEREST_BASED_AD = 68;
    // Misuse of personal information.
    MISUSE_OF_PERSONAL_INFORMATION = 69;
    // Omission of relevant information.
    OMISSION_OF_RELEVANT_INFORMATION = 70;
    // Unavailable promotions.
    UNAVAILABLE_PROMOTIONS = 71;
    // Misleading or unrealistic promotions.
    MISLEADING_PROMOTIONS = 72;
    // Offensive or inappropriate content.
    INAPPROPRIATE_CONTENT = 73;
    // Capitalizing on sensitive events.
    SENSITIVE_EVENTS = 74;
    // Shocking content.
    SHOCKING_CONTENT = 75;
    // Products & Services that enable dishonest behavior.
    ENABLING_DISHONEST_BEHAVIOR = 76;
    // The ad does not meet technical requirements.
    TECHNICAL_REQUIREMENTS = 77;
    // Restricted political content.
    RESTRICTED_POLITICAL_CONTENT = 78;
    // Unsupported content.
    UNSUPPORTED_CONTENT = 79;
    // Invalid bidding method.
    INVALID_BIDDING_METHOD = 80;
    // Video exceeds length limit.
    VIDEO_TOO_LONG = 81;
    // Creative violates Japanese pharmacy law.
    VIOLATES_JAPANESE_PHARMACY_LAW = 82;
    // Unaccredited pet pharmacy.
    UNACCREDITED_PET_PHARMACY = 83;
    // Unacceptable content: Abortion.
    ABORTION = 84;
    // Unacceptable content: Birth control.
    CONTRACEPTIVES = 85;
    // This creative violates Chinese serving requirements.
    NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA = 86;
    // Creative promotes a Korean pharmacy without proper certification.
    KCDSP_REGISTRATION = 87;
    // Creative contains non-family safe or adult content.
    NOT_FAMILY_SAFE = 88;
    // Unacceptable content: Clinical trial recruitment.
    CLINICAL_TRIAL_RECRUITMENT = 89;
    // Maximum number of HTTP calls exceeded.
    MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED = 90;
    // Maximum number of cookies exceeded.
    MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED = 91;
    // Financial service ad does not adhere to specifications.
    PERSONAL_LOANS = 92;
    // Flash content was found in an unsupported context.
    UNSUPPORTED_FLASH_CONTENT = 93;
  }

  // The type of correction applied to the ad. This is determined by scanning
  // the creative and detecting its serving capabilities.
  enum CorrectionType {
    // The ad's declared vendors did not match the vendors that were detected.
    VENDOR_IDS = 1;
    // The ad had the SSL attribute declared but was not SSL-compliant.
    SSL_ATTRIBUTE = 2;
    // The ad was declared as Flash-free but contained Flash, so the Flash-free
    // attribute was removed.
    FLASH_ATTRIBUTE = 3;
    // The ad was not declared as Flash-free but it did not reference any flash
    // content, so the Flash-free attribute was added.
    FLASHLESS_ATTRIBUTE = 4;
    // The ad did not declare a required creative attribute.
    REQUIRED_ATTRIBUTE = 5;
    // The ad did not declare a required technology vendor.
    REQUIRED_VENDOR = 6;
    // The ad did not declare the SSL attribute but was SSL-compliant, so the
    // SSL attribute was added.
    SSL_ATTRIBUTE_ADDED = 7;
    // Properties consistent with In-banner video were found, so an
    // In-Banner Video attribute was added.
    IN_BANNER_VIDEO_ATTRIBUTE_ADDED = 8;
    // The ad makes calls to the MRAID API so the MRAID attribute was added.
    MRAID_ATTRIBUTE_ADDED = 9;
    // The ad unecessarily declared the Flash attribute, so the Flash attribute
    // was removed.
    FLASH_ATTRIBUTE_REMOVED = 10;
    // The ad contains video content.
    VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED = 11;
  }

  // This field is deprecated. If you do not care about the nuances of
  // contextual restrictions, the direct replacement is the open_auction_status.
  // In the binary version of the SSR, this field will continue to be populated
  // until the end of Q3 2016.
  optional Status DEPRECATED_status = 1
      [default = NOT_CHECKED, deprecated = true];

  // The current open auction status. Note that if disapproved, an entry for
  // auction_type=OPEN_AUCTION (or ALL) in serving_restriction will also exist.
  // Note that this may be nuanced with other contextual restrictions, in which
  // case it may be preferable to read from serving_restriction directly.
  optional Status open_auction_status = 16;

  // The current deals status. Note that if disapproved, an entry for
  // auction_type=DIRECT_DEALS (or ALL) in serving_restriction will also exist.
  // Note that this may be nuanced with other contextual restrictions, in which
  // case it may be preferable to read from serving_restriction directly.
  optional Status deals_status = 17;

  // Whether the ad comes from the Adx UI or an RTB ad.
  enum Source {
    RTB = 0;
    UI = 1;
  }
  optional Source source = 8;

  // Creative ID assigned by customer. This field is set only for RTB ads.
  optional string buyer_creative_id = 2;

  // Creative ID assigned by Google. This field is set only for UI ads.
  optional string creative_id = 9;

  // The dimensions of the creative.
  optional int32 width = 3;
  optional int64 height = 4;

  // Advertisers we've classified for this creative.
  repeated int64 advertiser_id = 5;

  // The declared click through urls for this creative.
  repeated string click_through_url = 11;

  // The detected domains for this creative.
  repeated string detected_domain = 21;

  // The detected sensitive categories for this creative. See
  // ad-sensitive-categories.txt file in the technical documentation for a
  // list of ids. You should use these ids along with the
  // excluded_sensitive_category field in the bid request to filter your bids.
  repeated int32 detected_sensitive_category = 6;

  // The detected product categories for this creative. See
  // ad-product-categories.txt file in the technical documentation for a
  // list of ids. You should use these ids along with the
  // excluded_product_category field in the bid request to filter your bids.
  repeated int32 detected_product_category = 7;

  // The detected languages for this creative. The order is arbitrary. The codes
  // are 2 or 5 characters and are documented at
  // https://developers.google.com/adwords/api/docs/appendix/languagecodes.
  repeated string detected_language = 20;

  // Whether the snippet has declared attribute 47
  // RichMediaCapabilityType: RichMediaCapabilitySSL.
  // This does not indicate SSL eligibility, just the buyer declaration. Serving
  // eligibility is determined based on scans of the creative.
  // See CorrectionType and the snippet_correction field for more.
  optional bool is_ssl_capable = 15;

  message Disapproval {
    // The categorized reason for disapproval.
    optional DisapprovalReason reason = 1;

    // Additional details about the reason for disapproval.
    repeated string detail = 2;
  }

  // This field is deprecated. Look in the serving_restrictions instead.
  // In the binary version of the SSR, this field will continue to be populated
  // until the end of Q3 2016.
  repeated Disapproval DEPRECATED_disapproval_reason2 = 12 [deprecated = true];

  message Correction {
    // The type of correction that was applied to the snippet.
    optional CorrectionType type = 1;

    // Additional details about what was corrected.
    repeated string detail = 2;

    // The context for the correction.
    repeated ServingRestriction.ServingContext context = 3;
  }

  // The corrections that were applied to the snippet, if any.
  repeated Correction snippet_correction = 13;

  // Top filtering reasons for this snippet during a period of a single day
  // (from midnight to midnight Pacific).
  message SnippetFiltering {
    // The day during which the data was collected. Typically the date
    // representing 'yesterday'. The date is in the ISO 8601 format: 'YYYY-MM-DD'.
    optional string date = 1;

    // A specific filtering reason. Please refer to "creative-status-codes.txt"
    // in the Downloads section for the status codes. The count is aggregated
    // across all publishers on the exchange.
    message FilteringItem {
      optional int32 filtering_status = 1;
      optional int64 filtering_count = 2;
    }
    repeated FilteringItem item = 2;
  }

  // Reasons for which the snippet was filtered before reaching the auction or
  // lost in the auction.
  optional SnippetFiltering snippet_filtering = 14;

  // A representation of the status of an ad in a specific context. A context
  // here relates to where something ultimately serves (for example, a user
  // or publisher geo, a platform, an HTTPS vs HTTP request, or
  // the type of auction).
  message ServingRestriction {
    enum ServingRestrictionReason {
      UNKNOWN_REASON = 0;
      // The ad was disapproved in this context.
      DISAPPROVAL = 1;
      // The ad is pending review in this context.
      PENDING_REVIEW = 2;
    }
    optional ServingRestrictionReason reason = 1;

    message ServingContext {
      enum ContextType {
        UNKNOWN_TYPE = 0;
        // Matches all contexts.
        ALL = 1;
        // Matches impressions coming from users *or* publishers in a specific
        // location. When set, geo_criteria_id will also be populated.
        LOCATION = 3;
        // Matches impressions coming from a particular platform. When set,
        // platform will also be populated.
        PLATFORM = 4;
        // Matches impressions for a particular auction type. When set,
        // auction_type will also be populated.
        AUCTION_TYPE = 5;
        // Matches impressions that require SSL compatibility.
        SSL_REQUEST = 6;
      }
      optional ContextType context_type = 1;

      // Only set when context_type=LOCATION. Represents the geo criterias this
      // restriction applies to.
      repeated int32 geo_criteria_id = 2;

      // Platforms eligible for contextual serving.
      enum Platform {
        // Mostly Desktop browsers, but also the default fallback for any
        // platform not explicitly listed below.
        DESKTOP = 0;
        // Mobile web browser on an Android device.
        ANDROID_WEB = 1;
        // Mobile web browser on an iOS device.
        IOS_WEB = 2;
        // In-App context on an Android device.
        ANDROID_IN_APP = 3;
        // In-App context on an iOS device.
        IOS_IN_APP = 4;
      }
      // Only set when context_type=PLATFORM. Represents the platforms this
      // restriction applies to.
      repeated Platform platform = 3;

      enum AuctionType {
        // OPEN_AUCTION includes everything not explicitly split via
        // DIRECT_DEALS.
        OPEN_AUCTION = 0;
        DIRECT_DEALS = 1;
      }
      // Only set when context_type=AUCTION_TYPE. Represents the auction types
      // this restriction applies to.
      repeated AuctionType auction_type = 4;
    }

    repeated ServingContext context = 2;

    // Any disapprovals bound to this restriction. Only present if
    // reason=DISAPPROVED. Note that not all disapproval reasons may be
    // categorized, so it is possible for the creative to have a status of
    // DISAPPROVED with an empty list of disapproval_reasons. In this case,
    // please reach out to your TAM to help debug the issue.
    repeated Disapproval disapproval_reason = 3;
  }

  repeated ServingRestriction serving_restriction = 18;

  reserved 10;
}

// The main report protocol for snippet status reports. The report body is a
// serialized instance of this type.
message SnippetStatusReport {
  // One message per snippet. The snippet depends on buyer_creative_id as well
  // as the creative dimensions. Each creative remains in the snippet status
  // report for 3 days after the customer stops sending it to Google.
  repeated SnippetStatusItem snippet_status = 1;
}

Send feedback about...

Real-Time Bidding Protocol
Real-Time Bidding Protocol