---
title: "DecideAdDisplay"
method: POST
path: "/rmp/decision/v1/platforms/{platform_id}/display-auction"
tags: ["Decision"]
---

# DecideAdDisplay

`POST /rmp/decision/v1/platforms/{platform_id}/display-auction`

Request display ads by auction. Server host may vary by platform. Moloco's staff will provide accurate host information.

## Path parameters

- `platform_id` string, required

## Request body

- PublicDecisionDisplayInput — Request body for decision display.
  - `request_id` string, required — Unique identifier of the request. The client is responsible to create this value.
  - `channel_type` 'UNKNOWN_CHANNEL_TYPE' | 'APP' | 'SITE' | 'DESKTOP_SITE' | 'MOBILE_SITE' — ChannelType enumerates available channel types. Simply using APP and SITE is fine, but you can also further distinguish DESKTOP_SITE and MOBILE_SITE for web users. - APP: Mobile App (iOS or Android) - SITE: Site (e.g. Website) - DESKTOP_SITE: Desktop Site (e.g. Desktop Website) - MOBILE_SITE: Mobile Site (e.g. Mobile Website)
  - `domain` string — Set domain to a value that can identify the domain portion of your website's URL. We recommend you keep the same value across your website and application if they share your backend.
  - `session_id` string — Deprecated. Unique identifier for tracking users regardless of sign-in status.
  - `custom_id` string — Alternative ID to track users regardless of sign-in status or device. This ID should be provided as a third option following the user.user_id and device.persistent_id, and is highly recommended to be hashed prior to being sent to Moloco. This ID must be provided if both the user.user_id and device.persistent_id fields are left empty. Please do not fill in a default value, and instead randomize it if you must, but we recommend you send some ID that can be used to track users even if for a short time span. Please reach out to Moloco if you have further questions about this ID.
  - `user` V1User — User who gets recommended products or product ads.
    - `user_id` string — User identifier used by the platform. This should typically be the sign-in ID used within the platform, and is highly recommended to be hashed prior to being sent to Moloco. Please provide this value whenever available to achieve optimal performance. If the value is unknown for any reason, please leave empty and do not fill in a default or random value.
    - `interests` string[] — Interests of the user. e.g. ["sports", "outdoor"]
  - `device` V1Device
    - `os` string — OS of the device. For app traffic, "ios", "android" should be provided. When `advertising_id` is provided, this field also should be specified.
    - `os_version` string — OS version which is taken from the device without manipulation or normalization. (e.g., "14.4.1")
    - `advertising_id` string — Deprecated. For app traffic, IDFA of iOS or ADID of android should be filled in this field. (e.g., "7acefbed-d1f6-4e4e-aa26-74e93dd017e4")
    - `unique_device_id` string — Deprecated. Please use persistent_id as alternative. For app traffic, a unique identifier for a device should be filled in this filed. A client is able to issue an identifier for a user device, or use IDFV value for iOS app.
    - `model` string — Device model, which is taken from the device without manipulation or normalization. (e.g., "iPhone 11 Pro")
    - `persistent_id` string — Alternative ID to track users regardless of sign-in status. This can typically be an ID associated with the device that the user is on, and is highly recommended to be hashed prior to being sent to Moloco. Please provide this value in addition to the user.user_id whenever available to achieve optimal performance. If the value is unknown for any reason, please leave empty and do not fill in a default or random value. For further information, please refer to this guide: https://mcm-docs.moloco.com/docs/generating-persistent-identifiers
  - `inventories` V1AdInventory[], required — List of ad inventories (placements) to request decisions for. Each inventory represents a placement where ads can be displayed.
    - `inventory_id` string, required — A unique identifier for the inventory that the platform manage. It is used for ad decision, analytics, reporting, ad decision etc. An inventory represents a place (a mobile screen, a web page, etc.) where your ads will be displayed. Common inventories in retail marketplaces include Home, Product detail page (PDP), Search Result Page (SRP), Category page, Checkout page.
    - `num_ads` integer — Optional. Number of ads requested for the inventory. 1 by default.
    - `items` string[] — The main item ids of the page. For example, homepage inventories don't have any main items, and product-detail-page inventories have one main item.
    - `categories` string[] — Categories of the page: This contextual data is used for ML training and not for other purposes such as filtering. Each category string has a hierarchy separated by '>'. For example, "Sports & Fitness > Athletic Clothing > Shoes" represents a category with three different levels of hierarchy.
    - `search_query` string — Search query string. It should be provided if the page of serving inventory is a search result page.
    - `video` V1VideoInventory — Contexts for the video inventory
      - `format` 'UNKNOWN_VIDEO_FORMAT' | 'MP4_360P' | 'MP4_720P' | 'HLS' — VideoFormat enumerates the video format to be responded from the decision.
    - `targeting` V1Targeting — Targeting describes the detailed targeting spec for the campaign.
      - `placement_setting` TargetingPlacementSetting — PlacementSetting describes target placement targeting settings for the campaign
        - `home_setting` PlacementSettingHomeSetting — Targeting setting of the Home Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Home Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `category_setting` PlacementSettingCategorySetting — Targeting setting of the Category Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Category Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `search_setting` PlacementSettingSearchSetting — Targeting setting of the Search Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Search Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
          - `keyword_setting` SearchSettingKeywordSetting — KeywordSetting describes target keyword targeting settings for the campaign
            - `keyword_type` 'ALL' | 'TARGET', required — KeywordType enumerates available keyword types for keyword targeting.
            - `negative_keywords` KeywordSettingNegativeKeyword[] — Negative keyword settings.
              - …
            - `positive_keywords` KeywordSettingPositiveKeyword[] — Positive keyword settings.
              - …
        - `product_detail_setting` TargetingPlacementSettingProductDetailSetting — Targeting setting of the Product Detail Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Product Detail Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `cart_setting` PlacementSettingCartSetting — Targeting setting of the Cart Placement.
          - `enabled` boolean, required — If set true, the campaign will target Cart Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `checkout_setting` PlacementSettingCheckoutSetting — Targeting setting of the Checkout Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Checkout Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `ranking_setting` PlacementSettingRankingSetting — Targeting setting of the Ranking Placement.
          - `enabled` boolean, required — If set true, the campaign will target the Ranking Placement.
          - `cost_price` RmpcommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
            - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
            - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
      - `audience_setting` TargetingAudienceSetting — AudienceSetting describes audience targeting settings for the campaign
        - `label` string — Label of the audience settings. This can be set only if the event_based_include_list or event_based_exclude_list is set. This label will be used to identify the custom audience settings in the campaign.
        - `event_based_include_list` AudienceSettingEventBasedList — EventBasedList describes event based audience targeting settings for the campaign
          - `conditions` AudienceSettingEventBasedListCondition[], required — Event based audience targeting conditions.
            - `event_type` 'UNKNOWN_EVENT_TYPE' | 'PURCHASE' | 'ITEM_PAGE_VIEW', required
            - `criteria` 'UNKNOWN_CRITERIA' | 'AD_ACCOUNT' | 'AD_ACCOUNT_ITEM' | 'CATEGORY' | 'BRAND', required
            - `period_hours` integer, required — Event period for targeting audience in hours.
            - `selections` string[] — Selections of the target audience. It is required if the criteria is AD_ACCOUNT_ITEM, BRAND, or CATEGORY.
          - `operator` 'UNKNOWN_OPERATOR' | 'AND' | 'OR', required
        - `event_based_exclude_list` AudienceSettingEventBasedList — EventBasedList describes event based audience targeting settings for the campaign
          - `conditions` AudienceSettingEventBasedListCondition[], required — Event based audience targeting conditions.
            - `event_type` 'UNKNOWN_EVENT_TYPE' | 'PURCHASE' | 'ITEM_PAGE_VIEW', required
            - `criteria` 'UNKNOWN_CRITERIA' | 'AD_ACCOUNT' | 'AD_ACCOUNT_ITEM' | 'CATEGORY' | 'BRAND', required
            - `period_hours` integer, required — Event period for targeting audience in hours.
            - `selections` string[] — Selections of the target audience. It is required if the criteria is AD_ACCOUNT_ITEM, BRAND, or CATEGORY.
          - `operator` 'UNKNOWN_OPERATOR' | 'AND' | 'OR', required
        - `included_predefined_audience_list` TargetingAudienceSettingPredefinedAudienceList — PredefinedAudienceList describes predefined audiences used for the campaign.
          - `audiences` TargetingAudienceSettingPredefinedAudience[], required — Predefined audiences.
            - `id` string, required — The id of the predefined audience.
          - `operator` 'UNKNOWN_OPERATOR' | 'AND' | 'OR', required
      - `custom_setting` TargetingCustomSetting — CustomSetting describes target custom targeting settings for the campaign
        - `custom_targets` TargetingCustomSettingCustomTarget[], required — Custom targets.
          - `key_id` string, required — The id of the custom target key.
          - `value_ids` string[], required — The ids of the custom target values.
  - `page_id` string — ID of the page where the ads will be displayed. It is a mandatory field if the Ad Placement (Inventory) is configured to use the PAGE_VIEW event type. If the ad placement is configured to use this Event type, please ensure that the 'page_id' value is consistent with the value you're passing via the User Event API. If the ad placement is not configured to use the PAGE_VIEW Event type, it is not required to have a value for the 'page_id' parameter.
  - `personalization_mode` 'UNKNOWN_PERSONALIZATION_MODE' | 'STANDARD' | 'METRIC_ONLY' | 'ID_LESS' — PersonalizationMode determines how user identification is handled in decision and event processing. - STANDARD: STANDARD means standard user processing with full user identification. - METRIC_ONLY: METRIC_ONLY means user data is used for metric collection only, not for personalization. - ID_LESS: ID_LESS means no user identification is used.
  - `response_setting` V1CampaignResponseSetting
    - `campaign_metadata_fields` V1CampaignMetadataField[] — List of campaign metadata fields to return.
  - `deduplication_setting` V1DeduplicationSetting — The response deduplication setting for this decision request.
    - `per_request` DeduplicationSettingRequestValue — The per_request object defines the deduplication logic for the entire request. It applies both within individual inventories and across multiple inventories. The per_inventory object can override this logic at the inventory level.
      - `method` 'METHOD_DEFAULT' | 'METHOD_WATERFALL' | 'METHOD_INTERLEAVED' — Method defines how duplicate ads are resolved. - METHOD_DEFAULT: Uses the system default deduplication method. Currently defaults to METHOD_WATERFALL. - METHOD_WATERFALL: Resolves duplicate ads by prioritizing inventories that appear earlier in the request. When duplicate ads appear in multiple inventories, the ads are kept in the earliest inventory and removed from later inventories. - METHOD_INTERLEAVED: Resolves duplicate ads by prioritizing higher-ranking ads. A higher-ranking ad appears earlier in the response for its inventory. If duplicate ads have the same rank, the inventory that appears earlier in the decision request is prioritized. Ad rankings may shift after deduplication is applied.
      - `criteria` 'CRITERIA_DEFAULT' | 'CRITERIA_NONE' | 'CRITERIA_ITEM_ID' | 'CRITERIA_AD_ACCOUNT_ID' | 'CRITERIA_CAMPAIGN_ID' | 'CRITERIA_LINE_ITEM_ID' — Criteria defines the attributes used to identify duplicate ads. - CRITERIA_DEFAULT: Uses the system default deduplication criteria. Currently defaults to CRITERIA_NONE. - CRITERIA_NONE: Does not deduplicate ads. Basic built-in deduplication always applies at the per_inventory level and cannot be disabled, even with CRITERIA_NONE. Examples include Item ID for DecideAdProducts, Campaign ID for DecideAdBrands and DecideAdDisplay, and Line Item ID for DecideAdReservedDisplay. - CRITERIA_ITEM_ID: Deduplicates ad responses by item ID. Applicable to the DecideAdProducts API only. - CRITERIA_AD_ACCOUNT_ID: Deduplicates ad responses by ad account ID. Applicable to the DecideAdBrands, DecideAdDisplay, and DecideAdReservedDisplay APIs only. - CRITERIA_CAMPAIGN_ID: Deduplicates ad responses by campaign ID. Applicable to the DecideAdBrands and DecideAdDisplay APIs only. - CRITERIA_LINE_ITEM_ID: Deduplicates ad responses by line item ID. Applicable to the DecideAdReservedDisplay API only.
    - `per_inventory` DeduplicationSettingInventoryValue — The per_inventory object defines the deduplication logic within each inventory. It can override the logic defined in per_request to disable deduplication or apply different deduplication criteria within an inventory. Only criteria can be configured at the inventory level.
      - `criteria` 'CRITERIA_DEFAULT' | 'CRITERIA_NONE' | 'CRITERIA_ITEM_ID' | 'CRITERIA_AD_ACCOUNT_ID' | 'CRITERIA_CAMPAIGN_ID' | 'CRITERIA_LINE_ITEM_ID' — Criteria defines the attributes used to identify duplicate ads. - CRITERIA_DEFAULT: Uses the system default deduplication criteria. Currently defaults to CRITERIA_NONE. - CRITERIA_NONE: Does not deduplicate ads. Basic built-in deduplication always applies at the per_inventory level and cannot be disabled, even with CRITERIA_NONE. Examples include Item ID for DecideAdProducts, Campaign ID for DecideAdBrands and DecideAdDisplay, and Line Item ID for DecideAdReservedDisplay. - CRITERIA_ITEM_ID: Deduplicates ad responses by item ID. Applicable to the DecideAdProducts API only. - CRITERIA_AD_ACCOUNT_ID: Deduplicates ad responses by ad account ID. Applicable to the DecideAdBrands, DecideAdDisplay, and DecideAdReservedDisplay APIs only. - CRITERIA_CAMPAIGN_ID: Deduplicates ad responses by campaign ID. Applicable to the DecideAdBrands and DecideAdDisplay APIs only. - CRITERIA_LINE_ITEM_ID: Deduplicates ad responses by line item ID. Applicable to the DecideAdReservedDisplay API only.

