ProductBulkIn
- dataType: array object[] · Datarequired
- productType: string · Product Id
_id min length:1max length:512requiredThe unique identifier for this product. The Id can be in any format you use in your product database (e.g. the product's SKU, UPC, or UUID or serial number). We will use this Id to track how users interact with products and content in the Interactions records you upload to Miso. It is important to keep the Id consistent between two datasets. For products that have multiple variants, you should have a unique
product_idfor each variant, and useproduct_group_idto group them together.For example, for a T-shirt with SKU
123ABCthat comes in 4 sizes:S,M,L,XL, we should create four different products:{ "product_id": "123ABC-S", "product_group_id" "123ABC" } { "product_id": "123ABC-M", "product_group_id" "123ABC" } { "product_id": "123ABC-L", "product_group_id" "123ABC" } { "product_id": "123ABC-XL", "product_group_id" "123ABC" }- Constraints
- Can't contain
, - Can't start with
_ - Length <= 512
- Can't contain
- Constraints
- anchorsType: array string[] · Anchors
The anchor texts paragraphs in the content. This usually corresponds to
<a>tags in HTML. This field need to be an array of strings - authorsType: array string[] · Authors
The author(s) of the product or content asset. This field needs to be an array of strings.
- availabilityType: string · Availabilityenum
The availability of the product. Miso mainly uses
availabilityto filterOUT_OF_STOCKitems out of its recommendations. As a default, we assume the product isIN_STOCK.values- I
N _ S T O C K - O
U T _ O F _ S T O C K - P
R E _ O R D E R
- brandType: string · Brand
The brand of the product.
- categoriesType: array array string[][] · Categories
In Miso, you describe a product or content category as a hierarchical list of strings from broad to narrow, called a
category. (See thecategory_page_viewinteraction.)Use the
categoriesfield of products to specify the hierarchical category or categories that the product belongs to. A product may belong to only a singlecategory, or multiple.For example, a product could be in both:
- Toys & Games > Toys > Dolls, Playsets & Toy Figures > Stuffed Animals, and
- Arts & Entertainment > Hobbies & Creative Arts > Collectibles.
This field should be a list of a list of strings, where category levels go from broad to narrow, such as:
{"categories": [ // the first category the product belongs to ["TOYS & GAMES", "TOYS", "DOLLS, PLAYSETS & TOY FIGURES", "STUFFED ANIMALS"], // the second category the product belongs to ["ARTS & ENTERTAINMENT", "HOBBIES & CREATIVE ARTS", "COLLECTIBLES"] ] }If your product taxonomy has only one single level, that is not an issue:
{"categories": [ // the first category the product belongs to ["Toys"], // the second category the product belongs to ["Collectibles"] ] }The categories are optional, but very important for profiling the products and tracking users' preferences. (See also the
category_page_viewinteraction) - childrenType: array object[] · Children
Children objects of the product, such as chapters of a book, or sections of a podcast. Children are only useful for long-form contents, and are only used for snippet extraction purpose.
- collectionsType: array string[] · Collections
The collection(s) the product belongs to.
- colorType: string · Color
The color of the products. Similarly to
size, whencolorof the products matters, it is recommended to create one product for each color variant of a product. When Miso generate search or recommendation results, we use theproduct_group_idto remove variants of the same product, and only show the variant that the user is most likely to buy. - conditionType: string · Conditionenum
The condition of the product. By default, we assume
condition=NEWvalues- N
E W - U
S E D - R
E F U R B I S H E D
- coverType: string · Cover Image
_image min length:1max length:65536Format: uriThe URL of the cover image of the product. This is for displaying the product in your Dojo Sandboxes and is not used for Engine training. It is optional, but strongly recommended for a better Sandbox experience.
- created
_at The time when the product was first created or became available on your site as an ISO-8601 date or datetime string.
- Type: string · Created AtFormat: date-time
The time when the product was first created or became available on your site as an ISO-8601 date or datetime string.
- customType: object · Custom Attributes
_attributes Dictionary of custom attributes for the product. You can specify attributes specific to your business in a
{"KEY":VALUE}format, whereKEYmust be a string, andVALUEcan be:- a
bool - a
stringor anarray of string - a
numberor anarray of numbers - an
array of objects null
For example, a video streaming site using Miso may have the movie Jumanji with the following custom attributes:
{ "custom_attributes": { "cast": [ "Robin Williams", "Jonathan Hyde", ... ], "director": "Joe Johnston", "genres": [ "Adventure", "Fantasy", "Family" ], "filming_locations": [ {"country": "USA", "state": "New Hampshire", "city": "Keene"}, {"country": "Canada", "state": "British Columbia", "city": "Vancouver"} ], "popularity": 7.439, "adult": false } }The custom attribute types need to be consistent across every record in the dataset. For instance, in the example above, the cast attribute needs to be a
stringoran array of stringornullfor every record in the dataset that specify cast attribute.Similarly, the popularity attribute needs to be a
number,an array of numbers, ornullfor every record in the dataset that specifies the popularity attribute. If you try to insert a record with an incompatible data type, the insertion for that record will fail. - a
- descriptionType: string · Description
The
descriptiontext of the product. Use it when you do not have HTML; otherwise preferhtml, which also carries the structure of the document.Miso assumes
descriptionholds longer text than the other string fields. For example, term frequency matters more here than in a field such as the title. A plain-spoken, detailed description gives Miso's semantic understanding more to work with. - enableType: boolean · Enable Question Answering
_question _answering Whether to enable question answering capability against the
htmlfield. - headersType: array string[] · Headers
The headers in the content. This usually corresponds to
<h1>,<h2>,<h3>... tags in HTML. This field need to be an array of strings - htmlType: string · Html
The HTML content of the product, and the preferred field for the body text.
Miso searches this field and applies semantic understanding to it, in the same way as
description. It also reads the tags to understand the structure of the document — where a heading starts a section, what belongs to one paragraph, and what is a list or a table. That structure helps Miso find the passage that answers a question.Send
htmlwhen you have it. Senddescriptionwhen plain text is all you hold. There is no need to send the same body in both. - languageType: string · Languagemin length:2
The
languageof the product description and content in two-letter ISO 639-1 code. For example, English =en, Chinese =zh. Miso will use this field to determine the proper way to index the product description. If this field is not specified, we will determine the language automatically.We also use the language field to determine users’ interests in content of different languages. This is particularly important for content media sites that have different languages of content.
- Constraints:
-
Two-letter ISO 639-1 code.
For example, English =
en, Chinese =zh.
-
Two-letter ISO 639-1 code.
For example, English =
- Constraints:
- location
The location information of the product (e.g. for hotels or restaurants). We support geolocation filtering and sorting when creating search and recommendation results if location information is given.
- Type: array object[] · Location
The location information of the product (e.g. for hotels or restaurants). We support geolocation filtering and sorting when creating search and recommendation results if location information is given.
- marginType: number · Margin
The margin of the product. Note that for our margin optimization algorithm to work, the margin you specify here does not need to be the actual dollar amount, but it needs to be something in proportion to that.
- Constraints:
- Need to be a number, but no constraint on the range of the number
- Constraints:
- materialType: string · Material
The material of the products. Similarly to
sizeandcolor, ifmaterialof the product matters and there are multiple material variants, we should create one product for each material variant. When Miso generates search or recommendation results, we use theproduct_group_idto remove variants of the same product, and only show the variant that the user is most likely to buy. - originalType: number · Original Price
_price The (original) price of the product. We only use this number to calculate the amount of discount, and use that to profile user behaviors.
- Constraints:
- Need to be a number, but no constraint on the range of the number
- Constraints:
- paragraphsType: array string[] · Paragraphs
The text paragraphs in the content. This usually corresponds to
<p>tags in HTML. This field need to be an array of strings - parentType: string · Parent Id
_id The
parent_idis used to declare a parent-child relationship between two "Products". Such relationships are common in marketplaces and content media sites with user generated contents. For example, an E-commerce marketplace (such as E-bay or Amazon) may have "Shops" (as parents) and "Merchandises" (as children), and a social streaming site, such as YouTube, may have "Channel" (as parents) and "Video" (as children). In these sites, both entities can be modeled as "Products", and can both be returned in Search and Recommendation APIs.Declaring the parent-child relationships allows Miso to automatically propagate interactions from one product to the other. For example, when a user "watch" a Video, Miso will propagate this signal to the Channel which publishes this Video, even if users do not directly interact with the Channel page. Such implicit interactions are particularly useful when making recommendations for Channel because it gives Miso much more information about users' interests to different Channels than solely relying on users' direct interactions with the them, which happens less often.
parent_idneeds to be a non-empty string referring to theproduct_idof the parent product. The parent product can be uploaded in a separate batch, and does not need to exist before its children products.The implicit interactions will only exist during Miso's training process, and will not show up in the Interaction dataset.
- productType: string · Product Group Id
_group _id The
product_group_idis used to prevent the same product (but a different variant) from showing multiple times in the search or recommendation results. When one product has multiple variants (for example, different sizes, colors, or materials), you should assign a unique product_id to each variant, but assign the sameproduct_group_idto all of them. Ifproduct_group_idis not given, we default to the value ofproduct_id. - published
_at The time when the product was published as an ISO-8601 date or datetime string.
- Type: string · Published AtFormat: date-time
The time when the product was published as an ISO-8601 date or datetime string.
- publishersType: array string[] · Publishers
The publisher(s) of the product or content asset. This field needs to be an array of strings.
- ratingType: number · Rating
The overall rating of the product in the range of [0, 5]. If you use a different rating scale, please convert it to the range of [0, 5].
- relatedType: array string[] · Related Ids
_ids The product_id or product_group_id of other products that are related to this Product
- saleType: number · Sale Price
_price The sale price of the product.
- Constraints:
- Need to be a number, but no constraint on the range of the number
- Constraints:
- shortType: string · Short Description
_description The
short_descriptiontext of the product. Miso assumesshort_descriptioncontains a shorter version or a summary of thedescriptionfield. - sizeType: string · Size
The size of the product. For example, for an eCommerce site that sells T-shirts, each T-shirt might come in several different sizes. In this case, we recommend that you should create one product entry for each size variant. When Miso generate search or recommendation results, we use the
product_group_idto remove different variants of the same product, and only show the variant that the user is most likely to buy. - subtitleType: string · Subtitle
The subtitle of the product (usually for contents).
- tagsType: array string[] · Tags
The tags that have been associated with the product.
For example:
{"tags": ["TAG_1", "TAG_2", ...]} - titleType: string · Title
The title of the product. During a search, Miso will put predictive weight behind the title, because it is often the main way users identify a product.
- typeType: string · Type
The
typeof product. This is for sites that have more than one type of product or content that they want their users to interact with. If your site has only one type of product, you can leave this field out. A classic example is travel sites, which have both hotel and flight sales. It is also useful for sites that let users interact with products as well as product bundles. For example, on YouTube, each video is a product that users can watch, while each channel, containing multiple videos, is also a product that users can subscribe to.For model quality, it is preferable to model all these distinct product types in the same data set, so that a user's interests for one type of product can inform their interests in another type of products. The
typefield helps Miso make these distinctions. - updated
_at The time when the product was updated as an ISO-8601 date or datetime string.
- Type: string · Updated AtFormat: date-time
The time when the product was updated as an ISO-8601 date or datetime string.
- urlType: string · Urlmin length:1max length:65536Format: uri
Url to the product detail page. This is for displaying the product in your Dojo Sandboxes and is not used for Engine training. It is optional, but strongly recommended for a better Sandbox experience.
