Design a Google translate API.
- Marco Silva
Clarifying questions :
– Is it for Google products (translate API for Search Engine, YouTube, …) or external customers ? In which context would be used this translate API ? Assume this would be for internal use and could be extanded to external customers if successful
– How would we get the translations ? Assume we have translators (human or not)
Goal : You ask me to build a translate API for Google products, assuming all translations are available on our side.
Google mission is to organize the world’s information & make them universally accessible and useful. This translate API clearly matches the perimeter of Google mission.
User segments :
– Customers : in this case each of Google products (SE, YouTube, PlayStore, Google Agenda, …) could be requesting this API
– Users : End users of Google products, who access and read wordings
I am going to focus here on Customers, assuming they serve the good of their own end users.
User journey : I am going to take the example of Google SE
User access SE -> type search -> get a list of results -> select a result and is forwarded to the result page
Thus the need for Google SE to get translations would be :
Relative to the user :
– user country (switzerland, can be useful for pricing)
– user language (german)
– user device (might be useful depending on context)
– user platform (between Apple & Android we might not have the same translations for topics regarding regulation for ex)
Relative to the wordings :
– context
– wordings
Business objective : In this case we want customers to engage with the product.
To keep in mind :
– we don’t want the performance of those products to be impacted
– many wordings needed for many products
– Each google product might have very different context and proper need. Same translation would not be appropriate in all products
List of solutions :
– AI which would be able depending on the context and wordings provided to give appropriate translation (training set + feedback loops conceived by translators + data scientists)
– static translation files in which the API finds most appropriate translation (those files would have been conceived previously by translators)
– API requested for each context (that can be requested with parameters country, language, device, platform and with body containing context + all wordings / returns an answer with all translations)
– API requested for each translation (that can be requested with parameters country, language, device, platform and wording / returns an answer with the translation of this wording)
– Answers can be cached, meaning is the request was already made in this context answer would be quicker, won’t be to be rebuilt
Prioritization :
Solutions ideaseffort of Implementation cost of build impact on engagement
AI | Medium, Google already implemented lots of AI | High, need for data storage, monitoring and maintenance | High, reliability |
static translation files | Medium | Medium | Medium, not sure those files could be updated by humans as often as needed |
API requested for each context | Medium | Medium | High, allows to get many translations at once |
API requested for each translation | Medium | Low | Low, performance would be highly impacted if we need to do one request/wording |
Cache API | Medium | High | High, enhance the performance of final products |
Selected solutions : AI which would be requested by an API depending on the context, with cache for each product
Metrics :
– Primary : DAU, WAU, MAU
– Secondary : average time of response / request, number of request per day/week/month, most requested context, NPS
Launch plan : I would first launch on a single product, test for a couple of month and see the results.