## Response `200`

A successful response.

- PublicDecisionDisplayResponse
  - `request_id` string, required — Identical with `request_id` of the corresponding request.
  - `decisions` PublicDisplayDecision[] — The results of display decisions.
    - `inventory_id` string, required
    - `ads` PublicDisplayAd[], required — Ads to be displayed for the inventory.
      - `auction_result` PublicAdAuctionResult — AdAuctionResult contains auction specific information of the ad such as ad_account_id and campaign_id.
        - `ad_account_id` string, required — The ID of the owning ad account. The relationship among platform, ad account, and campaign is explained on https://mcm-docs.moloco.com/docs/2-solution-components. In short, a platform has many sellers, and each seller corresponds to an ad account. One ad account can own many ad campaigns.
        - `campaign_id` string, required — The ID of the owning ad campaign. Refer to ad_account_id for relationship among platforms, ad accounts, and campaigns.
        - `win_price` CommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
          - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
          - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `win_price_advertiser` CommonMoneyMicro — A monetary amount in a specific currency; the unit is micro at fixed point value for accurate accumulation operation. For example, `{"currency": "USD", "amount_micro": "1234"}` means $0.001234.
          - `currency` 'UNKNOWN_CURRENCY' | 'USD' | 'KRW' | 'JPY' | 'EUR' | 'GBP' | 'SEK' | 'INR' | 'THB' | 'IDR' | 'CNY' | 'CAD' | 'RUB' | 'BRL' | 'SGD' | 'HKD' | 'AUD' | 'PLN' | 'DKK' | 'VND' | 'MYR' | 'PHP' | 'TRY' | 'VES' | 'AED' | 'CHF', required — Currency enumerates available currencies. - UNKNOWN_CURRENCY: Unknown currency. - USD: US Dollar. - KRW: Korean Won. - JPY: Japanese Yen. - EUR: EU Euro. - GBP: British Pound. - SEK: Swedish Krona. - INR: India Rupee. - THB: Thailand Baht. - IDR: Indonesia Rupiah. - CNY: China Yuan. - CAD: Canada Dollar. - RUB: Russia Ruble. - BRL: Brazil Real. - SGD: Singapore Dollar. - HKD: Hong Kong Dollar. - AUD: Autrailia Dollar. - PLN: Poland Zloty. - DKK: Denmark Krone. - VND: Viet Nam Dong. - MYR: Malaysia Ringgit. - PHP: Philippines Peso. - TRY: Turkey Lira. - VES: Venezuela Bolívar Soberano. - AED: United Arab Emirates Dirham. - CHF: Swiss Franc.
          - `amount_micro` string, int64, required — Amount in micro unit. (e.g., 1234 means 0.001234)
        - `campaign_metadata` V1CampaignMetadata — Metadata associated with the campaign of a decision result.
          - `ad_operation_type` 'AD_OPERATION_TYPE_DEFAULT' | 'AD_OPERATION_TYPE_SELF_SERVED' | 'AD_OPERATION_TYPE_MANAGED'
          - `alias` string — The alias of the campaign.
          - `ad_payer` string — The ad payer responsible for the campaign.
      - `asset` PublicDecidedAsset — Asset attributes to be displayed in the ad.
        - `id` string, required
        - `banner` PublicDecidedAssetBanner
          - `media_type` 'UNKNOWN_MEDIA_TYPE' | 'IMAGE' | 'VIDEO'
          - `image_url` string — Image URL of the banner. Only filled if banner media type is IMAGE
          - `video_url` string — Video URL of the banner. Only filled if banner media type is VIDEO
          - `video_thumbnail_url` string — Video thumbnail URL of the banner. Only filled if banner media type is VIDEO
        - `logo` DecidedAssetBrandLogo
          - `image_url` string — Image URL of the brand logo.
        - `headline` PublicDecidedAssetHeadline
          - `text` string — Text content of the headline.
        - `cta` PublicDecidedAssetCallToAction
          - `text` string — Text for the CTA button.
        - `imp_trackers` string[], required — Impression tracking links which should be fired when an impression of this item occurs.
        - `click_trackers` string[], required — Click tracking links which should be fired when a click of this item occurs.
        - `track_id` string — Identifier to track the decided item.
      - `landing_page` PublicLandingPage — LandingPage options to be redirected when the asset is clicked.
        - `type` 'UNKNOWN_LANDING_PAGE_TYPE' | 'CUSTOM_URL' | 'PRODUCT_DETAIL' | 'PRODUCT_LIST' | 'NONE', required
        - `custom_url_setting` PublicLandingPageCustomURLSetting — CustomURL option setting indicating the URL to be directed
          - `url` string, required
        - `product_detail_setting` PublicLandingPageProductDetailSetting — ProductDetail option setting indicating which product detail page should be used for redirection.
          - `item_id` string, required
        - `product_list_setting` PublicLandingPageProductListSetting — ProductList option setting indicating that it should render product list page with responded items.
  - `invalid_input_warnings` V1InvalidInputWarning[] — Warnings of the invalid input that are impacting the ads serving
    - `warning_message` string — Warning message of the invalid input.
    - `inventory_id` string — Inventory ID of the invalid input.

## Other responses

- `400` — Bad request. Detailed cause can be found in the response message.
- `401` — Unauthorized. The request does not have valid authentication credentials for the operation.
- `403` — Permission denied. The caller does not have permission to execute the specified operation.
- `404` — Not found. One or more resources required to perform the request does not exist. Detailed cause can be found in the response message.
- `429` — Too many requests either by platform or by user. Detailed cause can be found in the response message.
- `500` — Internal server error. Detailed cause can be found in the response message.

---

[API](https://skmtc.dev/moloco/apis/decision-api.md) · [All operations](https://skmtc.dev/moloco/apis/decision-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/moloco/decision-api/revisions/206968b164e7/schema)
