Este guia de implementação da API para a Pesquisa de e-commerce com IA descreve como usar os dados do seu gerenciamento de relacionamento com o cliente (CRM, na sigla em inglês) para personalizar as experiências de pesquisa na Pesquisa de e-commerce com IA. Ao integrar os atributos do usuário do seu CRM, você pode oferecer resultados de pesquisa mais relevantes, melhorando o engajamento do cliente e a conversão. Este documento detalha o processo de integração desses atributos do usuário, incluindo considerações sobre dados e especificações técnicas.
Selecionar dados para personalização
A eficácia da personalização depende da qualidade, cobertura e relevância dos dados do CRM que você fornece. Considere quais informações sobre um cliente influenciariam genuinamente os resultados da pesquisa que um vendedor experiente poderia oferecer.
Quando você concluir os testes piloto, terá recomendações mais fortes sobre quais dados são (e não são) impactantes.
Categorias de dados recomendadas para impacto
Essas categorias de dados constituem as informações mais relevantes para o comportamento do usuário do seu site de e-commerce.
- Informações geográficas: localização do cliente, como estado ou país. As informações de CEP são muito granulares. Consulte a seção sobre granularidade excessiva para mais informações.
- Dados demográficos: principais características do cliente, como idade e gênero.
- Conhecer a faixa etária de um cliente (18 a 24 anos em vez de 55 a 64 anos) provavelmente informaria diferentes estratégias de exibição de produtos para itens como roupas ou eletrônicos. Esses dados são muito impactantes.
- Personas do cliente: por exemplo, um comprador consciente do orçamento ou econômico em vez de um grande gastador.
Categorias de dados com menor probabilidade de serem impactantes
Essas categorias de dados têm um impacto marginal na captura de dados de e-commerce.
- Atributos derivados do histórico de compras:
- Nosso sistema já incorpora o comportamento de compras anteriores para personalização.
- O envio de atributos como
user bought a green dress yesterdayé redundante, porque essas informações são capturadas e usadas nativamente. - Concentre-se em novos insights do seu CRM.
- Dados específicos de resposta de marketing, como
Clicked email #7:- Embora seja relevante para a análise de campanhas de marketing, ele não informa à IA qual resultado de pesquisa mostrar.
Integridade dos dados
Além da relevância, a integridade dos dados em toda a base de usuários afeta significativamente a utilidade deles para personalização. Um atributo é mais valioso quando está disponível para uma parte substancial dos usuários, permitindo que o sistema identifique padrões mais amplos e aplique a personalização de forma mais ampla.
- Muito útil:
- Atributos que você tem para uma maioria significativa dos seus usuários, como
shipping_state:MA, se disponível para 70% da sua base de usuários. - Isso permite o reconhecimento de padrões robustos e a aplicação generalizada da personalização.
- Atributos que você tem para uma maioria significativa dos seus usuários, como
- Menos útil:
- Atributos disponíveis apenas para uma pequena fração dos seus usuários, como
hair_color:blonde, se disponível para apenas 0,1% da sua base de usuários.
- Atributos disponíveis apenas para uma pequena fração dos seus usuários, como
Embora interessantes, esses dados esparsos dificultam a derivação de sinais de personalização significativos pelo sistema devido à falta de exemplos suficientes. Em vez disso, priorize atributos que ofereçam uma cobertura mais ampla nos perfis dos clientes.
Diretrizes de granularidade de dados
O nível adequado de granularidade de dados é fundamental para uma personalização eficaz. Dados muito amplos ou muito específicos podem diminuir a capacidade do sistema de identificar padrões significativos. Procure atributos que segmentem sua base de clientes em grupos acionáveis.
Granularidade adequada
Exemplos de granularidade adequada são campos para:
- Gênero
- Estado
- Cidade
- Faixa etária (como 30 a 39 anos)
Esse nível de granularidade oferece diferenciação para personalização sem criar um número incontrolável de categorias.
Granularidade insuficiente
Um exemplo de granularidade insuficiente é country:US se a grande maioria da sua base de clientes residir nos Estados Unidos. Isso ocorre porque um atributo que tem pouca variação na base de clientes oferece valor mínimo para personalização.
Granularidade excessiva
Exemplos de granularidade excessiva são:
- CEPs ou códigos postais exatos (
zipcode:12345): com dezenas de milhares de códigos postais em potencial, a maioria terá muito poucos clientes associados. Essa atomização dilui o sinal. Se você usar códigos postais, corte-os para os dois primeiros dígitos para alcançar um nível mais adequado de granularidade. Os dois primeiros dígitos dos CEPs são mapeados aproximadamente para áreas do tamanho de um estado. - Idades exatas (
age:37): isso cria um número excessivo de categorias de idade. Para reduzir o número, agrupe dados numéricos como idade em cerca de 10 agrupamentos ou buckets predefinidos (comoage:30-39).
Outras diretrizes de dados
Esta seção aborda formatos de dados categóricos e outros.
Formato de dados categóricos
Esse sistema é otimizado para dados categóricos: valores distintos e nomeados, como:
state:MAgender:male
Dados numéricos
Por esse motivo, todos os atributos numéricos, como idade, renda ou frequência, precisam ser agrupados em buckets significativos antes da transmissão de dados.
Estes são exemplos incorretos e corretos, respectivamente:
age:37age:30-39
Outras restrições de dados
- Limite de atributos: cada consulta oferece suporte a até 100 pares de chave-valor. O suporte para mais pares pode ser adicionado em versões futuras.
- Chaves duplicadas: não são permitidas chaves duplicadas em uma única consulta. No entanto, vários valores por chave são aceitos.
- PII proibidas: em nenhuma circunstância envie informações de identificação pessoal (PII) específicas, como endereços de e-mail de clientes, números de CPF ou CNPJ, nomes completos ou dados financeiros, como números de cartão de crédito, de nenhuma forma.
Integração de API e transmissão de dados
Os dados do cliente precisam ser transmitidos no campo query das suas solicitações de pesquisa, não nos eventos.
Estrutura do buffer de protocolo (para desenvolvedores)
Os atributos do usuário são definidos na mensagem SearchRequest como um mapa de strings para uma mensagem StringList.
Ver exemplo de protobuf
// A list of string values. message StringList { // String values. repeated string values; } // Request message for [SearchService.Search][] method. message SearchRequest { ... // The user attributes that could be used for personalization of search. maptring, StringList> user_attributes; }
Exemplo de solicitação JSON
Este exemplo ilustra como estruturar user_attributes em uma solicitação de pesquisa JSON.
Ver exemplo de JSON
{ ... user_attributes: [ { key: "pets" # note keys can be hashed or unhashed value { values: "dog" # Note: these values MUST be hashed values: "cat" } }, { key: "state" value { values: "CA" } } ] }
Resposta da API
Não há mudanças na API SearchResponse ao usar esse recurso. A personalização ocorre internamente com base nos atributos do usuário fornecidos.
Requisitos de hash de dados
Para garantir a privacidade de dados e a segurança, os valores do atributo precisam ser codificados com hash. As chaves podem ser enviadas com ou sem hash.
Chaves de hash
As chaves de atributo, como pet_owner e state, podem ser enviadas no formato de string original ou com hash. Ambos são aceitáveis.
Exemplo:
- Aceitável —
pet_owner - Aceitável:
hash(pet_owner)
Valores de hash
Os valores de atributo, como dog e CA, precisam ser codificados com hash. Não é permitido enviar valores de texto simples.
Exemplo:
- Aceitável:
hash(dog) - Não aceitável —
"Dog"
Hash de chave-valor combinado
Se a chave e o valor forem codificados com hash, eles precisam ser codificados de forma independente. Não codifique a string de chave-valor combinada.
Exemplo:
- Aceitável —
pet_owner:hash("dog") - Aceitável:
hash(pet_owner):hash("dog") - Não aceitável —
hash("Pet_owner:dog")
Práticas recomendadas para transmissão de dados
Esta seção descreve várias práticas recomendadas para transmissão de dados, incluindo como lidar com valores repetidos, consistência de dados, flexibilidade de nomenclatura de chaves de atributos e como lidar com perfis de usuários variados.
Como lidar com valores repetidos
Se um usuário tiver vários valores para um único atributo, como possuir um cachorro e um gato, forneça todos os valores em uma única key na StringList.
Estes exemplos de código demonstram exemplos de uso incorreto e correto, respectivamente:
Ver exemplo
// This is incorrect because it sends the same key multiple times for different // values, causing only one of the two values for pets to be used, choosing one // value or the other in an inconsistent manner. { key: "pets", value { values: "dog" } }, { key: "pets", value { values: "cat" } }
Ver exemplo
{ key: "pets", value { values: "dog", values: "cat" } }
Consistência de dados
Mantenha a consistência estrita na ortografia, espaçamento e capitalização de todas as chaves e valores. O sistema interpreta até mesmo pequenas variações como categorias distintas.
Por exemplo, State:MA, state:MA, state:ma, STATE:MA e residence_state:MA serão tratados como atributos separados e não relacionados.
Flexibilidade de nomenclatura de chaves de atributos
Embora consistente, a convenção de nomenclatura específica para as chaves de atributo (por exemplo, pet_owner, pets, codeabc) não afeta inerentemente a capacidade do sistema de usar os dados. O aspecto crucial é a consistência dos dados transmitidos.
Como lidar com perfis de usuários variados
É aceitável que usuários diferentes tenham conjuntos de atributos diferentes.
- Exemplo: o usuário A pode ter
age:30-39epet:dog, enquanto o usuário B temgender:male, mas não tem dados de idade ou animal de estimação. O sistema processa perfis parciais normalmente.
Atualizações dinâmicas de dados
Os atributos do usuário podem evoluir com o tempo. Você pode atualizar o perfil de um usuário com novas informações à medida que elas ficam disponíveis.
- Exemplo: um usuário inicialmente identificado com
age:30-39epet:dogpode terstate:MAadicionado mais tarde se a localização dele for adquirida.
Consistência multiplataforma
Procure uma transmissão de atributos consistente para um determinado usuário em todos os pontos de contato, como app para dispositivos móveis ou site. Isso garante uma experiência de personalização unificada.
- Ideal: o usuário A é consistentemente
age:30-39no app para dispositivos móveis e no site. - Não ideal: o usuário A é
age:30-39no app para dispositivos móveis, mas apenaspet:dogno site.
Como lidar com dados ausentes
Se uma informação específica sobre um usuário não estiver disponível, não envie um marcador de posição ou um valor vazio. Basta omitir esse par de chave-valor da solicitação.
- Exemplo: evite
pet:unknownoupet:
Acesso ao SDK e à biblioteca
O acesso a essas bibliotecas pode ser encontrado nas seguintes versões e mais recentes: