Searching for

Eventos para e-commerce

Além de rastrear eventos de produtos SaaS, nosso sistema também permite o recebimento de eventos de ecommerce, específicos de quem possui e quer acompanhar o comportamento dos usuários em uma loja ou comércio virtual.

Vale lembrar que, diferente dos demais eventos que podem ser recebidos pelo Pipz, os eventos de ecommerce tem um tratamento especial dentro do sistema. Isto acontece pois os dados e resultados recebidos são salvos em tabelas diferentes, que também podem servir como evento de carrinho abandonado.

Estes são os eventos de ecommerce que podem ser enviados para o sistema:

  • Busca de produto;
  • Visualização de categoria;
  • Visualização de produto;
  • Adição de produto no carrinho;
  • Remoção de produto do carrinho;
  • Efetivação da compra;

Como não depende de outros eventos para funcionar, usar o evento de compra finalizada (Completed Order) simultaneamente com o pipz.identify() já permite a criação de relatórios funcionais.

Busca de produto

O evento Products Searched, quando enviado com o atributo query, é capaz de rastrear os parâmetros de pesquisa utilizados pelo usuário para encontrar um determinado produto. O conteúdo do atributo query pode ser uma variável personalizada do seu sistema:

pipz.track('Products Searched', {
  query: string
});

Por exemplo:

pipz.track('Products Searched', {
  query: 'blue hotpants'
});

Visualização de categoria

O evento View Product Category é utilizado para rastrear uma categoria específica que o usuário tenha acessado em visita à sua loja virtual. O atributo category é responsável por receber o nome da categoria visitada:

pipz.track('View Product Category', {
  category: string
});

Veja um exemplo:

pipz.track('View Product Category', {
  category: 'Games'
});

Visualização de produto

Semelhante ao evento View Product Category, o evento Product Viewed recebe informações de visualização de produto no ecommerce. É um evento capaz de receber os atributos: ID única, SKU, nome, preço e categoria. Veja o modelo:

pipz.track('Product Viewed', {
  id: string,//Campo obrigatório 
  sku: string,
  name: string,//Campo obrigatório 
  price: float,//Campo obrigatório 
  category: string
});

Abaixo, um modelo com todos os atributos preenchidos:

pipz.track('Product Viewed', {
  id: '507f1f77bcf86cd799439011',
  sku: '45790-32',
  name: 'Monopoly: 3rd Edition',
  price: 18.99,
  category: 'Games'
});

Adição de produto no carrinho

O evento de adição de produto ao carrinho é muito semelhante ao evento Product Viewed, sendo a única diferença um novo atributo quantity, que envia a quantidade do produto que foi adicionada ao carrinho. Sendo assim, ele pode receber os seguintes atributos: ID única, SKU, nome, preço, quantidade e categoria. Veja o modelo:

pipz.track('Product Added', {
  id: string,//Campo obrigatório 
  sku: string,
  name: string,//Campo obrigatório 
  price: float,//Campo obrigatório 
  quantity: int,//Campo obrigatório 
  category: string
});

Abaixo, um modelo com todos os atributos preenchidos:

pipz.track('Product Added', {
  id: '507f1f77bcf86cd799439011',
  sku: '45790-32',
  name: 'Monopoly: 3rd Edition',
  price: 18.99,
  quantity: 3,
  category: 'Games'
});

Remoção de produto do carrinho

O evento de remoção de produtos do carrinho possui a mesma estrutura do Product Added, quando um ou mais itens são adicionados ao carrinho. A única diferença, neste caso, é o envio do evento Product Removed. Veja o modelo:

pipz.track('Product Removed', {
  id: string,//Campo obrigatório 
  sku: string,
  name: string,//Campo obrigatório 
  price: float,//Campo obrigatório 
  quantity: int,//Campo obrigatório 
  category: string
});

Abaixo, um exemplo de evento que envia dados da remoção de itens do carrinho:

pipz.track('Product Removed', {
  id: '507f1f77bcf86cd799439011',
  sku: '45790-32',
  name: 'Monopoly: 3rd Edition',
  price: 18.99,
  quantity: 2,
  category: 'Games'
});

Efetivação da compra

Para enviar um evento de efetivação da compra - Completed Order - utiliza-se uma nova sintaxe de evento para dados de compra, mas utiliza-se também o mesmo método para dados de produto. Veja abaixo:

