Ir para o conteúdo

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.

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 TIME ou reduza o tamanho do público. As tabelas de eventos são agrupadas por TIME, então prefira filtrar pelo momento em que o evento ocorreu.
  • Campo de receita: As consultas de exemplo somam total_value das properties do evento. Nos relatórios de produtos, a receita padronizada de eCommerce da Braze geralmente é derivada do price e da quantity de cada produto. Alinhe o total_value com 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

  1. Acesse Analytics > Construtor de consultas.
  2. Selecione Criar consulta SQL e, em seguida, Editor SQL.
  3. Dê um nome à consulta (por exemplo, Flash Thread — daily eCommerce revenue).
  4. 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;
  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

  1. Acesse Analytics > Criador de dashboards.
  2. Selecione Criar dashboard (ou abra um dashboard existente).
  3. Como fonte de dados, selecione Consultas personalizadas.
  4. Selecione + Adicionar bloco 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 Gráfico de linhas.
    • Defina o Eixo X como Date.
    • Defina o Eixo Y como Total Revenue.
  6. Redimensione o bloco conforme necessário e selecione Salvar.
  7. 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
New Stuff!