Relatório sobre eventos eCommerce Order Placed no Dashboard Builder
Crie gráficos personalizados de receita e pedidos a partir de eventos recomendados
ecommerce.order_placedsalvando consultas de SQL no Query Builder e visualizando os resultados no Dashboard Builder.
Pré-requisitos
| Requisitos | Descrição |
|---|---|
| Permissões do Query Builder | As permissões “View Dashboard Reports”, “View PII” e “Edit Dashboard Reports” no nível do espaço de trabalho |
Eventos ecommerce.order_placed |
Eventos recomendados de eCommerce implementados e enviando total_value (e dados de produto, quando necessário). Se você usa o conector Shopify, os eventos recomendados podem já estar disponíveis. |
Sobre este exemplo
A Flash & Thread, uma marca fictícia de varejo de roupas, registra pedidos com eventos recomendados de eCommerce. A equipe de marketing quer ver a receita diária, o valor médio do pedido (AOV) e o volume de pedidos em um único dashboard, e não apenas na visualização pré-criada de atribuição de último ponto de contato.
Este cenário usa o Query Builder para consultar ecommerce.order_placed nas tabelas de eventos compartilhadas do Snowflake. Depois, adiciona a consulta salva como um bloco de Custom Queries no Dashboard Builder. Você pode repetir o fluxo de trabalho para outras métricas, como compradores novos versus recorrentes, categorias de produtos ou receita por Segment.
Use esta abordagem quando os dashboards de eCommerce integrados não cobrirem a combinação de métricas que você precisa. Para ver a receita atribuída ao último ponto de contato, consulte o dashboard Revenue - Last Touch Attribution.
Considerações
- Retenção de dados: Por padrão, o Query Builder retorna dados dos últimos 60 dias. Com o Snowflake Data Sharing, você pode consultar até dois anos de dados retidos. Consulte Query Builder.
- Tempo limite: Consultas que levam mais de seis minutos excedem o tempo limite. Se um relatório falhar, restrinja o intervalo de datas, filtre por
TIMEou reduza o tamanho do público. As tabelas de eventos são agrupadas porTIME, então prefira filtrar pelo momento em que o evento ocorreu. - Campo de receita: As consultas de exemplo somam
total_valuedaspropertiesdo evento. Nos relatórios de produtos, a receita padronizada de eCommerce da Braze geralmente é derivada dopricee daquantityde cada produto. Alinhe ototal_valuecom os itens de linha dos seus produtos ou ajuste o SQL para corresponder ao seu esquema. - Rótulos de colunas: Coloque os nomes das colunas de exibição entre aspas duplas (por exemplo,
"Date","Total Revenue") para que o Dashboard Builder mostre cabeçalhos de eixos e tabelas legíveis. - Testes: O SQL deste artigo é fornecido como exemplo. Valide as consultas no seu espaço de trabalho antes de compartilhar dashboards amplamente.
Configuração
Etapa 1: Criar uma consulta SQL para a receita diária
- Acesse Analytics > Construtor de consultas.
- Selecione Criar consulta SQL e, em seguida, Editor SQL.
- Dê um nome à consulta (por exemplo,
Flash Thread — daily eCommerce revenue). - Cole e adapte a consulta a seguir para obter a receita total por dia do calendário nos últimos 60 dias:
SELECT
DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS "Date",
SUM(PARSE_JSON(PROPERTIES):total_value::NUMBER(18, 2)) AS "Total Revenue"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
WHERE NAME = 'ecommerce.order_placed'
AND TO_TIMESTAMP_NTZ(TIME) >= DATEADD(day, -60, CURRENT_TIMESTAMP())
AND TO_TIMESTAMP_NTZ(TIME) <= CURRENT_TIMESTAMP()
GROUP BY 1
ORDER BY 1;
- Selecione Executar consulta e, depois, Salvar.
Para mais detalhes sobre a configuração do Construtor de consultas, consulte Executando relatórios no Construtor de consultas.
Etapa 2: Adicionar a consulta a um bloco do Criador de dashboards
- Acesse Analytics > Criador de dashboards.
- Selecione Criar dashboard (ou abra um dashboard existente).
- Como fonte de dados, selecione Consultas personalizadas.
- Selecione + Adicionar bloco e escolha a consulta que você salvou na Etapa 1.
- Selecione o ícone de lápis para editar o bloco:
- Defina o tipo de gráfico como Gráfico de linhas.
- Defina o Eixo X como
Date. - Defina o Eixo Y como
Total Revenue.
- Redimensione o bloco conforme necessário e selecione Salvar.
- Selecione Visualizar dashboard > Executar dashboard.
A geração do dashboard pode levar alguns minutos. Consulte Criando um dashboard personalizado.
Etapa 3: Adicionar outras métricas de Order Placed (opcional)
Crie consultas salvas separadas e adicione cada uma como um bloco próprio (até 10 blocos por dashboard).
Valor médio do pedido e quantidade de pedidos por dia
SELECT
DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS "Date",
AVG(PARSE_JSON(PROPERTIES):total_value::NUMBER(18, 2)) AS "Average Order Value",
COUNT(*) AS "No. of Orders"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
WHERE NAME = 'ecommerce.order_placed'
AND TO_TIMESTAMP_NTZ(TIME) >= DATEADD(day, -60, CURRENT_TIMESTAMP())
AND TO_TIMESTAMP_NTZ(TIME) <= CURRENT_TIMESTAMP()
GROUP BY 1
ORDER BY 1;
Use um gráfico de linhas ou de barras com Date no eixo X e as duas métricas no eixo Y (desmarque as colunas que você não quer exibir).
Compradores novos e recorrentes por dia
Este cenário compara o dia do primeiro ecommerce.order_placed de cada usuário com os dias de compras posteriores. Ele é mais preciso quando a janela do Construtor de consultas cobre todo o período do relatório (por exemplo, a janela padrão de 60 dias).
WITH order_days AS (
SELECT DISTINCT
USER_ID,
DATE_TRUNC('day', TO_TIMESTAMP_NTZ(TIME))::DATE AS purchase_day
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED
WHERE NAME = 'ecommerce.order_placed'
),
first_purchase AS (
SELECT
USER_ID,
MIN(purchase_day) AS first_day
FROM order_days
GROUP BY USER_ID
),
per_day_purchasers AS (
SELECT DISTINCT
USER_ID,
purchase_day
FROM order_days
)
SELECT
p.purchase_day AS "Date",
COUNT(DISTINCT CASE
WHEN f.first_day = p.purchase_day THEN p.USER_ID
END) AS "New Purchasers",
COUNT(DISTINCT CASE
WHEN f.first_day < p.purchase_day THEN p.USER_ID
END) AS "Returning Purchasers"
FROM per_day_purchasers AS p
INNER JOIN first_purchase AS f
ON p.USER_ID = f.USER_ID
GROUP BY 1
ORDER BY 1;
Categoria de produto a partir dos itens do pedido
Faça o flatten do array products e filtre pelo seu campo de categoria. Substitua metadata.category se você usar uma chave de metadados de produto diferente.
SELECT
f.value:metadata:category::STRING AS "Product Category",
COUNT(*) AS "Line Items"
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED,
LATERAL FLATTEN(INPUT => PARSE_JSON(PROPERTIES):products) f
WHERE NAME = 'ecommerce.order_placed'
AND f.value:metadata:category::STRING IS NOT NULL
AND TRIM(f.value:metadata:category::STRING) != ''
AND LOWER(TRIM(f.value:metadata:category::STRING)) != 'undefined'
GROUP BY 1
ORDER BY 2 DESC;
Compras e receita por Segment (análise de dados de Segments)
Isso exige o rastreamento de análise de dados de Segments nos Segments incluídos no relatório. Use variáveis SQL para os seletores de data.
WITH event_conversions AS (
SELECT
user_id,
time,
TRY_CAST(GET_PATH(PARSE_JSON(PROPERTIES), 'total_value')::string AS FLOAT) AS price,
id AS purchase_event_id,
f.value::string AS user_segment_membership_id
FROM USERS_BEHAVIORS_CUSTOMEVENT_SHARED,
LATERAL FLATTEN(input => user_segment_membership_ids) AS f
WHERE NAME = 'ecommerce.order_placed'
AND time > {{start_date.${Start Date}}}
AND time < {{end_date.${End Date}}}
)
SELECT
user_segment_membership_id AS "Segment Analytics Id",
COUNT(DISTINCT purchase_event_id) AS "Total Purchases",
ROUND(SUM(price), 2) AS "Total Revenue"
FROM event_conversions
GROUP BY 1
ORDER BY 3 DESC;
Outros relatórios de eCommerce integrados
| Relatório | Quando usar |
|---|---|
| Receita - Atribuição por último ponto de contato | Receita atribuída por último ponto de contato por Campaign ou Canvas |
| Relatório de eventos personalizados | Volume e frequência dos eventos recomendados |
| Conversões de Campaign ou Canvas | ecommerce.order_placed é o evento de conversão primária |