pipz.track('Completed Order', {
  orderId: string,//Campo obrigatório 
  total: float,//Campo obrigatório 
  shipping: float,
  tax: float,
  discount: float,
  coupon: string,
  currency: string, //BRL, USD, EUR e afins. Campo obrigatório 
  tags: ['string'],//Com a tag podemos separar as ordens de forma personalizada(BI)  
  products: [
    {
  id: string,//Campo obrigatório 
  sku: string,
  name: string,//Campo obrigatório 
  price: float,//Campo obrigatório 
  quantity: int,//Campo obrigatório 
  category: string
    },
    {
  id: string,//Campo obrigatório 
  sku: string,
  name: string,//Campo obrigatório 
  price: float,//Campo obrigatório 
  quantity: int,//Campo obrigatório 
  category: string
    }
  ]
});

Como você pode perceber, a especificação dos produtos do pedido fazem parte do atributo products. Abaixo, um exemplo de evento Completed Order com dois produtos distintos:

pipz.track('Completed Order', {
  orderId: '50314b8e9bcf000000000001',
  total: 25,
  shipping: 3,
  tax: 2,
  discount: 2.5,
  coupon: 'hasbro',
  currency: 'USD',
  tags: ['NYC Store'],  
  products: [
    {
      id: '507f1f77bcf86cd799439011',
      sku: '45790-32',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      quantity: 1,
      category: 'Games'
    },
    {
      id: '505bd76785ebb509fc183733',
      sku: '46493-32',
      name: 'Uno Card Game',
      price: 3,
      quantity: 2,
      category: 'Games'
    }
  ]
});

Efetivação da compra + Identificação (recomendado)

Recomendamos enviar um evento de identificação toda vez que um usuário enviar um evento de Completed Order. Sendo assim, você terá certeza de que o evento de efetivação de compra será vinculado ao usuário identificado no momento do pedido. Segue o modelo de utilização:

pipz.identify(userID, {
  name: string,//Campo obrigatório  
  email: email,//Campo obrigatório 
  event: {
  'Completed Order': {
  orderId: string,//Campo obrigatório 
  total: float,//Campo obrigatório 
  shipping: float,
  tax: float,
  discount: float,
  coupon: string,
  currency: string, //BRL, USD, EUR e afins.//Campo obrigatório 
  products: [
    {
        id: string,//Campo obrigatório 
        sku: string,
        name: string,//Campo obrigatório 
        price: float,//Campo obrigatório 
        quantity: int,//Campo obrigatório 
        category: string, //Campo obrigatório 
    },
    {
        id: string,//Campo obrigatório 
        sku: string,
        name: string,//Campo obrigatório 
        price: float,//Campo obrigatório 
        quantity: int,//Campo obrigatório 
        category: string
    }
  ]
  }
  }
  }
);

O userID é o identificador único deste contato na sua base de dados e no seu sistema, que pode ser o e-mail ou qualquer outro identificador. Trata-se de um item obrigatório, pois é ele quem garante que as informações capturadas pelo Pipz estejam sempre sincronizadas com seu banco de dados.

Sempre que possível, recomendamos que você utilize o mesmo ID utilizado no seu banco de dados, pois os mesmos nunca mudam, enquanto endereços de e-mail podem mudar um dia. Com isso, mesmo que um contato mude seu endereço de e-mail, você continuará trackeando o mesmo usuário no Pipz, visto que seu ID remoto não mudou.

Segue um exemplo preenchido de um evento de identificação, enviado simultaneamente com um evento de efetivação da compra:

pipz.identify('12345', {
  name: 'John Doe', 
  email: 'john@doe.com'
  event: {
  'Completed Order': {
  orderId: '50314b8e9bcf000000000002',
  total: 25,
  shipping: 3,
  tax: 2,
  discount: 2.5,
  coupon: 'hasbros',
  currency: 'USD',
  products: [
    {
      id: '507f1f77bcf86cd799439011',
      sku: '45790-32',
      name: 'Monopoly: 3rd Edition',
      price: 19,
      quantity: 1,
      category: 'Games'
    },
    {
      id: '505bd76785ebb509fc183733',
      sku: '46493-32',
      name: 'Uno Card Game',
      price: 3,
      quantity: 2,
      category: 'Games'
    }
  ]
  }
  }
  }
);