Javascript e AMP
Tracking Analytics

Adicionar script de Tracking do Analytics

O script deve ser adicionado em todas as páginas do domínio/subdomínio do site que se deseja monitorar e executar ações.
Copie e cole o script dentro do cabeçalho (head) de suas páginas:

<script src="https://www.netdeal.com.br/resources/netdeal.js?m=CODIGO_IDENTIFICACAO_NETDEAL" async></script>


Acrescentar informações na pageview - NetdealEvents

Esse atributo recebe como valor um array de key e value.
É utilizado para adicionar informações pertinentes a pageview.
Exemplos: código do usuário logado, tipo de página, restrição da página…

Como utilizar:

var NetdealEvents = window.NetdealEvents || [];
NetdealEvents.push([key, value]);
# key = String # value = Qualquer valor dos tipos abaixo:
String = "alphanumeric";
Number = 1, 1.1, -1.1, "10.00";
Date = "2017-01-01"
Datetime = "2017-01-01T00:00:00.000Z"
Array = ["a", "b", "c"] de qualquer tipo anterior
Map = { "campo-a" : "a", "campo-b" : "b", "campo-c" : "c"] de qualquer tipo anterior

Exemplo de utilização:
var NetdealEvents = window.NetdealEvents || [];
NetdealEvents.push(["restriction_type", "free / normal / premium"]);
NetdealEvents.push(["logged_id", 123]);
NetdealEvents.push(["consumer_info", {
     "type": "CADASTRO / ASSINANTE"
}]);


Atributos com valores sobre o conteúdo da página

Atributo

Descrição

Valores

value_canonical

URL única da página

restriction_type

Tipo de restrição da página para planos de assinaturas

"free"

"standard"

"premium"

...

page_type

Tipo de conteúdo da página

"home"

"article"

"website"

"search"

"product"

...

page_title

Título da página

page_description

Descrição da página

page_overhead

Caractéristica que define um conteúdo

"Novidade!"

"STF"

"Luto"

"Lançamento"

page_image

Endereço da imagem principal da página

page_author

Nome do autor da página

único autor:

"Nome do autor",

ou vários autores:

"Nome A", "Nome B",...

page_author_content_type

Conteúdo da página de origem própria ou de referência de terceiros

"OWN"

"THIRD_SOURCE"

"FREELANCER"

page_published_time

Data de publicação do conteúdo (padrão UTC)

"2020-07-02T12:30:43Z"

page_modified_time

Data de modificação ou atualização do conteúdo (padrão UTC)

"2020-07-02T12:30:43Z"

page_tags

Palavras chaves do conteúdo (keywords, tags,...)

"A", "B",...

page_sections

Seção ou Categoria que representa o conteúdo

"Futebol", "Automóveis", "Esportes", …

page_location

País(es), estado(s), cidade(s) ou região(es) destinadas para o conteúdo

"Curitiba", "Araucária", "Campo Largo"...

"Paraná"

"Brasil"
"Exterior"

page_content_aspect

Aspecto da leitura do conteúdo

"Quicknews"

"Breaknews"

"Softnews"

"Hardnews"

"Evergreen"


Atributos com valores sobre os dados do usuário

Atributo

Descrição

Valores

logged_id

Código do usuário logado (se logado)

1234

consumer_info

Informações sobre o usuário logado (se logado)

{

   email : '[email protected]',

   name : 'Nome completo',

   type : "CADASTRO / ASSINANTE",

   ...

}

AMP
Tracking Analytics páginas AMP

Adicionar script de Tracking AMP

O script deve ser adicionado em todas as páginas do domínio/subdomínio do site que se deseja monitorar.
Copie e cole o script dentro do body de suas páginas.

