Algumas rejeições de NFSe é necessário que a gente valide o XML, para descobrirmos o real motivo da rejeição.
Exemplos de rejeições que são necessárias validar:
- RecepcionarLoteRpsSincrono deve obedecer a um schema válido.
- Arquivo em desacordo com o XML Schema. Entre outras, em que a mensagem não é clara sobre o motivo, também podemos fazer a validação para descobrir.
Podemos validar XML de NFSe de qualquer cidade, não apenas de Brasília.
Como validar?
Necessário instalar o isseasy em sua máquina, basta rodar o instalador, não é necessário configurar nada.
1. Execute o exe em anexo a este email 'ValidadorIsseasy'
2. No validador, terá dos campos para serem informados
Em Arquivo xml: selecionar o Env-lot da nota, fica localizado em C:\Program Files (x86)\Alterdata\ISS-Easy\LOG
Em Arquivo XSD: selecionar o XSD em C:\Program Files (x86)\Alterdata\ISS-Easy\INIs_Provedores\Schema, indo dentro da pasta do provedor do cliente.
3. Clique em Validar. Será apresentado o campo inválido que necessita de correção:
BAIXE AQUI O VALIDADOR!
Brasília não trabalhava com RPS, sendo assim, agora a numeração das notas foi resetada para o número 1. |
Para verificar se sua rejeição está na lista e localizá-la com mais facilidade, aperte as teclas CTRL + F em seu teclado, após digite um trexo dela: ![]()
Como Resolver: Verifique se o número da nota fiscal eletrônica está correto ou se a série foi informada corretamente. A consulta poderá trazer resultado do tipo "Erro na estrutura do XML. Consulte a situação do lote antes de realizar a consulta da nota fiscal eletrônica". |
O erro E10 – RPS já informado anteriormente (GINFES) pode ocorrer devido aos seguintes fatores:
Como Resolver: Essa mensagem de erro pode ocorrer quando já existe um RPS que foi convertido em NFS-e com o mesmo numero e serie ou quando o lote estiver na fila de processamento e o contribuinte continuar a realizar o envio do mesmo lote, a partir do segundo lote enviado será visualizada a referida mensagem caso o primeiro seja processado com sucesso.Utilize o serviço de consulta "servico_consultar_nfse_rps_envio_v03" ou a opção "Obter NFS-e" no menu "Recibo Provisório" do site do Ginfes, para verificar o numero da NFS-e que foi gerada a partir do RPS informado. |
Verificado que é necessário fazer a solicitação do RPS no site do provedor, após feita a solicitação, há um prazo de 48 horas para autorizar. Como solicitar: 2. No menu lateral, vá em Solicitação de documentos fiscais > solicitação. Selecione RPS e a quantidade (estamos colocando 1000 por padrão) → IMAGEM 3. Clique no ícone de OK, irá aparecer uma tela de aprovação, basta autorizar a solicitação. |
O erro E16 - A data da emissão do RPS não poderá ser superior a data de hoje (GINFES) pode ocorrer devido ao seguinte fator:
Como Resolver: A data e hora da emissão do RPS nunca poderão ser maiores que o atual. Realize a alteração da tag para que o envio seja realizado. |
O erro ocorre quando:
Como Resolver: Esse campo não é obrigatório, porém ao ser informado deverá esse estar correto. Caso o erro persista remova a tag e envie novamente o arquivo. |
O erro E35 - Código de tributação inexistente, pode ocorrer devido aos seguintes fatores:
Como Resolver: |
Retirar a opção de ISS retido na fonte no calculo de ISS na operação. Outra opção é a operação não calcular ISS. |
O erro é apresentado quando o código do município onde o serviço foi realizado está errado ou é inexistente. |
Como Resolver:Contribuintes sem cadastro no município, não estão autorizados a realizar a emissão da nota fiscal eletrônica via site ou via WebService. É necessário que além do cadastro o contribuinte possua autorização para realizar a emissão da nota fiscal eletrônica. A liberação do ambiente de homologação poderá ser solicitado através do e-mail: atendimento@ginfes.com.br.No envio do Lote deverá conter informações como: CNPJ e Inscrição municipal de acordo com o cadastro da prefeitura. Se o contribuinte possuir dígito verificador em sua inscrição municipal, deverá realizar a consulta na prefeitura para identificar se o digito verificador foi contemplado em seu cadastro. Não poderá ser utilizado o "-" (ifem). Caso o dígito verificado não esteja contemplado esse não poderá ser informado. |
O CNPJ/CPF do tomador não é valido ou foi informado erroneamente. Como Resolver: O sistema realiza a validação dos números informados para CPF e CNPJ. Verifique se os números foram informados de forma correta.Nos casos em que o tomador pessoa física não for indicado como tomador, deixe a tag Tomador fechada. |
Verificar se a inscrição municipal do tomador está isento, após colocar a mesma do IE. |
Inormar o CNPJ do Prestador idêntico ao do Tomador. Como Resolver: O prestador de serviço não poderá ser o próprio consumidor ao realizar a emissão da nota fiscal eletrônica. |
Tomador com mais de uma IM cadastrada na base de dados do município sob o mesmo CNPJ. Como Resolver: O prestador de serviço deverá informar a inscrição municipal do tomador de serviço para que a nota fiscal eletrônica seja emitida.Solicite ao tomador de serviço que informe a inscrição municipal que deverá ser indicada. |
O CEP do Tomador foi informado incorretamente ou não corresponde ao endereço do tomador. Como Resolver: Verifique através do site dos correios se o CEP do logradouro onde o tomador possui estabelecimento está correto. Informe somente os números. |
Pode ocorrer quando o código do IBGE onde o tomador é estabelecido foi informado incorretamente ou é inexistente. Como Resolver: Consulte o código da cidade no site do IBGE através do link http://www.ibge.gov.br/home/geociencias/areaterritorial/area.shtm. Caso o erro persista entre em contato pelo e-mail atendimento@ginfes.com.br informando os dados da empresa e o nome do município solicitando a inclusão do mesmo na base de dados. |
Ao informar o código de obra incorretamente ou diferente do cadastro de obra realizado. Como Resolver: Verifique no sistema de Gestão de ISS o número do código de obra cadastrado. O número deverá ser informado no arquivo XML conforme o cadastro realizado. |
Como Resolver: O número do protocolo deverá ser informado corretamente com todos os números que foram disponibilizados.Verifique se o número do protocolo que está sendo consultado pertence ao ambiente em que está realizando a pesquisa (Produção ou Homologação). Um protocolo emitido no ambiente de homologação não será visualizado no ambiente de produção. Um protocolo emitido no ambiente de produção não será visualizado no ambiente de homologação. |
O cliente tem que estar solictando junto com a Prefietura a liberação do numero RPS pelo site https://df.issnetonline.com.br/online/Login/Login.aspx?ReturnUrl=%2fonline |
Nesse provedor eles é que dizem qual série o cliente pode usar. Aparentemente por padrão estão liberando séries 3 ou 8. |
O campo UF do tomador é um campo obrigatório quanto o tomador possui CNPJ. Como Resolver: Informe o Estado da localidade do tomador de serviço. Esse campo deverá ser abreviado com apenas duas letras. Exemplo: São Paulo, deverá ser informado SP. |
O campo “E-mail” do tomador não está informado corretamente. Como Resolver: O campo e-mail não é obrigatório, porém, para que o tomador receba a nota fiscal eletrônica através do e-mail, esse deverá ser informado com os caracteres corretos, sem espaço em branco, com o símbolo “@” e “.com”, somente dessa maneira o sistema entenderá que o campo possui um e-mail válido. Se o e-mail informado não estiver cadastrado o e-mail com a nota fiscal eletrônica não será enviada ao tomador. |
O campo possui menos de 10 caracteres. Como Resolver: O campo referente ao telefone do tomador não é obrigatório, porém caso esteja informado, deverá esse contemplar o DDD referente à localidade + o número do telefone. |
O campo possui menos de 10 caracteres. Como Resolver: O campo referente ao telefone do tomador não é obrigatório, porém caso esteja informado, deverá esse contemplar o DDD referente à localidade + o número do telefone.
|
Ocorre quando a inscrição municipal informada não se refere à inscrição cadastrada para o CNPJ do Prestador. Como Resolver: Verifique o número da inscrição municipal que está sendo enviado no arquivo XML. O número da inscrição municipal não pode ser diferente do que está no cadastro da prefeitura. |
Como Resolver: Se o município possuir regra de tributação para emissão da nota fiscal eletrônica, o prestador de serviço não poderá informar uma natureza da operação divergente do que está configurado para o item de serviço/atividade. Exemplo: se o item de serviço possuir a configuração de Tributação no Município (1) não poderá conter no arquivo a natureza da operação Tributação Fora do Município (2). Se o contribuinte ou item de serviço/atividade possuir configuração de Isenção (3), Imunidade (4) ou exigibilidade suspensa (5 ou 6), não poderá conter no arquivo qualquer outra natureza da operação divergente do que foi configurado. |
O Regime foi informado incorretamente diferente do cadastrado da Prefeitura. Como Resolver: Os regimes deverão ser informados conforme o manual ABRASF 0-Nenhum, 1 – Microempresa Municipal, 2 – Estimativa, 3 – Sociedade de Profissionais, 4 – Cooperativa, 5 – MEI 6 – EPP. Caso não saiba qual o regime a ser informado, entre em contato com a prefeitura. |
Como Resolver: Se o prestador de serviço não possuir autorização para a emissão da nota fiscal eletrônica, esse deverá realizar a solicitação. Somente após a liberação da prefeitura poderá o contribuinte realizar a emissão da nota fiscal eletrônica.Para a utilização do ambiente de homologação é necessário realizar a solicitação através do e-mail: atendimento@ginfes.com.br com os seguintes dados: CNPJ; inscrição municipal; Município; Telefone para Contato. E-mails enviados sem a informação solicitada serão descartados. |
Como Resolver: Realize o download dos schemas através do site Ginfes e realize a validação do arquivo XML com o respectivo schema XSD.O arquivo não poderá ter uma codificação diferente de UTF8. Caso o arquivo não esteja com a codificação correta esse não será processado ou convertido. |
Como Resolver: Quando o prestador de serviço for optante do simples nacional é necessário informar no campo o regime conforme cadastrado na prefeitura. |
Como Resolver: Não poderá realizado o envio de RPS para conversão de Notas Fiscais Eletrônica com o certificado digital de terceiros, exceto quando o CNPJ da Filial possuir os mesmos 8 números iniciais do CNPJ da Matriz. |
Como Resolver: O arquivo XML deverá ser enviado com o mesmo CNPJ que possui a assinatura digital. A assinatura digital não poderá ser de terceiros. |
Como Resolver: A base de cálculo da NFS-e é o Valor Total de Serviços, subtraído do Valor de Deduções previstas em lei e do Desconto Incondicionado. Informe o valor corretamente para que o RPS seja processado. O valor informado não poderá conter erros de calculo. |
Como Resolver: Informe o valor líquido corretamente, subtraindo os valores conforme solicitado no Manual ABRASF.O Valor Líquido da NFS-e é calculado pelo Valor Total de Serviços subtraindo-se: Valor do PIS, COFINS, INSS, IR, CSLL, Outras Retenções, ISS Retido, Desconto Incondicionado e Desconto Condicionado. |
Quando é excedida a quantidade máxima de RPS por lote. Como Resolver: Deverá ser realizada o envio de 50 RPS por lote. |
Como Resolver: Caso o município possua atividades vinculada ao item da lei 116, esse campo é obrigatório. O contribuinte deverá analisar a lista de atividades do município através do site Ginfes da prefeitura. Se o município utilizar apenas a lista de serviço da lei 116 essa TAG deverá ser excluída do arquivo. |
Como Resolver: Essa tag não é obrigatória ser informada, pois o sistema realiza o calculo da mesma, sendo assim se a tag constar no arquivo o valor do ISS deverá ser informado, mesmo que o valor do ISS seja 0,00. O valor do ISS deverá ser informado corretamente respeitando o arredondamento matemático. Poderá ser informado com o valor de até 15 caracteres com 2 casas decimais separados por "." (ponto). |
Como Resolver: Quando o valor do imposto é retido as tags ValorIss e ValorIssRetido deverão ter o mesmo valor, lembrando que o calculo do valor do ISS é Base de Calculo * Alíquota do Município. |
Como Resolver: Nesse caso o sistema está realizando a regra de tributação indicando que o valor do imposto deverá ser retido. Informe na tag IssRetido com o valor "1", dizendo que o valor do ISS é retido, dessa forma o campo ValorIssRetido deverá ser informado com o valor do imposto e a tag ValorLiquido deverá ser subtraído com o valor do ISS Retido. |
Como Resolver: Nesse caso o valor do imposto não pode ser retido, dessa forma verifique se a tag IssRetido possui o valor "2" (não retido). A TAG ValorIssRetido deverá ser informado com o valor "0,00". |
Como Resolver: Informe o no arquivo XML a tag IssRetido com o valor "1", dizendo que o valor do ISS é retido, dessa forma o campo ValorIssRetido deverá ser informado com o valor do imposto e a tag ValorLiquido deverá ser subtraído com o valor do ISS Retido. |
Como Resolver: O formato para que o sistema identifique corretamente o valor da alíquota é: 0.0000. Exemplo: Se o valor da alíquota for de 5% o formado deverá ser 0.0500. Caso o valor da alíquota seja 2,79%, o formado deverá ser 0.0279. |
Como Resolver: Remova a tag CodigoTibutacaoMunicipio e informe apenas o item de serviço da lei 116 na tag ItemListaServico. |
Como Resolver: Se o serviço for de tributação no município, deverá ser informado o valor da alíquota conforme a lista de serviço do município. |
Como Resolver: Verifique se o serviço informado está na lista de serviço do município. Se não possuir na lista de serviço do município, esse item não possui regra de tributação, desse modo a nota fiscal eletrônica não será emitida. |
Como Resolver: Se o contribuinte for optante do Simples Nacional o valor do ISS deverá ser R$ 0,00, exceto quando o ISS for retido, nesse caso o valor do ISS deverá ser informado. |
Como Resolver: O valor da alíquota é definido pelo município e não poderá ser diferente do valor entre 2% e 5%. Verifique o valor informado. Caso haja dúvida, consulte a lista de serviço/atividade do município. |
Como Resolver: Quando a empresa ou atividade possui um beneficio determinado pela Prefeitura, deverá o contribuinte informar o valor da alíquota conforme o beneficio concedido. Não será permitida alíquota com o valor maior ou menor que o benefício configurado. |
Como Resolver: Quando a empresa ou atividade possui um beneficio determinado pelo Município, deverá o contribuinte informar o valor da dedução conforme o beneficio concedido. Não será permitida a dedução com o valor maior ou menor que benefício configurado. |
Como Resolver:
|
Utilizar a planilha do link https://docs.google.com/spreadsheets/d/1r5l0j-x7yvtElLzOGfVrrwygfTWHITHm/edit?usp=share_link&ouid=110896182743082557653&rtpof=true&sd=true |
Como Resolver: Insira a assinatura digital no arquivo XML, caso contrário o lote não será processado. |
Como Resolver: Após realizar a assinatura do arquivo XML esse não poderá ser alterado quando o envio for realizado. Realize as alterações no arquivo antes de assinar o XML com o certificado digital. |
Como Resolver: Neste caso você deve entrar em contato com a autoridade certificadora responsável pelo certificado, pois este erro ocorre quando a autoridade certificadora esta com problemas para enviar a lista de certificados revogados ao servidor WebService do Ginfes.Tente enviar os lotes novamente em trinta minutos, pois este é o tempo de vida útil da lista de certificados revogados e após este intervalo o Ginfes irá realizar a solicitação da CRL ao servidor da entidade certificadora novamente. |
Como Resolver: É necessário que seja realizado o contato através do e-mail atendimento@ginfes.com.br informando o erro, os dados do certificado e o CNPJ da empresa que está realizando o consumo do serviço WebService. Após identificarmos que o certificado é válido, esse será incluso na lista de autoridades confiáveis. |
Como Resolver: A TAG referente ao código de obra não pode ser removida do arquivo quando o serviço prestado for referente à construção civil. |
Como Resolver: Para os municípios que possuem a obrigatoriedade do código de obra quando o serviço prestado refere-se à construção civil a tag deverá conter o número do código de obra de acordo com o cadastro de obra realizado no sistema de Gestão de ISS. |
Como Resolver: Verifique o local da obra cadastrada no Gissonline, e informe o mesmo local (municipio) no campo "Local da prestação" no site Ginfes ou informe o codigo do IBGE do municipio na tag ' ' que se encontra dentro do elemento (tag) " " no XML de envio do respectivo recibo provisorio. |
Como Resolver: A prefeitura realizou o bloqueio de cancelamento da NFS-e pelo contribuinte, sendo assim, entrem em contato com a prefeitura e solicite o cancelamento via processo administrativo. |
Como Resolver: Se o município não permitir a emissão de nota fiscal eletrônica com serviço eventual, entre em contato com a prefeitura para maiores esclarecimentos. |
Como Resolver: Para resolver este erro, será necessário pegar o mesmo certificado vinculado no SaaS/PlugNotas para este prestador e instalar em sua máquina. Após isso, acesse o Portal da Prefeitura com este certificado e entre na Opção Contribuinte > Certificado > Vincular e vincule seu certificado. Depois, pode estar reenviando sua nota. |
Como Resolver: Incrementar o numero do lote no envio do RPS e enviar novamente. |
Como Resolver: Altere o horário do PRS para ficar atrasado em 10min e envie novamente o RPS a prefeitura. Caso não tenha sucesso, contate a prefeitura para verificar a liberação do Web-Service para o CNPJ emissor. |
Como Resolver: Faça login no portal da prefeitura e em seguida, acesse a opção "Solicitação de Documentos Fiscais" > "Solicitar" e insira a quantidade de RPS. Após realizar a solicitação, será necessário aguardar o deferimento da prefeitura. Você pode visualizar o andamento em "Solicitação de Documentos Fiscais" > "Consulta Solicitação" . Depois de liberado, constará como "Entregue". |
Como Resolver: Ao receber esta mensagem de erro recomendamos que o contribuinte entre em contato imediatamente com o suporte tecnico Ginfes para que a equipe de suporte tecnico e contribuinte possam realizar analises em conjunto dos dados da empresa e assim podemos encaminhar o contribuinte ao canal responsavel para a solução do problema. |
Como Resolver: Verifique a numeração da nota fiscal eletrônica ou se contem algum espaço em branco informado no inicio ou no fim da numeração da nota fiscal eletrônica.Esse erro também poderá ocorrer caso o número do CNPJ ou Inscrição Municipal do prestador de serviço tenha sido alterado posterior à emissão, nesse caso a consulta somente será realizada com os dados da empresa que efetuou a emissão da nota fiscal eletrônica.Se a consulta for realizada pelo número do RPS, a numeração do mesmo deverá ser informado corretamente, caso contrario a pesquisa não terá resultado.Na consulta de Nota Fiscal Eletrônica por período informe o período inicial e final corretamente. A mensagem será visualizada somente se não possuir nota fiscal eletrônica no período consultado. |
Como Resolver: Esse erro não está relacionado com a data de emissão e sim com o cadastro na prefeitura. Geralmente acontece quando o emitente não tem permissão para emissão da NFSe via web service. Para solucionar, o prestador deve seguir esses seguintes passos:
Após a atualização, é necessário que o responsável da tributação dentro da prefeitura aprove os novos dados, logo é necessário que entre em contato com o responsável. |
Como Resolver: Remova o atributo schemalocation do arquivo. |
Como Resolver: No TX2 do padrão único faça as seguintes mudanças:
Isso devido ao fato do padrão DSF para contribuintes que estão enquadrados no regime Simples Nacional com excesso de receita, aceitar o XML preenchido como se o cliente não fosse do simples nacional. |
Como Resolver: No TX2 do padrão único altere o campo TipoTributacao para o valor 5 - "Retida" e faça novamente o envio do RPS. |
Inserir o código de tributação referente a lista de serviço vista no link https://docs.google.com/spreadsheets/d/1r5l0j-x7yvtElLzOGfVrrwygfTWHITHm/edit?usp=share_link&ouid=110896182743082557653&rtpof=true&sd=true e então vincular na cidade de brasília e apontar no cadastro de produto → dentro da empresa na aba de tributos > serviço. |
Quando ocorre essa rejeição, é porque o provedor verificou que o tomador do serviço (cliente da nota) é substituto tributário, neste caso, é necessário ter retenção de ISS. Para verificar se o tomador realmente é substituto, acesse https://df.issnetonline.com.br/online/NotaDigital/ListaPrestadoresNotaDigital.aspx , informe o CNPJ do tomador e clique em Localizar. Irá confirmar se ele é substituto tributário ou não. No cadastro de cliente é necessário marcar 'Substituto tributário de ISS'. |
Essa rejeição ocorre quando algum campo obrigatório está vazio. Exemplo: Se o campo de CEP do tomador estiver em branco, informar o CEP. |
Autor do artigo:Rayana.sup.shop (Não remova esse quadro)Descreva o passo a passo para o cliente seguindo os padrões de escrita de artigos, como:
|
(Não remova esse quadro)Essas informações não se tonam parte do conteúdo em sua nova página, elas ficam ocultas e só aprecem para usuário logado e se o artigo/dica estiver em modo de edição! |
<div id="text-end"></div>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag2(){dataLayer.push(arguments);}
gtag2('js', new Date());
gtag2('config', 'UA-193974933-1');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag2('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('conteudo-finalizado')
reportouFinalDoConteudo = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
var terminou = false;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
});
})();
</script>
|
<div id="text-end"></div>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-19PXZY9EEV"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag3(){dataLayer.push(arguments);}
gtag3('js', new Date());
gtag3('config', 'G-19PXZY9EEV');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag3('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
var reportouMetadeAssistido = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('video-conteudo-finalizado')
reportouFinalDoConteudo = true;
}
var metadeAssistido = data.seconds > (data.duration/2);
if(metadeAssistido && !reportouMetadeAssistido){
gtagvideo('video-metade-assistido')
reportouMetadeAssistido = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
const tamanhoDaTela = window.innerHeight;
let terminou = false;
let chegouNaMetade = false;
// se não remover o tamanho da tela do meio da página, o evento só será disparado quando o meio da página estiver acima da área visível.
// fazendo dessa forma assim que o meio da página estiver visível na base da janela o evento será disparado.
const meioDoTexto = (document.getElementById('text-end').getBoundingClientRect().top / 2) - tamanhoDaTela;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < tamanhoDaTela){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
//RASTREIO DE LEITURA ATÉ O MEIO DA PÁGINA
if(meioDoTexto < window.scrollY) {
if(!chegouNaMetade){
gtagevents('artigo-lido-ate-metade','Pagina');
chegouNaMetade = true;
}
} else {
chegouNaMetade = false;
}
});
})();
</script>
|