Como dito antes, o Retail Search usa a API Retail do GCP.
Abaixo iremos mostrar o passo-a-passo de como importar os eventos de usuário utilizando o Cloud Storage ou o BigQuery.
É importante mencionar que todos os passos iniciam-se na opção Retail no console do GCP:
Cenário 1 - Cloud Storage
Caso a empresa que deseja utilizar o retail search e as informações estejam no Cloud Storage é preciso seguir os passos abaixo:
- Clique em Importar catálogo de produtos para abrir o painel Importar dados.
- Escolha Catálogo de produtos como fonte de dados.
- Selecione a ramificação para fazer o upload do catálogo.
- Escolha Esquema de catálogos de produtos de varejo como o esquema.
- Insira o local dos seus dados no Cloud Storage (bucket e pasta).
- Clique em Importar.
Cenário 2 - BigQuery
Caso a empresa que deseja utilizar o retail search e as informações estejam no BigQuery é preciso seguir os passos abaixo:
- Clique em Importar eventos de usuário para abrir o painel Importar dados.
- Escolha Eventos do usuário.
- Selecione BigQuery como a fonte de dados.
- Escolha Esquema de eventos de usuário de varejo ou Google Analytcs 360 como esquema.
- Insira a tabela do BigQuery em que seus dados estão localizados.
- Clique em Importar.
Além destes métodos também é possível pegar as informação em tempo real.
Para isso podemos usar usando JavaScript, enviar eventos diretamente para a API do servidor de back-end ou usando uma tag do Gerenciador de tags.
JavaScript:
Podemos utilizar o código abaixo para enviar o evento:
<script type="text/javascript">
var user_event = {
"eventType" : "detail-page-view",
"visitorId": "visitor-id",
"userInfo": {
"userId": "user-id"
},
"attributionToken": "attribution-token",
"experimentIds": "experiment-id",
"productDetails": [
{
"product": {"id": "123"}
}
]
};
var _gre = _gre || [];
// Credentials for project.
_gre.push(['apiKey', 'api-key']);
_gre.push(['logEvent', user_event]);
_gre.push(['projectId', 'project-id']);
_gre.push(['locationId', 'global']);
_gre.push(['catalogId', 'default_catalog']);
(function() {
var gre = document.createElement('script'); gre.type = 'text/javascript'; gre.async = true;
gre.src = 'https://www.gstatic.com/retail/v2_event.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gre, s);
})();
</script>
API:
Para enviar os dados diretamente para api utilizaremos um metodo POST:
export GOOGLE_APPLICATION_CREDENTIALS=/tmp/my-key.json
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
--data "{
'eventType': 'detail-page-view',
'visitorId': 'visitor0',
'eventTime': '2020-01-01T03:33:33.000001Z',
'experimentIds': ['321'],
'attributionToken': 'ABC',
'attributes': {
'example_text_attribute': {
'text': ['text_1', 'text_2']
},
'example_number_attribute': {
'numbers': [3.14, 42, 1.2345]
}
},
'productDetails': [{
'product': {
'id': 'abc'
}
}],
'userInfo': {
'userId': 'abc',
'ipAddress': '8.8.8.8',
'userAgent': 'Mozilla/5.0',
'directUserRequest': true
},
'uri': 'http://example',
'referrerUri': 'http://example',
'pageViewId': 'currentPageUri'
}" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:write"
Gerenciador de tags:
Com o Gerenciador de tags podemos gerenciar várias tags sem muitas alterações de código no servidor do site.
A tag do Cloud Retail é compatível com o Google Analytics 4 e o Google Analytics.
Vai ser necessário configurar Variável - Comércio eletrônico ao criar a tag do Cloud Retail ou preencher manualmente o código da camada de dados do seu site depois de criá-la.
O comércio eletrônico do Google Analytics é uma configuração adicional para o Google Analytics que transmite títulos de produtos, códigos, preços, detalhes de transações e outros dados estruturados de comércio eletrônico para o Google Analytics. A API Retail pode usar automaticamente a camada de dados de comércio eletrônico do Google Analytics.
Referências:
https://cloud.google.com/retail/docs/setting-up?hl=pt-br#merchant-center-sync
https://cloud.google.com/retail/docs/record-events?hl=pt-br
https://cloud.google.com/retail/docs/record-events?hl=pt-br#client-id