eventos recomendados de eCommerce
Esta página cobre eventos e propriedades recomendados de eCommerce. Esses eventos são criados para capturar comportamentos de compra chave que os profissionais de marketing precisam para disparar mensagens eficazes, como direcionar carrinhos abandonados.
Os eventos recomendados de eCommerce estão atualmente em acesso antecipado. Entre em contato com seu gerente de sucesso do cliente da Braze se você estiver interessado em participar deste acesso antecipado.
Se você estiver usando o novo conector Shopify, esses eventos recomendados estarão automaticamente disponíveis através da integração.
A Braze reconhece que o planejamento de dados leva tempo. Incentivamos nossos clientes a familiarizarem suas equipes de desenvolvimento e começarem a enviar esses eventos agora. Embora alguns recursos possam não estar disponíveis imediatamente com os eventos recomendados de eCommerce, você pode aguardar a introdução de novos produtos ao longo de 2025 que aprimorarão suas capacidades de eCommerce.
Tipos de eventos recomendados de eCommerce
Os planos para descontinuar o evento de compra serão anunciados em 2026. O evento de compra será eventualmente substituído por novos eventos recomendados de eCommerce, que virão com recursos aprimorados para segmentação, relatórios, análise de dados e mais. No entanto, os novos eventos de eCommerce não suportarão recursos existentes relacionados ao evento de compra, como Valor do Tempo de Vida (LTV) ou relatórios de receita em Canvases ou campanhas. Para uma lista completa de recursos relacionados a eventos de compra, consulte Registro de eventos de compra.
Qualquer moeda que não seja USD reportada será exibida na Braze em USD com base na taxa de câmbio na data em que foi reportada. Para evitar conversão de moeda, defina a moeda como USD.
Você pode usar o evento de produto visualizado para disparar quando um cliente visualiza uma página de detalhes do produto.
Propriedades
| Nome da propriedade | Obrigatória | Tipo de dados | Descrição |
|---|---|---|---|
product_id |
Sim | String | Um identificador único para o produto que foi visualizado. Para clientes que não são Shopify, este será o valor que você definir para IDs de itens de catálogo como SKUs. |
product_name |
Sim | String | O nome do produto que foi visualizado. |
variant_id |
Sim | String | Um identificador único para a variante do produto. Um exemplo é shirt_medium_blue |
image_url |
Não | String | URL da imagem do produto. |
product_url |
Não | String | URL para a página do produto para mais detalhes. |
price |
Sim | Float | O preço unitário variante do produto no momento da visualização. |
currency |
Sim | String | A moeda na qual o preço do produto está listado (como “USD” ou “EUR”) no formato ISO 4217. |
source |
Sim | String | Fonte da qual o evento é derivado. (Para Shopify, isso é a vitrine). |
metadata |
Não | Objeto | |
type |
Não | Objeto | Funciona com notificações de volta ao estoque e notificações de queda de preço. |
sku |
Não | String | (Apenas Shopify) SKU do Shopify. Isso pode ser configurado como o campo de ID do catálogo. |
Objetos de exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
braze.logCustomEvent("ecommerce.product_viewed", {
"product_id": "4111176",
"product_name": "Torchie runners",
"variant_id": "4111176700",
"image_url": "https://braze-apparel.com/images/products/large/torchie-runners.jpg",
"product_url": "https://braze-apparel.com/footwear-categories/sneakers/braze-orange-torchie-runners/",
"price": 85,
"currency": "GBP",
"source": "https://braze-apparel.com/",
"metadata": {
"sku": "",
"color": "ORANGE",
"size": "6",
"brand": "Braze"
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
BrazeProperties properties = new BrazeProperties()
.addProperty("product_id", "4111176")
.addProperty("product_name", "Torchie runners")
.addProperty("variant_id", "4111176700")
.addProperty("image_url", "https://braze-apparel.com/images/products/large/torchie-runners.jpg")
.addProperty("product_url", "https://braze-apparel.com/footwear-categories/sneakers/braze-orange-torchie-runners/")
.addProperty("price", 85)
.addProperty("currency", "GBP")
.addProperty("source", "https://braze-apparel.com/")
.addProperty("metadata", new JSONObject()
.put("sku", "")
.put("color", "ORANGE")
.put("size", "6")
.put("brand", "Braze"));
Braze.getInstance(context).logCustomEvent("ecommerce.product_viewed", properties);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let properties: [String: Any] = [
"product_id": "4111176",
"product_name": "Torchie runners",
"variant_id": "4111176700",
"image_url": "https://braze-apparel.com/images/products/large/torchie-runners.jpg",
"product_url": "https://braze-apparel.com/footwear-categories/sneakers/braze-orange-torchie-runners/",
"price": 85,
"currency": "GBP",
"source": "https://braze-apparel.com/",
"metadata": [
"sku": "",
"color": "ORANGE",
"size": "6",
"brand": "Braze"
]
]
AppDelegate.braze?.logCustomEvent(name: "ecommerce.product_viewed", properties: properties)
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
{
"events": [
{
"external_id": "user_id",
"app_id": "your_app_identifier",
"name": "ecommerce.product_viewed",
"time": "2024-01-15T09:03:45Z",
"properties": {
"product_id": "4111176",
"product_name": "Torchie runners",
"variant_id": "4111176700",
"image_url": "https://braze-apparel.com/images/products/large/torchie-runners.jpg",
"product_url": "https://braze-apparel.com/footwear-categories/sneakers/braze-orange-torchie-runners/",
"price": 85,
"currency": "GBP",
"source": "https://braze-apparel.com/",
"metadata": {
"sku": "",
"color": "ORANGE",
"size": "6",
"brand": "Braze"
},
"type": [
"price_drop",
"back_in_stock"
]
}
}
]
}
Você pode usar o evento de checkout iniciado para redirecionar clientes que iniciaram o processo de checkout, mas não fizeram um pedido.
Semelhante ao evento ecommerce.cart_updated, este evento permite que você aproveite a tag Liquid do carrinho de compras para acessar todos os produtos dentro do carrinho para mensagens de checkout abandonado:
1
2
3
{% shopping_cart {{context_properties.${cart_id}}} :abort_if_not_abandoned false %}
{% for item in shopping_cart.products %}
{% catalog_items <add_your_catalog> {{item.variant_id}} %}
Propriedades
| Nome da propriedade | Obrigatória | Tipo de dados | Descrição |
|---|---|---|---|
checkout_id |
Sim | String | Identificador único para o checkout. |
cart_id |
Não | String | Se você não estiver usando uma plataforma de terceiros que forneça um cart_id, você pode usar o Braze session ID. |
total_value |
Sim | Float | Valor monetário total do carrinho. |
currency |
Sim | String | Moeda na qual o carrinho é avaliado. |
products |
Sim | Vetor de objetos | |
product_id |
Sim | String | Um identificador único para o produto que foi visualizado. Por exemplo, esse valor pode ser o ID do produto ou SKU. |
product_name |
Sim | String | O nome do produto que foi visualizado. |
variant_id |
Sim | String | Um identificador único para a variante do produto. Um exemplo é shirt_medium_blue |
image_url |
Não | String | URL da imagem do produto. |
product_url |
Não | String | URL para a página do produto para mais detalhes. |
quantity |
Sim | Inteiro | Número de unidades do produto no carrinho. |
price |
Sim | Float | O preço unitário variante do produto no momento da visualização. |
metadata |
Não | Objeto | Campo de metadados adicional sobre o produto que o cliente deseja adicionar para seus casos de uso. Para Shopify, adicionaremos o SKU. Isso terá um limite baseado no nosso limite geral de propriedades de eventos de 50kb. |
sku |
Não | String | (Apenas Shopify) SKU do Shopify. Isso pode ser configurado como o campo de ID do catálogo. |
source |
Sim | String | Fonte da qual o evento é derivado. (Para Shopify, isso é a vitrine). |
metadata |
Não | Objeto | |
checkout_url |
Não | String | URL para a página de checkout. |
Objetos de exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
braze.logCustomEvent("ecommerce.checkout_started", {
"checkout_id": "checkout_abc123",
"cart_id": "cart_12345",
"total_value": 199.98,
"currency": "USD",
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"checkout_url": "https://checkout.braze-audio.com/abc123"
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
JSONArray products = new JSONArray();
JSONObject product = new JSONObject()
.put("product_id", "632910392")
.put("product_name", "Wireless Headphones")
.put("variant_id", "808950810")
.put("quantity", 1)
.put("price", 199.98)
.put("metadata", new JSONObject()
.put("sku", "WH-BLK-PRO")
.put("color", "Black")
.put("brand", "AudioTech"));
products.put(product);
BrazeProperties properties = new BrazeProperties()
.addProperty("checkout_id", "checkout_abc123")
.addProperty("cart_id", "cart_12345")
.addProperty("total_value", 199.98)
.addProperty("currency", "USD")
.addProperty("products", products)
.addProperty("source", "https://braze-audio.com")
.addProperty("metadata", new JSONObject()
.put("checkout_url", "https://checkout.braze-audio.com/abc123"));
Braze.getInstance(context).logCustomEvent("ecommerce.checkout_started", properties);
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
let products: [[String: Any]] = [
[
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": [
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
]
]
]
let properties: [String: Any] = [
"checkout_id": "checkout_abc123",
"cart_id": "cart_12345",
"total_value": 199.98,
"currency": "USD",
"products": products,
"source": "https://braze-audio.com",
"metadata": [
"checkout_url": "https://checkout.braze-audio.com/abc123"
]
]
AppDelegate.braze?.logCustomEvent(name: "ecommerce.checkout_started", properties: properties)
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
34
{
"events": [
{
"external_id": "user_id",
"app_id": "your_app_identifier",
"name": "ecommerce.checkout_started",
"time": "2024-01-15T09:25:45Z",
"properties": {
"checkout_id": "checkout_abc123",
"cart_id": "cart_12345",
"total_value": 199.98,
"currency": "USD",
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"checkout_url": "https://checkout.braze-audio.com/abc123"
}
}
}
]
}
Você pode usar o evento de pedido realizado para disparar quando um cliente completa com sucesso o processo de checkout e faz um pedido.
Propriedades
| Nome da propriedade | Obrigatória | Tipo de dados | Descrição |
|---|---|---|---|
order_id |
Sim | String | Identificador único para o pedido realizado. |
cart_id |
Não | String | Se você não estiver usando uma plataforma de terceiros que forneça um cart_id, você pode usar o Braze session ID. |
total_value |
Sim | Float | Valor monetário total do carrinho. |
currency |
Sim | String | Moeda na qual o carrinho é avaliado. |
total_discounts |
Não | Float | Valor total dos descontos aplicados ao pedido. |
discounts |
Não | Vetor de objetos | Lista detalhada de descontos aplicados ao pedido. |
products |
Sim | Vetor de objetos | |
product_id |
Sim | String | Um identificador único para o produto que foi visualizado. Esse valor pode ser o ID do produto ou SKU. |
product_name |
Sim | String | O nome do produto que foi visualizado. |
variant_id |
Sim | String | Um identificador único para a variante do produto. Um exemplo é shirt_medium_blue |
image_url |
Não | String | URL da imagem do produto. |
product_url |
Não | String | URL para a página do produto para mais detalhes. |
quantity |
Sim | Inteiro | Número de unidades do produto no carrinho. |
price |
Sim | Float | O preço unitário variante do produto no momento da visualização. |
metadata |
Não | Objeto | Campo de metadados adicional sobre o produto que o cliente deseja adicionar para seus casos de uso. Para Shopify, adicionaremos o SKU. Isso terá um limite baseado no nosso limite geral de propriedades de eventos de 50kb. |
sku |
Não | String | (Apenas Shopify) SKU do Shopify. Isso pode ser configurado como o campo de ID do catálogo. |
source |
Sim | String | Fonte da qual o evento é derivado. (Para Shopify, isso é a vitrine). |
order_status_url |
Não | String | URL para visualizar o status do pedido. |
order_number |
Não | String | (Apenas Shopify) Número de pedido único para o pedido realizado. |
tags |
Não | Vetor | (Apenas Shopify) Etiquetas do pedido |
referring_site |
Não | String | (Apenas Shopify) O site de onde o pedido se originou (como Meta). |
payment_gateway_names |
Não | Vetor | (Apenas Shopify) Fonte do sistema de pagamento (como ponto de venda ou móvel). |
Objetos de exemplo
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
34
35
braze.logCustomEvent("ecommerce.order_placed", {
"order_id": "order_67890",
"cart_id": "cart_12345",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": [
{
"code": "SAVE10",
"amount": 10.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["electronics", "audio"],
"referring_site": "https://www.e-referrals.com",
"payment_gateway_names": ["tap2pay", "dotcash"]
}
});
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
34
35
JSONArray discounts = new JSONArray();
discounts.put(new JSONObject()
.put("code", "SAVE10")
.put("amount", 10.00));
JSONArray products = new JSONArray();
JSONObject product = new JSONObject()
.put("product_id", "632910392")
.put("product_name", "Wireless Headphones")
.put("variant_id", "808950810")
.put("quantity", 1)
.put("price", 199.98)
.put("metadata", new JSONObject()
.put("sku", "WH-BLK-PRO")
.put("color", "Black")
.put("brand", "AudioTech"));
products.put(product);
BrazeProperties properties = new BrazeProperties()
.addProperty("order_id", "order_67890")
.addProperty("cart_id", "cart_12345")
.addProperty("total_value", 189.98)
.addProperty("currency", "USD")
.addProperty("total_discounts", 10.00)
.addProperty("discounts", discounts)
.addProperty("products", products)
.addProperty("source", "https://braze-audio.com")
.addProperty("metadata", new JSONObject()
.put("order_status_url", "https://braze-audio.com/orders/67890/status")
.put("order_number", "ORD-2024-001234")
.put("tags", new JSONArray().put("electronics").put("audio"))
.put("referring_site", "https://www.e-referrals.com")
.put("payment_gateway_names", new JSONArray().put("tap2pay").put("dotcash")));
Braze.getInstance(context).logCustomEvent("ecommerce.order_placed", properties);
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
34
35
36
37
38
39
40
41
let discounts: [[String: Any]] = [
[
"code": "SAVE10",
"amount": 10.00
]
]
let products: [[String: Any]] = [
[
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": [
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
]
]
]
let properties: [String: Any] = [
"order_id": "order_67890",
"cart_id": "cart_12345",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": discounts,
"products": products,
"source": "https://braze-audio.com",
"metadata": [
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["electronics", "audio"],
"referring_site": "https://www.e-referrals.com",
"payment_gateway_names": ["tap2pay", "dotcash"]
]
]
AppDelegate.braze?.logCustomEvent(name: "ecommerce.order_placed", properties: properties)
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
34
35
36
37
38
39
40
41
42
43
44
45
{
"events": [
{
"external_id": "user_id",
"app_id": "your_app_identifier",
"name": "ecommerce.order_placed",
"time": "2024-01-15T09:35:20Z",
"properties": {
"order_id": "order_67890",
"cart_id": "cart_12345",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": [
{
"code": "SAVE10",
"amount": 10.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["electronics", "audio"],
"referring_site": "https://www.e-referrals.com",
"payment_gateway_names": ["tap2pay", "dotcash"]
}
}
}
]
}
Você pode usar o evento de pedido reembolsado para disparar quando um pedido é parcialmente ou totalmente reembolsado.
Propriedades
| Nome da propriedade | Obrigatória | Tipo de dados | Descrição |
|---|---|---|---|
order_id |
Sim | String | Identificador único para o pedido realizado. |
total_value |
Sim | Float | Valor monetário total do carrinho. |
currency |
Sim | String | Moeda na qual o carrinho é avaliado. |
total_discounts |
Não | Float | Valor total dos descontos aplicados ao pedido. |
discounts |
Não | Vetor de objetos | Lista detalhada de descontos aplicados ao pedido. |
products |
Sim | Vetor de objetos | |
product_id |
Sim | String | Um identificador único para o produto que foi visualizado. Este valor pode ser o ID do produto, SKU ou similar. Se um reembolso parcial for emitido e não houver product_id atribuído ao reembolso (por exemplo, um reembolso em nível de pedido), forneça um product_id generalizado. |
product_name |
Sim | String | O nome do produto que foi visualizado. |
variant_id |
Sim | String | Um identificador único para a variante do produto (como shirt_medium_blue). |
image_url |
Não | String | URL da imagem do produto. |
product_url |
Não | String | URL para a página do produto para mais detalhes. |
quantity |
Sim | Inteiro | Número de unidades do produto no carrinho. |
price |
Sim | Float | O preço unitário variante do produto no momento da visualização. |
metadata |
Não | Objeto | Campo de metadados adicional sobre o produto que o cliente deseja adicionar para seus casos de uso. Para Shopify, adicionaremos o SKU. Isso terá um limite baseado no nosso limite geral de propriedades de eventos de 50kb. |
sku |
Não | String | (Apenas Shopify) SKU do Shopify. Isso pode ser configurado como o campo de ID do catálogo. |
source |
Sim | String | Fonte da qual o evento é derivado. (Para Shopify, isso é a vitrine). |
metadata |
Não | Objeto | |
order_status_url |
Não | String | URL para visualizar o status do pedido. |
order_note |
Não | String | (Apenas Shopify) Nota anexada ao pedido pelo comerciante. |
order_number |
Não | String | (Apenas Shopify) Número de pedido único para o pedido realizado. |
tags |
Não | Vetor | (Apenas Shopify) Etiquetas do pedido. |
Objetos de exemplo
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
braze.logCustomEvent("ecommerce.order_refunded", {
"order_id": "order_67890",
"total_value": 99.99,
"currency": "USD",
"total_discounts": 5.00,
"discounts": [
{
"code": "SAVE5",
"amount": 5.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 99.99,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_note": "Customer requested refund due to defective item",
"order_number": "ORD-2024-001234",
"tags": ["refund", "defective"]
}
});
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
JSONArray discounts = new JSONArray();
discounts.put(new JSONObject()
.put("code", "SAVE5")
.put("amount", 5.00));
JSONArray products = new JSONArray();
JSONObject product = new JSONObject()
.put("product_id", "632910392")
.put("product_name", "Wireless Headphones")
.put("variant_id", "808950810")
.put("quantity", 1)
.put("price", 99.99)
.put("metadata", new JSONObject()
.put("sku", "WH-BLK-PRO")
.put("color", "Black")
.put("brand", "AudioTech"));
products.put(product);
BrazeProperties properties = new BrazeProperties()
.addProperty("order_id", "order_67890")
.addProperty("total_value", 99.99)
.addProperty("currency", "USD")
.addProperty("total_discounts", 5.00)
.addProperty("discounts", discounts)
.addProperty("products", products)
.addProperty("source", "https://braze-audio.com")
.addProperty("metadata", new JSONObject()
.put("order_status_url", "https://braze-audio.com/orders/67890/status")
.put("order_note", "Customer requested refund due to defective item")
.put("order_number", "ORD-2024-001234")
.put("tags", new JSONArray().put("refund").put("defective")));
Braze.getInstance(context).logCustomEvent("ecommerce.order_refunded", properties);
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
34
35
36
37
38
39
let discounts: [[String: Any]] = [
[
"code": "SAVE5",
"amount": 5.00
]
]
let products: [[String: Any]] = [
[
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 99.99,
"metadata": [
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
]
]
]
let properties: [String: Any] = [
"order_id": "order_67890",
"total_value": 99.99,
"currency": "USD",
"total_discounts": 5.00,
"discounts": discounts,
"products": products,
"source": "https://braze-audio.com",
"metadata": [
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_note": "Customer requested refund due to defective item",
"order_number": "ORD-2024-001234",
"tags": ["refund", "defective"]
]
]
AppDelegate.braze?.logCustomEvent(name: "ecommerce.order_refunded", properties: properties)
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
34
35
36
37
38
39
40
41
42
43
{
"events": [
{
"external_id": "user_id",
"app_id": "your_app_identifier",
"name": "ecommerce.order_refunded",
"time": "2024-01-15T10:15:30Z",
"properties": {
"order_id": "order_67890",
"total_value": 99.99,
"currency": "USD",
"total_discounts": 5.00,
"discounts": [
{
"code": "SAVE5",
"amount": 5.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 99.99,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_note": "Customer requested refund due to defective item",
"order_number": "ORD-2024-001234",
"tags": ["refund", "defective"]
}
}
}
]
}
Você pode usar o evento de pedido cancelado para disparar quando um cliente cancela um pedido.
Propriedades
| Nome da propriedade | Obrigatória | Tipo de dados | Descrição |
|---|---|---|---|
order_id |
Sim | String | Identificador único para o pedido realizado. |
cancel_reason |
Sim | String | Motivo pelo qual o pedido foi cancelado. |
total_value |
Sim | Float | Valor monetário total do carrinho. |
currency |
Sim | String | Moeda na qual o carrinho é avaliado. |
total_discounts |
Não | Float | Total de descontos aplicados ao pedido. |
discounts |
Não | Vetor de objetos | Lista detalhada de descontos aplicados ao pedido. |
products |
Sim | Vetor de objetos | |
product_id |
Sim | String | Um identificador único para o produto que foi visualizado. Esse valor pode ser o ID do produto, SKU ou similar. |
product_name |
Sim | String | O nome do produto que foi visualizado. |
variant_id |
Sim | String | Um identificador único para a variante do produto (como shirt_medium_blue). |
image_url |
Não | String | URL da imagem do produto. |
product_url |
Não | String | URL para a página do produto para mais detalhes. |
quantity |
Sim | Inteiro | Número de unidades do produto no carrinho. |
price |
Sim | Float | O preço unitário da variante do produto no momento da visualização. |
metadata |
Não | Objeto | Campo de metadados adicional sobre o produto que o cliente deseja adicionar para seus casos de uso. Para Shopify, adicionaremos SKU. Isso terá um limite baseado em nosso limite geral de propriedades de evento de 50kb. |
sku |
Não | String | (Apenas Shopify) SKU do Shopify. Isso pode ser configurado como o campo de ID do catálogo. |
source |
Sim | String | Fonte da qual o evento é derivado. (Para Shopify, isso é a vitrine). |
metadata |
Não | Objeto | |
order_status_url |
Não | String | URL para visualizar o status do pedido. |
order_number |
Não | String | (Apenas Shopify) Número de pedido único para o pedido realizado. |
tags |
Não | Vetor | (Apenas Shopify) Etiquetas de pedido. |
Objetos de exemplo
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
braze.logCustomEvent("ecommerce.order_cancelled", {
"order_id": "order_67890",
"cancel_reason": "customer changed mind",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": [
{
"code": "SAVE10",
"amount": 10.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["cancelled", "customer_request"]
}
});
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
JSONArray discounts = new JSONArray();
discounts.put(new JSONObject()
.put("code", "SAVE10")
.put("amount", 10.00));
JSONArray products = new JSONArray();
JSONObject product = new JSONObject()
.put("product_id", "632910392")
.put("product_name", "Wireless Headphones")
.put("variant_id", "808950810")
.put("quantity", 1)
.put("price", 199.98)
.put("metadata", new JSONObject()
.put("sku", "WH-BLK-PRO")
.put("color", "Black")
.put("brand", "AudioTech"));
products.put(product);
BrazeProperties properties = new BrazeProperties()
.addProperty("order_id", "order_67890")
.addProperty("cancel_reason", "customer changed mind")
.addProperty("total_value", 189.98)
.addProperty("currency", "USD")
.addProperty("total_discounts", 10.00)
.addProperty("discounts", discounts)
.addProperty("products", products)
.addProperty("source", "https://braze-audio.com")
.addProperty("metadata", new JSONObject()
.put("order_status_url", "https://braze-audio.com/orders/67890/status")
.put("order_number", "ORD-2024-001234")
.put("tags", new JSONArray().put("cancelled").put("customer_request")));
Braze.getInstance(context).logCustomEvent("ecommerce.order_cancelled", properties);
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
34
35
36
37
38
39
let discounts: [[String: Any]] = [
[
"code": "SAVE10",
"amount": 10.00
]
]
let products: [[String: Any]] = [
[
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": [
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
]
]
]
let properties: [String: Any] = [
"order_id": "order_67890",
"cancel_reason": "customer changed mind",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": discounts,
"products": products,
"source": "https://braze-audio.com",
"metadata": [
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["cancelled", "customer_request"]
]
]
AppDelegate.braze?.logCustomEvent(name: "ecommerce.order_cancelled", properties: properties)
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
34
35
36
37
38
39
40
41
42
43
{
"events": [
{
"external_id": "user_id",
"app_id": "your_app_identifier",
"name": "ecommerce.order_cancelled",
"time": "2024-01-15T10:45:15Z",
"properties": {
"order_id": "order_67890",
"cancel_reason": "customer changed mind",
"total_value": 189.98,
"currency": "USD",
"total_discounts": 10.00,
"discounts": [
{
"code": "SAVE10",
"amount": 10.00
}
],
"products": [
{
"product_id": "632910392",
"product_name": "Wireless Headphones",
"variant_id": "808950810",
"quantity": 1,
"price": 199.98,
"metadata": {
"sku": "WH-BLK-PRO",
"color": "Black",
"brand": "BrazeAudio"
}
}
],
"source": "https://braze-audio.com",
"metadata": {
"order_status_url": "https://braze-audio.com/orders/67890/status",
"order_number": "ORD-2024-001234",
"tags": ["cancelled", "customer_request"]
}
}
}
]
}
Modelos de Canvas de eCommerce
A Braze criou modelos de Canvas pré-construídos que são alimentados por eventos recomendados de eCommerce, como direcionar clientes que iniciaram o processo de checkout, mas saíram antes de finalizar o pedido. Você pode usar esses eventos para tomar decisões informadas para aprimorar a jornada do usuário, personalizando o envio de mensagens e direcionando públicos específicos.
Confira nossos casos de uso de eCommerce dedicados para mais maneiras de como você pode usar esses eventos com modelos de Canvas.
Campos calculados pelo usuário
Usamos cálculos de campos de usuário padronizados para os seguintes campos:
- Receita Total = soma do valor total dos pedidos realizados - soma do valor total dos pedidos reembolsados
- Contagem Total de Pedidos = contagem de eventos de pedidos distintos realizados - contagem de eventos de cancelamentos de pedidos distintos
- Valor Total de Reembolso = soma do valor total dos pedidos reembolsados
Esses cálculos de campos de usuário também estão incluídos na aba Transações dos perfis de usuário.

Perguntas frequentes
Onde posso visualizar dados de compra em nível de produto?
A aba Transações do perfil do usuário mostra campos calculados de alto nível (como receita total e total de pedidos). Para visualizar detalhes em nível de produto para um usuário específico, use o Construtor de Consultas para consultar dados de eventos de eCommerce, ou exporte dados de eventos através de Currents.
Ao contrário dos eventos de compra legados, os eventos recomendados de eCommerce armazenam detalhes do produto como propriedades de evento aninhadas dentro do array products. Essas propriedades estão disponíveis no envio de mensagens através do Liquid e na segmentação através das extensões de segmento.
Como posso segmentar usuários por um produto específico?
O segmentador permite que você filtre pelo número de vezes que um usuário realizou um evento de eCommerce. Para filtrar por propriedades de produto específicas (como product_id ou product_name), use extensões de segmento, que suportam filtragem de propriedades de evento aninhadas. Por exemplo, você pode encontrar todos os usuários que compraram o produto “SKU-123” nos últimos 90 dias.
Qual é a diferença entre eventos de compra legados e eventos recomendados de eCommerce?
Eventos de compra legados usam o objeto de compra do Braze e registram compras individuais de produtos com um product_id e price. Eventos recomendados de eCommerce (como ecommerce.order_placed) usam propriedades de evento personalizadas e capturam o contexto completo do pedido, incluindo múltiplos produtos, descontos e metadados em um único evento.
Com o lançamento dos eventos recomendados de eCommerce, o Braze eliminará gradualmente o evento de compra legado no futuro. Se você estiver usando eventos de compra atualmente, receberá um aviso prévio. Enquanto isso, você pode continuar usando eventos de compra até a data oficial de descontinuação. Consulte a visão geral dos eventos recomendados para mais detalhes.
Posso adicionar propriedades personalizadas aos eventos recomendados de eCommerce?
Os eventos recomendados de eCommerce têm um esquema definido com campos obrigatórios e opcionais. Você pode incluir dados personalizados adicionais dentro do objeto metadata para cada evento. No entanto, tags de nível de pedido personalizadas ou campos proprietários (como canal de compra ou informações da loja de varejo) não são suportados como propriedades de nível superior. Se você precisar desses campos para segmentação, continue enviando-os como eventos personalizados separados junto com seus eventos de eCommerce.
Preciso incluir external_id ao enviar eventos de eCommerce?
Depende de como você está enviando os eventos:
- Via o SDK: Não. Quando você usa um SDK do Braze, os eventos são automaticamente associados ao contexto do usuário atual do SDK (anônimo ou identificado). Você não precisa passar um identificador de usuário com cada chamada de evento; em vez disso, você pode identificar o usuário para esse contexto usando métodos como
changeUser. - Via a API REST (
/users/track): Sim. Cada solicitação de API deve incluir um identificador de usuário, comoexternal_id,braze_id,user_alias,emailouphone, porque a API não tem um contexto de “usuário atual”.
Por que as propriedades de produto aninhadas não aparecem no dropdown de configurações de Recomendações de IA?
Ao configurar recomendações de itens de IA, o dropdown Nome da propriedade lista apenas propriedades de evento de nível superior (como order_id, total_value e currency). Propriedades aninhadas dentro do array products (por exemplo, products.product_id ou products.variant_id) podem não aparecer nesta lista, mas você pode digitá-las manualmente usando notação de ponto no campo. Para a maioria das implementações de eCommerce, o Braze recomenda usar products.product_id como o identificador do item e emparelhá-lo com um catálogo cujos IDs de item correspondam aos seus valores product_id ou variant_id.
Por que alguns dos meus eventos de eCommerce não estão aparecendo no Braze?
Se os eventos não estão aparecendo nos perfis ou logs de usuários, verifique o seguinte:
- Tempo de flush de dados do SDK: O SDK do Braze armazena dados em cache localmente e faz upload periodicamente (normalmente dentro de 10 a 60 segundos). Chame
requestImmediateDataFlush()apóslogCustomEvent()para forçar um upload imediato. - Propriedades obrigatórias: eventos de eCommerce têm propriedades obrigatórias. Se uma propriedade obrigatória estiver faltando ou tiver um tipo de dado inválido, o evento pode ser rejeitado. Verifique se a carga útil do seu evento corresponde ao esquema obrigatório.
- Precisão do nome do evento: os nomes dos eventos de eCommerce diferenciam maiúsculas de minúsculas e devem corresponder exatamente (por exemplo,
ecommerce.checkout_started, nãoecommerce.checkoutStarted).
Editar esta página no GitHub