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.
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. Em seguida, adiciona a consulta salva como um bloco de Consultas personalizadas no Dashboard Builder. Você pode repetir esse fluxo de trabalho para outras métricas, como compradores novos versus recorrentes, categorias de produtos ou receita por segmento.
Use essa abordagem quando os dashboards de eCommerce integrados não cobrirem a combinação de métricas de que você precisa. Para ver a receita atribuída ao último ponto de contato, consulte o dashboard Receita - Atribuição de último ponto de contato.
Considerações
- Implementação de eventos: O
ecommerce.order_placedprecisa estar implementado e enviandototal_value(e dados de produto, quando necessário) antes que as consultas retornem dados. Se você usa o conector da Shopify, os eventos recomendados talvez já estejam disponíveis. - Acesso ao Query Builder: Você precisa da permissão de usuário “View PII” para usar o Query Builder.
- 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 o Query Builder.
- Tempo limite: Consultas que levam mais de seis minutos atingem 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. A receita padronizada de eCommerce da Braze nos relatórios de produtos geralmente é calculada a partir dopricee daquantityde cada produto. Alinhe ototal_valueaos itens de linha dos seus produtos ou ajuste o SQL para corresponder ao seu esquema. - Rótulos das 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 depois Editor de SQL.
- Dê um nome à consulta (por exemplo,
Flash Thread — daily eCommerce revenue). - Cole e adapte a consulta a seguir. Ela calcula 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 número 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
Achate o 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 e-commerce integrados
| Relatório | Quando usar |
|---|---|
| Revenue - Last Touch Attribution | Receita atribuída ao ú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 |