openapi: 3.0.0 info: title: Decision API description: MOLOCO Cloud RMP Decision API provides the product recommendation service. version: '1.0' contact: name: Moloco Inc. url: https://www.molocoads.com tags: - name: RmpDecisionApi paths: /rmp/decision/v1/platforms/{platform_id}/brand-auction: post: summary: DecideAdBrands description: Request brand ads by auction. Server host may vary by platform. Moloco's staff will provide accurate host information. operationId: RmpDecisionApi_DecideAdBrands responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/publicDecisionBrandsResponse' '400': description: Bad request. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '401': description: Unauthorized. The request does not have valid authentication credentials for the operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '403': description: Permission denied. The caller does not have permission to execute the specified operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '404': description: Not found. One or more resources required to perform the request does not exist. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '429': description: Too many requests either by platform or by user. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '500': description: Internal server error. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: platform_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/publicDecisionBrandsInput' required: true tags: - Decision /rmp/decision/v1/platforms/{platform_id}/display-auction: post: summary: DecideAdDisplay description: Request display ads by auction. Server host may vary by platform. Moloco's staff will provide accurate host information. operationId: RmpDecisionApi_DecideAdDisplay responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/publicDecisionDisplayResponse' '400': description: Bad request. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '401': description: Unauthorized. The request does not have valid authentication credentials for the operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '403': description: Permission denied. The caller does not have permission to execute the specified operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '404': description: Not found. One or more resources required to perform the request does not exist. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '429': description: Too many requests either by platform or by user. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '500': description: Internal server error. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: platform_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/publicDecisionDisplayInput' required: true tags: - Decision /rmp/decision/v1/platforms/{platform_id}/product-auction: post: summary: DecideAdProducts description: Request product ads by auction. Server host may vary by platform. Moloco's staff will provide accurate host information. operationId: RmpDecisionApi_DecideAdProducts responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/publicDecisionProductsResponse' '400': description: Bad request. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '401': description: Unauthorized. The request does not have valid authentication credentials for the operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '403': description: Permission denied. The caller does not have permission to execute the specified operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '404': description: Not found. One or more resources required to perform the request does not exist. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '429': description: Too many requests either by platform or by user. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '500': description: Internal server error. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: platform_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/publicDecisionProductsInput' required: true tags: - Decision /rmp/decision/v1/platforms/{platform_id}/reserved-display-ads: post: summary: DecideAdReservedDisplay description: Request reserved display ads. Server host may vary by platform. Moloco's staff will provide accurate host information. operationId: RmpDecisionApi_DecideAdReservedDisplay responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/publicDecisionReservedDisplayResponse' '400': description: Bad request. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '401': description: Unauthorized. The request does not have valid authentication credentials for the operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '403': description: Permission denied. The caller does not have permission to execute the specified operation. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '404': description: Not found. One or more resources required to perform the request does not exist. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '429': description: Too many requests either by platform or by user. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' '500': description: Internal server error. Detailed cause can be found in the response message. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: platform_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/publicDecisionReservedDisplayInput' required: true tags: - Decision security: - ApiKeyAuth: [] x-readme: explorer-enabled: true servers: - url: https://sandbox-dcsn.mcm-api.moloco.com components: securitySchemes: ApiKeyAuth: type: apiKey name: x-api-key in: header schemas: BulkCreativeAuctionResultCreative: type: object properties: banner: $ref: '#/components/schemas/decisionv1Banner' additionalProperties: true CampaignMetadataAdOperationType: type: string enum: - AD_OPERATION_TYPE_DEFAULT - AD_OPERATION_TYPE_SELF_SERVED - AD_OPERATION_TYPE_MANAGED default: AD_OPERATION_TYPE_DEFAULT CustomItemContext: type: object properties: shipping_charge: $ref: '#/components/schemas/commonMoneyMicro' distance: type: number format: float description: Distance to the user from where this specific item is located. There is no requirement on the unit of distance as long as the implied unit is consistently used when communicating with Moloco. discount: $ref: '#/components/schemas/commonDiscount' additionalProperties: true CustomItemPoolCustomItem: type: object properties: id: type: string description: Required. ID of the item. context: $ref: '#/components/schemas/CustomItemContext' score: $ref: '#/components/schemas/CustomItemScore' description: Information of the item from the pool. required: - id additionalProperties: true CustomItemScore: type: object properties: quality_score: type: number format: float description: Platform-defined quality score for items in the pool, based on its relevance to the request. To use this feature, each item in the custom item pool requires this score, between 0 and 1, which helps determine the adRank. additionalProperties: true DecidedAssetBrandLogo: type: object properties: image_url: type: string description: Image URL of the brand logo. additionalProperties: true DeduplicationSettingCriteria: type: string enum: - CRITERIA_DEFAULT - CRITERIA_NONE - CRITERIA_ITEM_ID - CRITERIA_AD_ACCOUNT_ID - CRITERIA_CAMPAIGN_ID - CRITERIA_LINE_ITEM_ID default: CRITERIA_DEFAULT description: "Criteria defines the attributes used to identify duplicate ads.\n\n - CRITERIA_DEFAULT: Uses the system\ \ default deduplication criteria. Currently defaults to CRITERIA_NONE.\n - 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.\n - CRITERIA_ITEM_ID: Deduplicates ad responses by item ID. Applicable to the DecideAdProducts\ \ API only.\n - CRITERIA_AD_ACCOUNT_ID: Deduplicates ad responses by ad account ID. Applicable to the DecideAdBrands,\ \ DecideAdDisplay, and DecideAdReservedDisplay APIs only.\n - CRITERIA_CAMPAIGN_ID: Deduplicates ad responses by campaign\ \ ID. Applicable to the DecideAdBrands and DecideAdDisplay APIs only.\n - CRITERIA_LINE_ITEM_ID: Deduplicates ad responses\ \ by line item ID. Applicable to the DecideAdReservedDisplay API only." DeduplicationSettingInventoryValue: type: object properties: criteria: $ref: '#/components/schemas/DeduplicationSettingCriteria' description: 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. additionalProperties: true DeduplicationSettingMethod: type: string enum: - METHOD_DEFAULT - METHOD_WATERFALL - METHOD_INTERLEAVED default: METHOD_DEFAULT description: "Method defines how duplicate ads are resolved.\n\n - METHOD_DEFAULT: Uses the system default deduplication\ \ method. Currently defaults to METHOD_WATERFALL.\n - 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.\n - 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." DeduplicationSettingRequestValue: type: object properties: method: $ref: '#/components/schemas/DeduplicationSettingMethod' criteria: $ref: '#/components/schemas/DeduplicationSettingCriteria' description: 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. additionalProperties: true FilteringAgeGroup: type: object properties: age_groups: type: array items: type: string description: Required. Only ads matching any of the given age groups will be served. description: This field is used to filter ads based on age groups. required: - age_groups additionalProperties: true FilteringBrand: type: object properties: brand_id: type: string description: Deprecated. Only ads matching the brand id will be served. Please provide only one of brand_id or brand_ids. brand_ids: type: array items: type: string description: Required. Only ads matching any of the given brand ids will be served. Please provide only one of brand_id or brand_ids. description: This field is used to filter ads based on brand. additionalProperties: true FilteringCategory: type: object properties: operator: $ref: '#/components/schemas/FilteringOperator' categories: type: array items: type: string description: Required. Only ads matching the given category filtering option will be served. description: This field is used to filter ads based on categories. required: - categories additionalProperties: true FilteringColor: type: object properties: colors: type: array items: type: string description: Required. Only ads matching any of the given the colors will be served. description: This field is used to filter ads based on colors. required: - colors additionalProperties: true FilteringCondition: type: object properties: conditions: type: array items: type: string description: Required. Only ads matching any of the given conditions will be served. description: This field is used to filter ads based on conditions. required: - conditions additionalProperties: true FilteringDelivery: type: object properties: delivery_option: type: string description: Deprecated. Only ads matching the delivery option will be served. delivery_options: type: array items: type: string description: Required. Only ads matching any of the given delivery options will be served. Please provide only one of delivery_option or delivery_options. description: This field is used to filter ads based on delivery. additionalProperties: true FilteringGender: type: object properties: genders: type: array items: type: string description: Required. Only ads matching any of the given genders will be served. description: This field is used to filter ads based on genders. required: - genders additionalProperties: true FilteringMaterial: type: object properties: materials: type: array items: type: string description: Required. Only ads matching any of the given materials will be served. description: This field is used to filter ads based on materials. required: - materials additionalProperties: true FilteringOperator: type: string enum: - OR - AND default: OR FilteringPattern: type: object properties: patterns: type: array items: type: string description: Required. Only ads matching any of the given patterns will be served. description: This field is used to filter ads based on patterns. required: - patterns additionalProperties: true FilteringPrice: type: object properties: min_price: type: number format: double description: Required. Only ads with price greater than or equal to min_price will be served. Prices are in platform's default currency. max_price: type: number format: double description: Required. Only ads with price less than or equal to max_price will be served. Prices are in platform's default currency. description: This field is used to filter ads based on price. required: - min_price - max_price additionalProperties: true FilteringRating: type: object properties: min: type: number format: double description: Required. Only ads with rating greater than or equal to min rating will be served. max: type: number format: double description: Required. Only ads with rating less than or equal to max rating will be served. description: This field is used to filter ads based on rating. required: - min - max additionalProperties: true FilteringReviewCount: type: object properties: min: type: number format: double description: Required. Only ads with review count greater than or equal to min review_count will be served. max: type: number format: double description: Required. Only ads with review count less than or equal to max review_count will be served. description: This field is used to filter ads based on review count. required: - min - max additionalProperties: true FilteringSalePrice: type: object properties: min_sale_price: type: number format: double description: Required. Only ads with sale price greater than or equal to min_sale_price will be served. Prices are in platform's default currency. max_sale_price: type: number format: double description: Required. Only ads with sale price less than or equal to max_sale_price will be served. Prices are in platform's default currency. description: This field is used to filter ads based on sale price. required: - min_sale_price - max_sale_price additionalProperties: true FilteringSize: type: object properties: sizes: type: array items: type: string description: Required. Only ads matching any of the given sizes will be served. description: This field is used to filter ads based on sizes. required: - sizes additionalProperties: true TargetingKeyValue: type: object properties: key_id: type: string description: Key ID for the request value_ids: type: array items: type: string description: Value IDs for the key description: Key value sets for the ad request required: - key_id additionalProperties: true commonChannelType: type: string enum: - UNKNOWN_CHANNEL_TYPE - APP - SITE - DESKTOP_SITE - MOBILE_SITE default: UNKNOWN_CHANNEL_TYPE description: "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.\n\n - APP: Mobile App (iOS or Android)\n - SITE: Site (e.g.\ \ Website)\n - DESKTOP_SITE: Desktop Site (e.g. Desktop Website)\n - MOBILE_SITE: Mobile Site (e.g. Mobile Website)" commonCurrency: type: string enum: - 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 default: UNKNOWN_CURRENCY description: "Currency enumerates available currencies.\n\n - UNKNOWN_CURRENCY: Unknown currency.\n - USD: US Dollar.\n\ \ - KRW: Korean Won.\n - JPY: Japanese Yen.\n - EUR: EU Euro.\n - GBP: British Pound.\n - SEK: Swedish Krona.\n -\ \ INR: India Rupee.\n - THB: Thailand Baht.\n - IDR: Indonesia Rupiah.\n - CNY: China Yuan.\n - CAD: Canada Dollar.\n\ \ - RUB: Russia Ruble.\n - BRL: Brazil Real.\n - SGD: Singapore Dollar.\n - HKD: Hong Kong Dollar.\n - AUD: Autrailia\ \ Dollar.\n - PLN: Poland Zloty.\n - DKK: Denmark Krone.\n - VND: Viet Nam Dong.\n - MYR: Malaysia Ringgit.\n - PHP:\ \ Philippines Peso.\n - TRY: Turkey Lira.\n - VES: Venezuela Bolívar Soberano.\n - AED: United Arab Emirates Dirham.\n\ \ - CHF: Swiss Franc." commonDiscount: type: object properties: rate: type: number format: float description: Discount rate for the item (e.g., 0.15 for 15% discount). Applied before price_amount if both are non-zero. price_amount: $ref: '#/components/schemas/commonMoneyMicro' description: Discount from the original price defined either using rate or a price amount, or both. additionalProperties: true commonMediaType: type: string enum: - UNKNOWN_MEDIA_TYPE - IMAGE - VIDEO default: UNKNOWN_MEDIA_TYPE commonMoneyMicro: type: object properties: currency: $ref: '#/components/schemas/commonCurrency' amount_micro: type: string format: int64 description: Amount in micro unit. (e.g., 1234 means 0.001234) description: '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.' required: - currency - amount_micro additionalProperties: true commonPersonalizationMode: type: string enum: - UNKNOWN_PERSONALIZATION_MODE - STANDARD - METRIC_ONLY - ID_LESS default: UNKNOWN_PERSONALIZATION_MODE description: "PersonalizationMode determines how user identification is handled in decision and event processing.\n\n\ \ - STANDARD: STANDARD means standard user processing with full user identification.\n - METRIC_ONLY: METRIC_ONLY\ \ means user data is used for metric collection only, not for personalization.\n - ID_LESS: ID_LESS means no user\ \ identification is used." commonVideoFormat: type: string enum: - UNKNOWN_VIDEO_FORMAT - MP4_360P - MP4_720P - HLS default: UNKNOWN_VIDEO_FORMAT description: VideoFormat enumerates the video format to be responded from the decision. decisionv1Banner: type: object properties: creative_id: type: string description: Identifier to track the decided creative. image_url: type: string description: Image URL of the creative. imp_trackers: type: array items: type: string description: Impression tracking links which should be fired when an impression of this creative occurs. click_trackers: type: array items: type: string description: Click tracking links which should be fired when a click of this creative occurs. description: Banner to show in the requested inventory. required: - creative_id - image_url - imp_trackers - click_trackers additionalProperties: true protobufAny: type: object properties: '@type': type: string additionalProperties: {} publicAdAuctionResult: type: object properties: ad_account_id: type: string description: 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: type: string description: The ID of the owning ad campaign. Refer to ad_account_id for relationship among platforms, ad accounts, and campaigns. win_price: $ref: '#/components/schemas/commonMoneyMicro' win_price_advertiser: $ref: '#/components/schemas/commonMoneyMicro' campaign_metadata: $ref: '#/components/schemas/v1CampaignMetadata' description: AdAuctionResult contains auction specific information of the ad such as ad_account_id and campaign_id. required: - ad_account_id - campaign_id additionalProperties: true publicBrandAd: type: object properties: auction_result: $ref: '#/components/schemas/publicAdAuctionResult' asset: $ref: '#/components/schemas/publicDecidedAsset' landing_page: $ref: '#/components/schemas/publicLandingPage' items: type: array items: $ref: '#/components/schemas/publicBrandItem' description: Items to be displayed. description: Ad components to be displayed for the inventory. additionalProperties: true publicBrandDecision: type: object properties: inventory_id: type: string ads: type: array items: $ref: '#/components/schemas/publicBrandAd' description: Ads to be displayed for the inventory. required: - inventory_id - ads additionalProperties: true publicBrandItem: type: object properties: item_id: type: string description: The item id specified in the client's catalog. imp_trackers: type: array items: type: string description: Impression tracking links which should be fired when an impression of this item occurs. click_trackers: type: array items: type: string description: Click tracking links which should be fired when a click of this item occurs. track_id: type: string description: Identifier to track the decided item. description: Item which may display along with the asset required: - item_id - imp_trackers - click_trackers additionalProperties: true publicBulkCreativeAuctionResult: type: object properties: inventory_id: type: string auction_result: $ref: '#/components/schemas/v1CreativeAuctionResult' creatives: type: array items: $ref: '#/components/schemas/BulkCreativeAuctionResultCreative' description: The creative information by winning the auction. items: type: array items: $ref: '#/components/schemas/v1CreativeItem' description: Decided Items by winning the auction. additionalProperties: true publicDecidedAsset: type: object properties: id: type: string banner: $ref: '#/components/schemas/publicDecidedAssetBanner' logo: $ref: '#/components/schemas/DecidedAssetBrandLogo' headline: $ref: '#/components/schemas/publicDecidedAssetHeadline' cta: $ref: '#/components/schemas/publicDecidedAssetCallToAction' imp_trackers: type: array items: type: string description: Impression tracking links which should be fired when an impression of this item occurs. click_trackers: type: array items: type: string description: Click tracking links which should be fired when a click of this item occurs. track_id: type: string description: Identifier to track the decided item. description: Asset attributes to be displayed in the ad. required: - id - imp_trackers - click_trackers additionalProperties: true publicDecidedAssetBanner: type: object properties: media_type: $ref: '#/components/schemas/commonMediaType' image_url: type: string description: Image URL of the banner. Only filled if banner media type is IMAGE video_url: type: string description: Video URL of the banner. Only filled if banner media type is VIDEO video_thumbnail_url: type: string description: Video thumbnail URL of the banner. Only filled if banner media type is VIDEO additionalProperties: true publicDecidedAssetCallToAction: type: object properties: text: type: string description: Text for the CTA button. additionalProperties: true publicDecidedAssetHeadline: type: object properties: text: type: string description: Text content of the headline. additionalProperties: true publicDecidedReservedAsset: type: object properties: id: type: string banner: $ref: '#/components/schemas/publicDecidedReservedAssetBanner' custom_text: $ref: '#/components/schemas/publicDecidedReservedAssetCustomText' headline: $ref: '#/components/schemas/publicDecidedReservedAssetHeadline' metadata: $ref: '#/components/schemas/publicDecidedReservedAssetMetadata' imp_trackers: type: array items: type: string description: Impression tracking links which should be fired when an impression of this item occurs. click_trackers: type: array items: type: string description: Click tracking links which should be fired when a click of this item occurs. track_id: type: string description: Identifier to track the reserved asset description: Asset attributes to be displayed in the ad. required: - id - imp_trackers - click_trackers additionalProperties: true publicDecidedReservedAssetBanner: type: object properties: media_type: $ref: '#/components/schemas/commonMediaType' image_url: type: string description: Image URL of the banner. Only filled if banner media type is IMAGE alt_text: type: string description: Alternative text for the banner image. additionalProperties: true publicDecidedReservedAssetCustomText: type: object properties: text: type: string description: Text content of the custom text. color: type: string description: Color of the custom text. background_color: type: string description: Background color of the custom text. display_title: type: string description: Display title for the custom text field, defined by the platform. additionalProperties: true publicDecidedReservedAssetHeadline: type: object properties: text: type: string description: Text content of the headline. color: type: string description: Color of the headline. background_color: type: string description: Background color of the headline. display_title: type: string description: Display title for the headline field, defined by the platform. additionalProperties: true publicDecidedReservedAssetMetadata: type: object properties: attributes: type: object additionalProperties: type: string description: Key-value metadata attributes. additionalProperties: true publicDecisionBrandsInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' inventories: type: array items: $ref: '#/components/schemas/v1BrandInventory' description: List of ad inventories (placements) to request decisions for. Each inventory represents a placement where ads can be displayed. page_id: type: string description: "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. \nIf 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: $ref: '#/components/schemas/commonPersonalizationMode' response_setting: $ref: '#/components/schemas/v1CampaignResponseSetting' deduplication_setting: $ref: '#/components/schemas/v1DeduplicationSetting' description: Request body for decisions. required: - request_id - inventories additionalProperties: true publicDecisionBrandsResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding request. decisions: type: array items: $ref: '#/components/schemas/publicBrandDecision' description: The results of brand decisions. invalid_input_warnings: type: array items: $ref: '#/components/schemas/v1InvalidInputWarning' description: Warnings of the invalid input that are impacting the ads serving required: - request_id additionalProperties: true publicDecisionCreativeBulkInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' inventories: type: array items: $ref: '#/components/schemas/v1AdInventory' description: Inventories where decided creatives and items will be displayed. page_id: type: string description: "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. \nIf 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." filtering: $ref: '#/components/schemas/v1Filtering' description: Request body for bulk creative decision. required: - request_id - inventories additionalProperties: true publicDecisionCreativeBulkResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding `DecisionCreativeBulkRequest`. results: type: array items: $ref: '#/components/schemas/publicBulkCreativeAuctionResult' description: The results of creative auction. required: - request_id additionalProperties: true publicDecisionCreativeInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' inventory: $ref: '#/components/schemas/v1AdInventory' page_id: type: string description: "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. \nIf 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." filtering: $ref: '#/components/schemas/v1Filtering' description: Request body for creative decision. required: - request_id - inventory additionalProperties: true publicDecisionCreativeResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding `DecisionCreativeRequest`. auction_result: $ref: '#/components/schemas/v1CreativeAuctionResult' banner: $ref: '#/components/schemas/decisionv1Banner' items: type: array items: $ref: '#/components/schemas/v1CreativeItem' description: Items recommended by winning the auction. required: - request_id additionalProperties: true publicDecisionDisplayInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' inventories: type: array items: $ref: '#/components/schemas/v1AdInventory' description: List of ad inventories (placements) to request decisions for. Each inventory represents a placement where ads can be displayed. page_id: type: string description: "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. \nIf 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: $ref: '#/components/schemas/commonPersonalizationMode' response_setting: $ref: '#/components/schemas/v1CampaignResponseSetting' deduplication_setting: $ref: '#/components/schemas/v1DeduplicationSetting' description: Request body for decision display. required: - request_id - inventories additionalProperties: true publicDecisionDisplayResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding request. decisions: type: array items: $ref: '#/components/schemas/publicDisplayDecision' description: The results of display decisions. invalid_input_warnings: type: array items: $ref: '#/components/schemas/v1InvalidInputWarning' description: Warnings of the invalid input that are impacting the ads serving required: - request_id additionalProperties: true publicDecisionInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' inventory: $ref: '#/components/schemas/v1Inventory' page_id: type: string description: "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. \nIf 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." custom_item_pool: $ref: '#/components/schemas/v1CustomItemPool' filtering: $ref: '#/components/schemas/v1Filtering' description: Request body for product decision. required: - request_id - inventory additionalProperties: true publicDecisionProductsInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' session_id: type: string description: Deprecated. Unique identifier for tracking users regardless of sign-in status. maxLength: 128 custom_id: type: string description: 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. maxLength: 128 inventories: type: array items: $ref: '#/components/schemas/v1ProductInventory' channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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. page_id: type: string description: "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. \nIf 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." deduplication_setting: $ref: '#/components/schemas/v1DeduplicationSetting' personalization_mode: $ref: '#/components/schemas/commonPersonalizationMode' response_setting: $ref: '#/components/schemas/v1CampaignResponseSetting' description: Request body for product decision. required: - request_id - inventories additionalProperties: true publicDecisionProductsResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding request. decisions: type: array items: $ref: '#/components/schemas/publicProductDecision' description: The results of product decisions. invalid_input_warnings: type: array items: $ref: '#/components/schemas/v1InvalidInputWarning' description: Warnings of the invalid input that are impacting the ads serving required: - request_id additionalProperties: true publicDecisionRecommendationResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding `DecisionRequest`. decided_items: type: array items: $ref: '#/components/schemas/v1DecidedRecommendationItem' description: Items recommended by the recommendation. invalid_input_warnings: type: array items: $ref: '#/components/schemas/v1InvalidInputWarning' description: Warnings of the invalid input that are impacting the ads serving required: - request_id - decided_items additionalProperties: true publicDecisionReservedDisplayInput: type: object properties: request_id: type: string description: Unique identifier of the request. The client is responsible to create this value. maxLength: 128 user: $ref: '#/components/schemas/v1User' device: $ref: '#/components/schemas/v1Device' custom_id: type: string description: 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. maxLength: 128 inventories: type: array items: $ref: '#/components/schemas/v1ReservedDisplayInventory' channel_type: $ref: '#/components/schemas/commonChannelType' domain: type: string description: 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. page_id: type: string description: "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. \nIf 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: $ref: '#/components/schemas/commonPersonalizationMode' response_setting: $ref: '#/components/schemas/v1LineItemResponseSetting' deduplication_setting: $ref: '#/components/schemas/v1DeduplicationSetting' description: Request body for reserved display ads decision. required: - request_id - inventories additionalProperties: true publicDecisionReservedDisplayResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding request. decisions: type: array items: $ref: '#/components/schemas/publicReservedDisplayDecision' description: The results of reserved display decisions. invalid_input_warnings: type: array items: $ref: '#/components/schemas/v1InvalidInputWarning' description: Warnings of the invalid input that are impacting the ads serving required: - request_id additionalProperties: true publicDecisionResponse: type: object properties: request_id: type: string description: Identical with `request_id` of the corresponding `DecisionRequest`. decided_items: type: array items: $ref: '#/components/schemas/v1DecidedItem' description: Items recommended by the recommendation or winning the auction. required: - request_id - decided_items additionalProperties: true publicDisplayAd: type: object properties: auction_result: $ref: '#/components/schemas/publicAdAuctionResult' asset: $ref: '#/components/schemas/publicDecidedAsset' landing_page: $ref: '#/components/schemas/publicLandingPage' description: Ad components to be displayed for the inventory. additionalProperties: true publicDisplayDecision: type: object properties: inventory_id: type: string ads: type: array items: $ref: '#/components/schemas/publicDisplayAd' description: Ads to be displayed for the inventory. required: - inventory_id - ads additionalProperties: true publicLandingPage: type: object properties: type: $ref: '#/components/schemas/v1publicCampaignLandingPageType' custom_url_setting: $ref: '#/components/schemas/publicLandingPageCustomURLSetting' product_detail_setting: $ref: '#/components/schemas/publicLandingPageProductDetailSetting' product_list_setting: $ref: '#/components/schemas/publicLandingPageProductListSetting' description: LandingPage options to be redirected when the asset is clicked. required: - type additionalProperties: true publicLandingPageCustomURLSetting: type: object properties: url: type: string description: CustomURL option setting indicating the URL to be directed required: - url additionalProperties: true publicLandingPageProductDetailSetting: type: object properties: item_id: type: string description: ProductDetail option setting indicating which product detail page should be used for redirection. required: - item_id additionalProperties: true publicLandingPageProductListSetting: type: object description: ProductList option setting indicating that it should render product list page with responded items. additionalProperties: true publicProductDecision: type: object properties: inventory_id: type: string description: Inventory ID which requested ads. decided_items: type: array items: $ref: '#/components/schemas/v1DecidedProduct' description: Product ads to be displayed for the inventory. required: - inventory_id additionalProperties: true publicReservedDisplayAd: type: object properties: asset: $ref: '#/components/schemas/publicDecidedReservedAsset' landing_page: $ref: '#/components/schemas/publicReservedLandingPage' ad_info: $ref: '#/components/schemas/v1ReservedDisplayAdInfo' description: Reserved ad components to be displayed for the inventory. additionalProperties: true publicReservedDisplayDecision: type: object properties: inventory_id: type: string description: Inventory ID which requested ads. ads: type: array items: $ref: '#/components/schemas/publicReservedDisplayAd' description: Reserved ads to be displayed for the inventory. required: - inventory_id additionalProperties: true publicReservedLandingPage: type: object properties: type: $ref: '#/components/schemas/v1publicCampaignLandingPageType' custom_url_setting: $ref: '#/components/schemas/publicReservedLandingPageCustomURLSetting' description: LandingPage options to be redirected when the asset is clicked. required: - type additionalProperties: true publicReservedLandingPageCustomURLSetting: type: object properties: url: type: string description: CustomURL option setting indicating the URL to be directed required: - url additionalProperties: true rpcStatus: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: $ref: '#/components/schemas/protobufAny' additionalProperties: true v1AdInventory: type: object properties: inventory_id: type: string description: 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: type: integer format: int32 description: Optional. Number of ads requested for the inventory. 1 by default. items: type: array items: type: string description: 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: type: array items: type: string description: '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: type: string description: Search query string. It should be provided if the page of serving inventory is a search result page. video: $ref: '#/components/schemas/v1VideoInventory' targeting: $ref: '#/components/schemas/v1Targeting' description: Inventory where the creative ad will be displayed. required: - inventory_id additionalProperties: true v1BrandInventory: type: object properties: inventory_id: type: string description: 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: type: integer format: int32 description: Optional. Number of ads requested for the inventory. 1 by default. items: type: array items: type: string description: 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: type: array items: type: string description: '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: type: string description: Search query string. It should be provided if the page of serving inventory is a search result page. video: $ref: '#/components/schemas/v1VideoInventory' targeting: $ref: '#/components/schemas/v1Targeting' filtering: $ref: '#/components/schemas/v1Filtering' description: Inventory where the brand ad will be displayed. required: - inventory_id additionalProperties: true v1CampaignMetadata: type: object properties: ad_operation_type: $ref: '#/components/schemas/CampaignMetadataAdOperationType' alias: type: string description: The alias of the campaign. ad_payer: type: string description: The ad payer responsible for the campaign. description: Metadata associated with the campaign of a decision result. additionalProperties: true v1CampaignMetadataField: type: string enum: - FIELD_UNKNOWN - AD_OPERATION_TYPE - ALIAS - AD_PAYER default: FIELD_UNKNOWN v1CampaignResponseSetting: type: object properties: campaign_metadata_fields: type: array example: - AD_OPERATION_TYPE - ALIAS items: $ref: '#/components/schemas/v1CampaignMetadataField' description: List of campaign metadata fields to return. additionalProperties: true v1CreativeAuctionResult: type: object properties: ad_account_id: type: string description: 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: type: string description: The ID of the owning ad campaign. Refer to ad_account_id for relationship among platforms, ad accounts, and campaigns. win_price: $ref: '#/components/schemas/commonMoneyMicro' description: AuctionResult contains auction specific information of the creative ad such as ad_account_id and campaign_id. required: - ad_account_id - campaign_id additionalProperties: true v1CreativeItem: type: object properties: item_id: type: string description: Identifier to decided item. imp_trackers: type: array items: type: string description: Impression tracking links which should be fired when an impression of this item occurs. click_trackers: type: array items: type: string description: Click tracking links which should be fired when a click of this item occurs. description: Item which may display along with the creative ad or in the landing page. required: - item_id - imp_trackers - click_trackers additionalProperties: true v1CustomItemPool: type: object properties: items: type: array items: $ref: '#/components/schemas/CustomItemPoolCustomItem' description: Items in the pool. description: 'Using this field requires internal setup for the inventory so please contact your representative before using this. If specified, Decision API picks the most relevant items from the item pool. So the response.decided_items will be a subset of the given items.' required: - items additionalProperties: true v1DecidedItem: type: object properties: item_id: type: string description: The item id specified in the client's catalog. auction_result: $ref: '#/components/schemas/v1DecidedItemAuctionResult' imp_trackers: type: array items: type: string description: Impression tracker is a URL attached for each returned item. Whenever the ad is displayed on a webpage or app, the URL records an "impression" by sending a signal back to Moloco's tracking system. This helps advertisers track how many times their ads are seen, even if users don't click on them. click_trackers: type: array items: type: string description: Click tracker is a URL attached for each returned item. When a user clicks on the ad, the URL registers the click and sends data back to the Moloco's tracking system. This data helps advertisers understand how many users are clicking on their ads and where the clicks are coming from. track_id: type: string description: Identifier to track the decided item. description: DecidedItem represents either a recommended item for recommendation request or a winning item for auction request. required: - item_id - imp_trackers - click_trackers additionalProperties: true v1DecidedItemAuctionResult: type: object properties: ad_account_id: type: string description: 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: type: string description: The ID of the owning ad campaign. Refer to ad_account_id for relationship among platforms, ad accounts, and campaigns. win_price: $ref: '#/components/schemas/commonMoneyMicro' description: AuctionResult contains auction specific information of the item such as ad_account_id and campaign_id. required: - ad_account_id - campaign_id additionalProperties: true v1DecidedProduct: type: object properties: item_id: type: string description: The item id specified in the client's catalog. auction_result: $ref: '#/components/schemas/v1DecidedProductAuctionResult' imp_trackers: type: array items: type: string description: Impression tracker is a URL attached for each returned item. Whenever the ad is displayed on a webpage or app, the URL records an "impression" by sending a signal back to Moloco's tracking system. This helps advertisers track how many times their ads are seen, even if users don't click on them. click_trackers: type: array items: type: string description: Click tracker is a URL attached for each returned item. When a user clicks on the ad, the URL registers the click and sends data back to the Moloco's tracking system. This data helps advertisers understand how many users are clicking on their ads and where the clicks are coming from. track_id: type: string description: Identifier to track the decided item. description: DecidedProduct represents a winning product ad for a DecideAdProduct request. required: - item_id - imp_trackers - click_trackers additionalProperties: true v1DecidedProductAuctionResult: type: object properties: ad_account_id: type: string description: 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: type: string description: The ID of the owning ad campaign. Refer to ad_account_id for relationship among platforms, ad accounts, and campaigns. win_price: $ref: '#/components/schemas/commonMoneyMicro' campaign_metadata: $ref: '#/components/schemas/v1CampaignMetadata' win_price_advertiser: $ref: '#/components/schemas/commonMoneyMicro' description: AuctionResult contains auction specific information of the item such as ad_account_id and campaign_id. required: - ad_account_id - campaign_id additionalProperties: true v1DecidedRecommendationItem: type: object properties: item_id: type: string description: The item id specified in the client's catalog. imp_trackers: type: array items: type: string description: Impression tracker is a URL attached to each returned item. When the item is displayed on a webpage or app, the URL records an "impression" by sending a signal back to Moloco's tracking system. This helps track how many times the items are seen, even if users don't click on them. click_trackers: type: array items: type: string description: Click tracker is a URL attached to each returned item. When a user clicks on the item, the URL registers the click and sends data back to the Moloco's tracking system. This data helps to understand how many users are clicking on the items and where the clicks are coming from. track_id: type: string description: Identifier to track the decided item. description: DecidedItem represents either a recommended item for recommendation request or a winning item for auction request. required: - item_id - imp_trackers - click_trackers additionalProperties: true v1DeduplicationSetting: type: object properties: per_request: $ref: '#/components/schemas/DeduplicationSettingRequestValue' per_inventory: $ref: '#/components/schemas/DeduplicationSettingInventoryValue' description: The response deduplication setting for this decision request. additionalProperties: true v1Device: type: object properties: os: type: string description: 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: type: string description: OS version which is taken from the device without manipulation or normalization. (e.g., "14.4.1") advertising_id: type: string description: 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: type: string description: 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. maxLength: 128 model: type: string description: Device model, which is taken from the device without manipulation or normalization. (e.g., "iPhone 11 Pro") persistent_id: type: string description: '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' maxLength: 128 additionalProperties: true v1Filtering: type: object properties: category: $ref: '#/components/schemas/FilteringCategory' location: $ref: '#/components/schemas/v1FilteringLocation' brand: $ref: '#/components/schemas/FilteringBrand' delivery: $ref: '#/components/schemas/FilteringDelivery' price: $ref: '#/components/schemas/FilteringPrice' sale_price: $ref: '#/components/schemas/FilteringSalePrice' rating: $ref: '#/components/schemas/FilteringRating' review_count: $ref: '#/components/schemas/FilteringReviewCount' color: $ref: '#/components/schemas/FilteringColor' gender: $ref: '#/components/schemas/FilteringGender' size: $ref: '#/components/schemas/FilteringSize' material: $ref: '#/components/schemas/FilteringMaterial' pattern: $ref: '#/components/schemas/FilteringPattern' condition: $ref: '#/components/schemas/FilteringCondition' age_group: $ref: '#/components/schemas/FilteringAgeGroup' description: This field is used to filter ads based on a variety of criteria. Multiple filtering criteria are considered in an AND relationship. This means that an ad must meet all of the filtering criteria in order to be displayed. We support up to 5 simultaneous filtering criteria. additionalProperties: true v1FilteringLocation: type: object properties: locations: type: array items: type: string description: 'Each location is defined using a multi-level hierarchy, such as US>CA>Redwood. The list of locations provided is combined using OR logic to form a union, which is then used for location-based filtering. For example, if an ad is configured to show only to users in US > CA, and the incoming location values are {"US>CA", "US>WA"}, the ad will match. However, if the values are {"US>NY", "US>WA"}, the ad will not match because neither of them meets the filter condition. When an ad request includes a location filter, it will match not only that location but also all of its sub-locations. For example, if the request specifies "US>WA", it will match items in "US>WA>Seattle”" or "US>WA>Bellevue". This is because broader locations automatically include everything nested underneath them.' description: This field is used to filter ads based on locations. required: - locations additionalProperties: true v1InvalidInputWarning: type: object properties: warning_message: type: string description: Warning message of the invalid input. inventory_id: type: string description: Inventory ID of the invalid input. description: InvalidInputWarning contains warning information of the invalid input but not critical to the ads serving. additionalProperties: true v1Inventory: type: object properties: inventory_id: type: string description: A unique identifier for the inventory that the platform manages. This will be used to calculate metrics per inventory. num_items: type: integer format: int32 description: Number of items requested for the inventory. It's highly recommended not to set this greater than 50. items: type: array items: type: string description: 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: type: array items: type: string description: '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: type: string description: Search query string. It should be provided if the page of serving inventory is a search result page. search_metadata: $ref: '#/components/schemas/v1SearchMetadata' description: Inventory where decided items will be displayed. required: - inventory_id - num_items additionalProperties: true v1InventoryItem: type: object properties: item_id: type: string item_group_id: type: string description: Item on the inventory page. e.g., Item being shown in a product detail page. required: - item_id additionalProperties: true v1LineItemMetadata: type: object properties: alias: type: string description: The alias of the line item. ad_payer: type: string description: The ad payer responsible for the line item. description: Metadata associated with the line item of a decision result. additionalProperties: true v1LineItemMetadataField: type: string enum: - FIELD_UNKNOWN - ALIAS - AD_PAYER default: FIELD_UNKNOWN v1LineItemResponseSetting: type: object properties: line_item_metadata_fields: type: array example: - ALIAS - AD_PAYER items: $ref: '#/components/schemas/v1LineItemMetadataField' description: List of line item metadata fields to return. additionalProperties: true v1ProductInventory: type: object properties: inventory_id: type: string description: 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: type: integer format: int32 description: Number of ads requested for the inventory. inventory_items: type: array items: $ref: '#/components/schemas/v1InventoryItem' description: The contextual item information. e.g., An item being shown in a product detail page. categories: type: array items: type: string description: '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: type: string description: Search query string. It should be provided if the page of serving inventory is a search result page. search_metadata: $ref: '#/components/schemas/v1SearchMetadata' custom_item_pool: $ref: '#/components/schemas/v1CustomItemPool' filtering: $ref: '#/components/schemas/v1Filtering' targeting: $ref: '#/components/schemas/v1Targeting' description: Inventory where the ads will be displayed. required: - inventory_id additionalProperties: true v1ReservedDisplayAdInfo: type: object properties: ad_account_id: type: string line_item_id: type: string order_id: type: string description: The ID of the order associated with the reserved display ad. line_item_metadata: $ref: '#/components/schemas/v1LineItemMetadata' description: Ad information for the reserved display ad. required: - ad_account_id - line_item_id - order_id additionalProperties: true v1ReservedDisplayInventory: type: object properties: inventory_id: type: string description: 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. targeting: $ref: '#/components/schemas/v1Targeting' num_ads: type: integer format: int32 description: Optional. Number of ads requested for the inventory. 1 by default. description: Inventory where reserved display ads will be displayed. required: - inventory_id additionalProperties: true v1SearchMetadata: type: object properties: synonyms: type: array items: type: string description: 'Synonyms of the search query. For the search query "car" as an example, a client can put the synonyms in this field like `"synonyms": ["vehicle", "automobile"]`.' description: Metadata of the search query. This field can be used to provide additional information about the search query which may improve the response quality of the search inventories. additionalProperties: true v1Targeting: type: object properties: key_values: type: array items: $ref: '#/components/schemas/TargetingKeyValue' description: A list of custom targeting keys and corresponding values. description: 'This field is used to target specific ads based on a variety of criteria. NOTE: The targeting object is only allowed for ReservedDisplay.' additionalProperties: true v1User: type: object properties: user_id: type: string description: 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. maxLength: 128 interests: type: array items: type: string description: Interests of the user. e.g. ["sports", "outdoor"] description: User who gets recommended products or product ads. additionalProperties: true v1VideoInventory: type: object properties: format: $ref: '#/components/schemas/commonVideoFormat' description: Contexts for the video inventory additionalProperties: true v1publicCampaignLandingPageType: type: string enum: - UNKNOWN_LANDING_PAGE_TYPE - CUSTOM_URL - PRODUCT_DETAIL - PRODUCT_LIST - NONE default: UNKNOWN_LANDING_PAGE_TYPE