Most likely! We'd love to hear your ideas. Please reach out to us any time at firstname.lastname@example.org.
Can Miso recommend UX patterns for implementing a recipe?
Yes! We have tons of experience in what UX patterns are most effective for personalized search and recommendations. Ask your Miso solutions engineer about Bento, our coming-soon UI Kit of best practices and style guides.
What do Miso's results look like for first-time users or visitors who don't have any interactions on the site yet?
Miso will provide results based on all the activity on your site, and then will immediately learn based on the user's first few interactions. (That's why it's important to stream interactions to Miso in real time!) If you want, you can also use the user_cohort parameter to tell Miso to personalize the cold start behavior as if the user belonged to a certain cohort on your site. See the API documentation for more details.
How should I send interaction data to Miso: in bulk or in real-time?
What is your strategy to minimize latency for customers whose hardware is located around the globe?
Can I provide Miso with a list of synonyms for search?
Yes! In fact, we are currently building a way for you to input synonyms directly in Dojo. For now, you can work with your Miso solutions engineer to import your list of synonyms as a spreadsheet.
Can your APIs support asynchronous writes?
Yes. To use asynchronous mode, append ?async=1 to the Product or User Upload APIs.
To provide feedback about engine performance, do I need to bring the miso_id all the way through the user journey, e.g. from the page view to the checkout event?
It's totally okay if you don't bring miso_id all the way to the checkout event and just append it to to the clickthrough event, for example. We've found this to be difficult for customers and are working on a better way to do the data collection.
Does Miso analyze product images?
It's not turned on by default, but it's something that we can do depending on your catalog, use cases, and vertical. If this capability is something you're interested in, reach out to your Miso solutions engineer.
Does Miso automatically filter out products that are out of stock?
We debated internally whether to always remove OUT_OF_STOCK products from the search and recommendations results. In the end, we decided not to implement a hard filter because some clients may still want to show OUT_OF_STOCK products. Although their customers can't buy those products, they can still interact with them in other ways, like adding them to a wishlist. Therefore, using fq with availability:IN_STOCK is required to remove out of stock items from the results.
Does Miso know how to personalize for aspects of the product (like the brand) even if I only send events referencing a product_id?
Yes! When users interact with a product, the brand will also receive the same interaction "virtually" during the training. This allows us to do many cool things. For example:
Personalized ranking / recommendations for brands (even if users just interacted with the Products)
Product to Brands recommendations or vice versa.
For products, what exactly are the differences between categories, tags and collections?
There aren't any significant differences between these and how Miso will treat them. It is more of a semantic difference in how the organization thinks about its data internally.
How do you prevent trapping users in a "filter bubble" where they see over-personalized results?
In our algorithms, we avoid a negative feedback loop by occasionally randomizing our personalized results. In this way, we learn how users react to seeing less personalized results and fine-tune the models accordingly. (This randomization only occurs for a small percentage of results, to prevent an impact on the personalization performance.) Your UX can play a role in this as well. We've found that it's important to keep editorial selections on the site (e.g. on the homepage) or mix editorial selections with algorithmic selections. Recipes like Categories You May Like and Trending For You are also great for letting users explore diverse content.
What can I do to minimize latency?
Using a smaller rows parameter and fetching the subsequent results with exclude will lower the latency quite a bit. You can also make sure you're only requesting the fields that you need with the fl parameter. You can also call Miso's APIs directly from the users' browser using a user_hash and your publishable API key.
How do I generate paginated recommendations?
For recommendations, we expect the results to change pretty frequently because we analyze users' every click in real-time. This makes it a little tricky to support pagination as a parameter. So to enable a UI pattern like infinite scrolling, we suggest that you use the exclude parameter. You can put every product_id that has been shown on the same page in the exclude field, and then you can then get the next batch of recommendations while ensuring that there are no duplicates.
How do I generate paginated search results?
The Search API easily supports pagination. For the Search API, the results are cached for 10 minutes. During this time, the search results for the (same user + same search query) will not change.
If I already have merchandizing, will personalization wipe that out?
Definitely not! Merchandising is a great strategy and with Miso you can use personalization to make sure that your campaigns (such as merchandised emails) are reaching exactly the right users. You can also combine the merchandised aspects of your homepage with ribbons that are driven by Miso AI, like Products for You. Note that Miso can save you time from having to hardcode products that go together (e.g. "Complete the Look") by doing this automatically with a recipe like Frequently Bought Together.
If I use my publishable API key to call Miso's APIs from the browser, how do you prevent someone else from impersonating me?
For requests that use your publishable API key, Miso requires an encrypted user_hash, which encrypts the requested user_id (or anonymous_id) with your secret API key using HMAC. Your backend server will need to generate the user_hash, and then let the front-end code send the user_hash to Miso APIs to verify the identity of the API caller.
As long as the Secret API Key is kept secret, the user_hash prevents a malicious attacker from making unauthorized API calls or impersonating any of your users.
If we send Data Upload API requests multiple times, do we have to worry about duplicating records?
Miso will automatically dedupe your data and keep the one that was uploaded later. Re-uploading the same interaction or product multiple times is absolutely fine!
Isn't personalization a little creepy?
Yes. Personalization, especially when it's approached the wrong way and without transparency, can absolutely be creepy. However, there are a couple of ways that platforms cross the "creepy line," and we've taken care with Miso to treat this line as sacred, not cross it, and instead unlock real innovations that eliminate any temptation to cross it, because we've found a better way.
Miso says user data is optional. But if I do provide user data, what will it be used for?
We learn the preferences of groups of users with the same attributes and use that to bootstrap the personalization. We never try to derive anything else from this data (e.g. looking into users' geographic location) or use it in any other way. User data is also much less heavily weighted than actual interactions on the site. It typically takes only 5-20 interactions for the effects of the user bootstrapping to fade and be replaced by real-time predictions based on clickstream data.
Sometimes I don't see many results when filtering on a Recommendation API. Why is that?
For optimal latency, Miso recommends from a "candidate set" of precomputed products that are relevant to users' interests. For example, if you are trying to filter for beauty products, and we don't have any clickstream data showing that the use has an interest in the beauty category, beauty products are less likely to be present in the candidate set.
In the case where you absolutely want to show some products regardless of users' interests, using the Search API is a better option because the default ranking will prioritize general relevancy over personalization. See the Category Pages recipe for an example.
What happens if an API request doesn't get through due to a network issue?
You can check the HTTP return code to see if your request went through. Any return code >= 200 means the upload was successful.
What kind of geo context is most useful to Miso?
For some data, especially related to the purchase of physical goods like groceries, customers may want to send location information. We've had success using the H3 library to convert lat/lon into hexagons with the desired resolutions. For example, a res-7 hexagon represents an area of about 5.161293 KM^2, which can be a good trade-off between precision and sparsity. We've had good results with res-6, res-7, and res-8 so far. When sending Interaction data, you can use the context field to send us geohex information with different resolutions, along with other business-specific info (e.g. region name, city name, fulfillment center, etc.). Example:
What kinds of data integrations do you support? E.g. Segment, Amazon Kinesis, Google Analytics?
We currently support:
You can see which integrations Miso supports under the Integrations tab in Dojo.
We're looking into whether we can commit to integrations with Amazon Kinesis and Google Analytics as well. For now, if you use any of these technologies, please discuss the best options with your Miso solutions engineer. We're here to help and have lots of experience guiding teams through the data upload process.
What makes Miso different from other search & recommendation systems?
There's no minimum threshold of events to personalize. You can start with the data you already have.
Models work in real-time, so new users, visitors, and catalog items will be instantly optimized rather than waiting for a model refresh.
Miso is built on semantic intelligence that understands your catalog, rather than mining data from your users.
It’s not a plug-in, but a flexible platform that lets you tune and optimize your results at a very fine level of detail.
Miso is built for privacy-first personalization that requires no user data.
Miso does n=1 personalization which means we build an individual personalization model for each and every user and each and every item in your catalog, rather than modeling based on categories or personas.
What QPS can your APIs handle?
We stress test our API suite with up to 1000 QPS. But give us a note if you plan to have a QPS over 200.
Which interaction should I choose to optimize when setting up my engine?
We recommend picking the interactions in the conversion funnel that are most aligned with your top-line business metrics. For eCommerce, it's most likely to be a combination of add_to_cart and checkout. For content media, it can be read or watch in combination with product_detail_page_view.