Skip to content

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_placed salvando consultas de SQL no Query Builder e visualizando os resultados no Dashboard Builder.

Sobre este exemplo

Flash e Thread, uma marca fictícia de varejo de roupas, registra pedidos com eventos recomendados de eCommerce. A equipe de marketing quer receita diária, valor médio do pedido (AOV) e volume de pedidos em um único dashboard — não apenas a visualização pré-construída de atribuição de último ponto de contato.

Esse padrão usa o Query Builder para consultar ecommerce.order_placed nas tabelas de eventos compartilhadas do Snowflake e, em seguida, adiciona a consulta salva como um bloco de Custom Queries no Dashboard Builder. Você pode repetir o fluxo de trabalho para métricas adicionais (compradores novos versus recorrentes, categorias de produtos ou receita por segmento).

Use isso quando os dashboards de eCommerce integrados não cobrirem sua combinação de métricas. Para receita atribuída por último ponto de contato, consulte o dashboard Revenue - Last Touch Attribution.

Considerações

  • Implementação do evento: ecommerce.order_placed deve estar implementado e enviando total_value (e dados de produto quando necessário) antes que as consultas retornem dados. Se você usa o conector Shopify, os eventos recomendados podem já estar 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: O Query Builder retorna dados dos últimos 60 dias por padrão. Com o Snowflake Data Sharing, você pode consultar até dois anos de dados retidos. Consulte Query Builder.
  • Timeouts: Consultas que levam mais de seis minutos expiram. Reduza o intervalo de datas, filtre por TIME ou diminua o tamanho do público se um relatório falhar. As tabelas de eventos são clusterizadas em TIME; prefira filtrar pelo momento em que o evento ocorreu.
  • Campo de receita: As consultas de exemplo somam total_value das properties do evento. A receita padronizada de eCommerce da Braze nos relatórios de produto geralmente é derivada do price e quantity de cada produto. Alinhe total_value com seus itens de linha de produto ou ajuste o SQL para corresponder ao seu esquema.
  • Rótulos de coluna: Coloque os nomes de exibição das colunas entre aspas duplas (por exemplo, "Date", "Total Revenue") para que o Dashboard Builder mostre cabeçalhos de eixo e tabela legíveis.
  • Testes: O SQL neste 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 receita diária

  1. Acesse Analytics > Query Builder.
  2. Selecione Create SQL Query e depois SQL Editor.
  3. Nomeie a consulta (por exemplo, Flash Thread — daily eCommerce revenue).
  4. Cole e adapte a seguinte consulta para receita total por dia nos últimos 60 dias:
1
2
3
4
5
6
7
8
9
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;
  1. Selecione Run Query e depois selecione Save.

Para detalhes sobre a configuração do Query Builder, consulte Executando relatórios no Query Builder.

Etapa 2: Adicionar a consulta a um bloco do Dashboard Builder

  1. Acesse Analytics > Dashboard Builder.
  2. Selecione Create Dashboard (ou abra um dashboard existente).
  3. Para a fonte de dados, selecione Custom Queries.
  4. Selecione + Add Tile e escolha a consulta que você salvou na Etapa 1.
  5. Selecione o ícone de lápis para editar o bloco:
    • Defina o tipo de gráfico como Line graph.
    • Defina o X-axis como Date.
    • Defina o Y-axis como Total Revenue.
  6. Redimensione o bloco conforme necessário e selecione Save.
  7. Selecione View Dashboard > Run Dashboard.

A geração do dashboard pode levar alguns minutos. Consulte Criando um dashboard personalizado.

Etapa 3: Adicionar métricas adicionais de Order Placed (opcional)

Crie consultas salvas separadas e adicione cada uma como seu próprio bloco (até 10 blocos por dashboard).

Valor médio do pedido e contagem de pedidos por dia

1
2
3
4
5
6
7
8
9
10
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 linha ou barras com Date no eixo X e ambas as métricas no eixo Y (desmarque as colunas que você não deseja exibir).

Compradores novos versus recorrentes por dia

Esse padrão compara o primeiro dia de ecommerce.order_placed de cada usuário com os dias de compra posteriores. Ele é mais preciso quando a janela do Query Builder cobre todo o período do relatório (por exemplo, a janela padrão de 60 dias).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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 de linha do pedido

Expanda o array products e filtre pelo campo de categoria. Substitua metadata.category se você usar uma chave de metadados de produto diferente.

1
2
3
4
5
6
7
8
9
10
11
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 segmento (análise de segmento)

Isso requer rastreamento de análise de segmento nos segmentos sobre os quais você está gerando relatórios. Use variáveis SQL para seletores de data.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
Revenue - Last Touch Attribution Receita atribuída por último ponto de contato por Campaign ou Canvas
Relatório de eventos personalizados Volume e frequência de eventos recomendados
Conversões de Campaign ou Canvas ecommerce.order_placed é o evento de conversão primária
New Stuff!