Créer des rapports sur les événements eCommerce Order Placed dans le générateur de tableaux de bord
Créez des graphiques personnalisés de chiffre d’affaires et de commandes à partir des événements recommandés
ecommerce.order_placeden enregistrant des requêtes SQL dans le générateur de requêtes et en visualisant les résultats dans le générateur de tableaux de bord.
À propos de cet exemple
Flash et Thread, une marque fictive de vêtements, enregistre les commandes avec les événements recommandés eCommerce. Son équipe marketing souhaite disposer du chiffre d’affaires quotidien, de la valeur moyenne de commande (AOV) et du volume de commandes dans un seul tableau de bord, et pas uniquement de la vue d’attribution au dernier point de contact préconfigurée.
Ce modèle utilise le générateur de requêtes pour interroger ecommerce.order_placed à partir des tables d’événements partagées Snowflake, puis ajoute la requête enregistrée en tant que tuile Custom Queries dans le générateur de tableaux de bord. Vous pouvez reproduire ce flux de travail pour des indicateurs supplémentaires (nouveaux acheteurs versus acheteurs récurrents, catégories de produits ou chiffre d’affaires par segment).
Utilisez cette approche lorsque les tableaux de bord eCommerce intégrés ne couvrent pas votre combinaison d’indicateurs. Pour le chiffre d’affaires attribué au dernier point de contact, consultez plutôt le tableau de bord Revenue - Last Touch Attribution.
Considérations
- Déploiement de l’événement :
ecommerce.order_placeddoit être déployé et envoyertotal_value(ainsi que les données produit si nécessaire) avant que les requêtes ne renvoient des données. Si vous utilisez le connecteur Shopify, les événements recommandés peuvent déjà être disponibles. - Accès au générateur de requêtes : Vous avez besoin de la permission utilisateur « View PII » pour utiliser le générateur de requêtes.
- Conservation des données : Le générateur de requêtes renvoie par défaut les données des 60 derniers jours. Avec le partage de données Snowflake, vous pouvez interroger jusqu’à deux ans de données conservées. Consultez Générateur de requêtes.
- Délais d’expiration : Les requêtes qui s’exécutent pendant plus de six minutes expirent. Réduisez la plage de dates, filtrez sur
TIMEou diminuez la taille de l’audience si un rapport échoue. Les tables d’événements sont regroupées surTIME; privilégiez le filtrage sur le moment où l’événement s’est produit. - Champ de chiffre d’affaires : Les exemples de requêtes additionnent
total_valueà partir despropertiesde l’événement. Le chiffre d’affaires eCommerce standardisé de Braze dans les rapports produit est souvent dérivé dupriceet de laquantityde chaque produit. Aligneztotal_valueavec vos lignes de produits, ou ajustez le SQL pour correspondre à votre schéma. - Libellés de colonnes : Encadrez les noms de colonnes affichés entre guillemets doubles (par exemple
"Date","Total Revenue") afin que le générateur de tableaux de bord affiche des en-têtes d’axes et de tableaux lisibles. - Tests : Le SQL de cet article est fourni à titre d’exemple. Validez les requêtes dans votre espace de travail avant de partager largement les tableaux de bord.
Configuration
Étape 1 : Créer une requête SQL pour le chiffre d’affaires quotidien
- Accédez à Analytics > Query Builder.
- Sélectionnez Create SQL Query, puis SQL Editor.
- Nommez la requête (par exemple,
Flash Thread — daily eCommerce revenue). - Collez et adaptez la requête suivante pour le chiffre d’affaires total par jour calendaire sur les 60 derniers jours :
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;
- Sélectionnez Run Query, puis sélectionnez Save.
Pour plus de détails sur la configuration du générateur de requêtes, consultez Exécuter des rapports dans le générateur de requêtes.
Étape 2 : Ajouter la requête à une tuile du générateur de tableaux de bord
- Accédez à Analytics > Dashboard Builder.
- Sélectionnez Create Dashboard (ou ouvrez un tableau de bord existant).
- Pour la source de données, sélectionnez Custom Queries.
- Sélectionnez + Add Tile, puis choisissez la requête que vous avez enregistrée à l’étape 1.
- Sélectionnez l’icône de crayon pour modifier la tuile :
- Définissez le type de graphique sur Line graph.
- Définissez l’axe X sur
Date. - Définissez l’axe Y sur
Total Revenue.
- Redimensionnez la tuile selon vos besoins, puis sélectionnez Save.
- Sélectionnez View Dashboard > Run Dashboard.
La génération du tableau de bord peut prendre quelques minutes. Consultez Créer un tableau de bord personnalisé.
Étape 3 : Ajouter des indicateurs Order Placed supplémentaires (facultatif)
Créez des requêtes enregistrées séparées, puis ajoutez chacune en tant que tuile individuelle (jusqu’à 10 tuiles par tableau de bord).
Valeur moyenne de commande et nombre de commandes par jour
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;
Utilisez un graphique en courbes ou en barres avec Date sur l’axe X et les deux indicateurs sur l’axe Y (désélectionnez les colonnes que vous ne souhaitez pas afficher).
Nouveaux acheteurs versus acheteurs récurrents par jour
Ce modèle compare le premier jour d’achat ecommerce.order_placed de chaque utilisateur aux jours d’achat ultérieurs. Il est plus précis lorsque la fenêtre de votre générateur de requêtes couvre l’intégralité de la période de reporting (par exemple, la fenêtre par défaut de 60 jours).
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;
Catégorie de produit à partir des lignes de commande
Aplatissez le tableau products et filtrez sur votre champ de catégorie. Remplacez metadata.category si vous utilisez une clé de métadonnées produit différente.
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;
Achats et chiffre d’affaires par segment (analyse de segment)
Cela nécessite le suivi analytique de segment sur les segments sur lesquels vous créez des rapports. Utilisez les variables SQL pour les sélecteurs de dates.
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;
Autres rapports eCommerce intégrés
| Rapport | À utiliser quand |
|---|---|
| Revenue - Last Touch Attribution | Chiffre d’affaires attribué au dernier point de contact par Campaign ou Canvas |
| Rapport d’événements personnalisés | Volume et fréquence des événements recommandés |
| Conversions de Campaign ou Canvas | ecommerce.order_placed est l’événement de conversion principal |