<amp-analytics config="https://www.netdeal.com.br/resources/js/amp-analytics-config.json"
data-include-credentials="include">
    <script type="application/json">
    { "vars": {
        "ndid": "Código fornecido pala Netdeal para identificação",
        "value_canonical" : "https://site.com.br",
        "og_type" : "article",
        "restriction_type" : "default",
        "page_tags" : ["tagA", "tagB"],
        "page_sections" : ["Section A", "Section B"],
        "page_authors" : ["Nome do autor"],
        "page_author_content_type" : "OWN",
        "page_published_time" : "2020-01-01T00:00:00Z",
        "page_modified_time" : "2020-01-01T00:00:00Z",
        "page_title" : "Título da página",
        "page_description" : "Descrição da página",
        "page_image" : "https://site.com.br/image.jpg",
        "page_content_aspect" : "Softnews",
        "page_location" : ["Maringá", "Paraná"]
    } }
    </script>
</amp-analytics>
Virtual Pageview
Gerar nova pageview sem recarregar a página

Se a página contém a função de rolagem infinita ou carregamento assíncrono e navegação sem recarregar o browser, pode-se utilizar da função de Virtual Pageview para registrar novas pageviews e executar ações.
Para executar uma nova pageview, execute o script abaixo:

NetdealJs.newPageview(newUrl, propertiesEvent, optionsRequest);
Sendo os parâmentros:
newUrl = "Url atual da página" obrigatório
propertiesEvent = Objeto com informações da nova pageview
page_type = Tipo da página, ex: article, website, search, etc...
page_title = Título da página
page_description = Descrição da página
page_image = Endereço da imagem principal da página
page_author = Nome do autor da página
page_published_time = Data de publicação da página
page_modified_time = Data de modificação da página
page_tags = Tags da página
page_sections = Seção ou categoria que representa o conteúdo da página, ex: Futebol, Automóveis, Esportes, etc...
restriction_type = Tipo de restrição da página para seus planos de assinaturas, ex: free, stardart, premium, etc...
logged_id = Código do usuário logado (se logado)
consumer_info = Informações sobre o usuário logado (se logado)
'outros_atributos' = Qualquer atributo que seja necessário

Obs: Por padrão o script da Netdeal irá ler essas informações nas Meta Tags do HEAD da página, 
caso seja inserido o objeto acima, este irá substituir os valores capturado nas Meta Tags.
optionsRequest = Objeto com opções do request
execute_actions = true/false Valor padrão true
Exemplo:
NetdealJs.newPageview(
        "http://meusite.com.br/nova-pagina",
        {
            page_type: 'article',
            page_title: 'Nome do artigo',
            page_description: 'Descrição do artigo',
            //...
            page_sections: ['Categoria A', 'Categoria B'],
            restriction_type: 'stardart',
            logged_id : 123,
            consumer_info : {
                "type": "CADASTRO / ASSINANTE",
                //...
            },
            qualquer_outro_atributo : 'Valor'
        },
        {
            execute_actions : true,
            callback: function (actionInfo, templateHtml) {
                console.log("callback "+actionInfo);
            },
            callbackNotFound: function (actionType) {
                console.log("callbackNotFound "+actionType);
            }
        }
);

HTML e meta tags
Meta tags

Adicionar informações via meta tag

Com meta tags é possível acrescentar informações para segmentar seu público alvo em determinadas páginas e características.
Exemplo de utilização de meta tag:

<meta property="netdeal:page_title" content="Título da sua página"/>

Padronizamos a nomeclatura das principais tags utilizadas pelo Analytics da Netdeal:
netdeal:page_type = Tipo da página, ex: article, website, search, etc...
netdeal:page_title = Título da página
netdeal:page_description = Descrição da página
netdeal:page_image = Endereço da imagem principal da página
netdeal:page_author = Nome do autor da página
netdeal:page_published_time = Data de publicação da página
netdeal:page_modified_time = Data de modificação da página
netdeal:page_tags = Tags da página
netdeal:page_sections = Seção ou categoria que representa o conteúdo da página, ex: Futebol, Automóveis, Esportes, etc...
netdeal:restriction_type = Tipo de restrição da página para seus planos de assinaturas, ex: free, stardart, premium, etc...

