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.

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_placed precisa estar implementado e enviando total_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 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. A receita padronizada de eCommerce da Braze nos relatórios de produtos geralmente é calculada a partir do price e da quantity de cada produto. Alinhe o total_value aos 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

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