Para facilitar a implantação, a Netdeal usa das meta tags já inseridas em sua página das especificações Open Graph, Twitter cards data e Schema.org markup, sendo assim, caso você já tenha implementado essas meta tags não é necessário implantar novamente as mesmas informações para a Netdeal, segue mapeamento que será utilizado pela Netdeal para cada tipo de meta tag:
Meta tag Netdeal Meta tag correspondentes
netdeal:page_type og:type
netdeal:page_title og:title ou twitter:title ou <title>Seu Título</title>
netdeal:page_description description ou og:description ou twitter:description
netdeal:page_image og:image ou twitter:image
netdeal:page_author article:author
netdeal:page_published_time article:published_time
netdeal:page_modified_time article:modified_time
netdeal:page_tags article:tag
netdeal:page_sections article:section

Você também pode adicionar qualquer outra meta tag para que a Netdeal associe a sua pageview, para isso é necessário que a meta tag inicie com "netdeal:", exemplo:
<meta name="netdeal:nome_da_sua_tag" content="Conteúdo da sua tag">



Rest API
Authentication

Token de Acesso

O Netdeal foi projetado com arquitetura Restfull Stateless, sendo assim toda requisição para consumir os serviços será necessário um Token de Acesso.
Com o resource abaixo e as chaves 'appId' e 'secretPass' que foram previamente fornecidas pelas equipe Netdeal, será possível requisitar um Token de Acesso.
A vigência de um Token de Acesso é 30 minutos.

Resource URL

POST {{endpoint}}/open/request-token

Request

{
    "appId" : "1231231231",
    "secretPass" : "skuj8173719s..."
}

Response

200 OK 401 Unauthorized
{
    "token" : "slkfj247289374289.....",
}

Request services com o Token de Acesso

No HEADER de uma requisição, é necessário incluir o parâmentro X-AUTH-TOKEN com o Token de Acesso previamente adquirido

HEADER
{
    "X-AUTH-TOKEN" : "slkfj247289374289....."
}
Data Integration

Integrando dados

A integração fora projetada para suportar qualquer tipo de estrutura de dados. Utilizando da composição Chave -> Valor, a estrutura para integrar uma informação é:

{
  "key": "...",Nome que representa sua entidade ou informação, ex: CONSUMER/PRODUCT/VIEW... 
                                    Obrigatório
                                
  "properties": {
    "id": "...",ID caso seja uma entidade, ex: CONSUMER... Obrigatório se entidade
    "campo": "...",Unidade de informação
    "sub-key": {Assim como uma entidade, pode se usar sub objetos de composição
      "sub-campo": "...",
      "sub-key": {
        "sub-campo": "..."
      }
    }
  "createOn": "...",Data da informação, caso não informado será a data do processamento
  }
}
Os campos são dinâmicamente tipados. Os formatos suportados são:
Tipo Exemplo
String "alphanumeric"
Number 1, 1.1, -1.1, "10.00"
Date "2017-01-01"
Datetime "2017-01-01T00:00:00.000Z"
Array ["a", "b", "c"] de qualquer tipo anterior
Map { "campo-a" : "a", "campo-b" : "b", "campo-c" : "c"] de qualquer tipo anterior

Resource URL

POST {{endpoint}}/api/event/batch

Request

[
    {
      "key": "consumer",
      "properties": {
        "id": "123456789",
        "name": "Nome do Cliente",
        "email": "[email protected]",
        ...
      }
      "createOn": "2017-01-01T00:00:00Z"
    }...
]

Response

200 OK 204 No Content 401 Unauthorized

400 Bad Request
{
    "erros" : [ { "message" : "Limite máximo de 1000 eventos" } ]
}

Os dados são processados de forma assíncrona.