Solução de problemas de rastreamento

Nesta seção, você encontrará perguntas comuns relacionadas à configuração e à implementação de rastreamento no Adobe Campaign Classic.

O fluxo de trabalho de rastreamento está falhando

Meu fluxo de trabalho de rastreamento está falhando. Como posso detectar as linhas corrompidas no arquivo de rastreamento?

OBSERVAÇÃO

Disponível somente para Windows

O arquivo de log de rastreamento corrompido …/nl6/var/<instance_name>/redir/log/0x0000 log pode interromper o fluxo de trabalho de rastreamento. Para detectar facilmente linhas corrompidas e removê-las para retomar o fluxo de trabalho de rastreamento, você pode usar os comandos abaixo.

Sei em qual arquivo está a linha corrompida

Nesse caso, linhas corrompidas podem ser encontradas no arquivo de log 0x00000000000A0000.log, mas o mesmo processo pode ser aplicado a um conjunto de arquivos, um por um.

$ cd {install directory}/var/{instance name}/redir/log
$ cat 0x00000000000A0000.log | sed -nE '/^[[:alnum:]]{2}x[[:alnum:]]*\t[0-9T:\.-]*\t[0-9a-fA-F]*\t[0-9a-fA-F]*\t[0-9a-fA-F]*\t[[:alnum:]]*\t[[:alnum:]-]*\t[[:print:]]*\t[[:print:]]*\t[[:print:]]*\t([0-9a-fA-F\.:]*|[0-9a-fA-F\.:]*\t[[:print:]]*|[0-9a-fA-F\.:]*,[[:print:]]*)$/!p'

Em seguida, você pode interromper o fluxo de trabalho de rastreamento, excluir as linhas corrompidas e reiniciar o fluxo de trabalho.

Não sei em qual arquivo está a linha corrompida

  1. use a seguinte linha de comando para fazer verificar em todos os arquivos de rastreamento.

    $ cd {install directory}/var/{instance name}/redir/log
    $ cat *.log | sed -nE '/^[[:alnum:]]{2}x[[:alnum:]]*\t[0-9T:\.-]*\t[0-9a-fA-F]*\t[0-9a-fA-F]*\t[0-9a-fA-F]*\t[[:alnum:]]*\t[[:alnum:]-]*\t[[:print:]]*\t[[:print:]]*\t[[:print:]]*\t([0-9a-fA-F\.:]*|[0-9a-fA-F\.:]*\t[[:print:]]*|[0-9a-fA-F\.:]*,[[:print:]]*)$/!p'
    
  2. O comando lista todas as linhas corrompidas. Por exemplo:

    50x000000000FD7EC86 2017-06-24T21:00:50.96 1f506d71 1aeab4b6 1af77020 0 e5155671-4ab7-4ce4-a763-3b82dda6d881 h
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 52.46.20.64
    
    OBSERVAÇÃO

    Um retorno de carro foi adicionado antes do Agente do Usuário para permitir melhor leitura e não reflete a renderização real.

  3. Execute um comando grep para localizar o arquivo correspondente.

$ grep -Rn <Log Id>
# for example:
$ grep -Rn 50x000000000FD7EC86
  1. Localize o log com falha com o nome do arquivo e o número da linha. Por exemplo:

    ./0x000000000FD7E000.log:3207:50x000000000FD7EC86 2017-06-24T21:00:50.96 1f506d71 1aeab4b6 1af77020 0 e5155671-4ab7-4ce4-a763-3b82dda6d881 h
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 52.46.20.64
    
    OBSERVAÇÃO

    Um retorno de carro foi adicionado antes do Agente do Usuário para permitir melhor leitura e não reflete a renderização real.

Em seguida, você pode interromper o fluxo de trabalho de rastreamento, excluir as linhas corrompidas e reiniciar o fluxo de trabalho.

Quando você tenta acessar os links de rastreamento, a seguinte mensagem é exibida:

Requested URL '/r/ id=h787bc0,281a4d8,281a4da&amp;p1=1' cannot be found

  1. Acesse a URL <redirection_server>/r/test e verifique se o número da compilação e o host local foram retornados pela solicitação.

  2. Verifique a configuração spareServer no arquivo serverConf.xml do servidor de rastreamento. Essa configuração deve estar no modo de redirecionamento.

    <redirection>
       <spareServer _operation="update" enabledIf="$(hostname)!='test-rt1'" id="1"
       url="http://test-rt1:8080"/>
       <spareServer _operation="insert" enabledIf="$(hostname)!='test-rt4'" id="4"
       url="http://test-rt4:8080"/>
       <spareServer _operation="insert" enabledIf="$(hostname)!='test-rt3'" id="3"
       url="http://test-rt3:8080"/>
       <spareServer _operation="insert" enabledIf="$(hostname)!=test-rt2'" id="2"
       url="http://test-rt2:8080"/>
    </redirection>
    
  3. Verifique manualmente se o arquivo <deliveryID>.xml existe no computador no diretório …/nl6/var/<instance_name>/redir/url/<YYYY> (YYYY representa o ano do delivery).

  4. Verifique manualmente se <trackingUrlId> pode ser encontrado no arquivo <deliveryID>.xml.

  5. Verifique manualmente a existência de broadlogID no delivery deliveryID relacionado.

  6. Verifique as permissões dos arquivos <deliveryID>.xml no diretório …/nl6/var/<instance_name>/redir/url/year.

    Deve haver pelo menos 644 permissões para que o Apache possa ler urls de rastreamento a fim de redirecionar o link solicitado.

Atualizando a opção NmsTracking_Pointer?

Siga estas etapas ao atualizar a opção NmsTracking_Pointer:

  1. Interrompa o fluxo de trabalho de rastreamento.

  2. Interrompa o serviço trackinglogd.

  3. Atualize a opção NmsTracking_Pointer para o valor desejado.

  4. Reinicie o serviço trackinglogd.

  5. Reinicie o fluxo de trabalho de rastreamento.

O rastreamento não parece funcionar com algum WebMail

Você pode personalizar a fórmula de rastreamento de cliques e especificar uma fórmula de rastreamento do Adobe Analytics personalizada.

Esse tipo de personalização precisa ser feito com cautela para evitar a adição de caracteres de avanço de linha. Todos os caracteres de avanço de linha presentes fora da expressão JavaScript estarão presentes na fórmula final.

Esse tipo de caractere extra de avanço de linha no URL de rastreamento levará a problemas em algum WebMail (AOL, GMail etc.).

Primeiro exemplo:

  • Sintaxe incorreta

    <%@ include option='NmsTracking_ClickFormula' %><% // Parameters expected by Adobe Analytics
    var pattern = new RegExp("(nl611\.test15|google\.com)", 'i')
    if( $(urlstring).match(pattern) && delivery.FCP == false )
    {
    %>
    &cid=<%= message.delivery.internalName %>&bid=<%= message.id.toString().toLowerCase() %><% } %>
    
  • Sintaxe correta

    <%@ include option='NmsTracking_ClickFormula' %><% // Parameters expected by Adobe Analytics
    var pattern = new RegExp("(nl611\.test15|google\.com)", 'i')
    if( $(urlstring).match(pattern) && delivery.FCP == false )
    {
    %>&cid=<%= message.delivery.internalName %>&bid=<%= message.id.toString().toLowerCase() %><% } %>
    

Para entender onde está o avanço de linha extra, é possível substituir a expressão JavaScript por uma STRING fixa.

// Incorrect
STRING1
&cid=STRING2&bid=STRING3

// Correct
STRING1&cid=STRING2&bid=STRING3

Segundo exemplo

  • Sintaxe incorreta

    <%@ include option='NmsTracking_ClickFormula' %>
    <% // Parameters expected by Adobe Analytics
    var pattern = new RegExp("(vistaprint|entryUrl)", 'i')
    if( $(urlstring).match(pattern) && delivery.FCP == false )
    {%>&cid=<%= message.delivery.internalName%>&bid=<%= message.id.toString().toLowerCase()%>&SHPID=<%= message.recipient.factShopper.shopper_id %><% }
    
    %>
    
  • Sintaxe correta

    <%@ include option='NmsTracking_ClickFormula' %><% // Parameters expected by Adobe Analytics
    var pattern = new RegExp("(vistaprint|entryUrl)", 'i')
    if( $(urlstring).match(pattern) && delivery.FCP == false )
    {%>&cid=<%= message.delivery.internalName%>&bid=<%= message.id.toString().toLowerCase()%>&SHPID=<%= message.recipient.factShopper.shopper_id %><% }
    
    %>
    

Para entender onde está o avanço de linha extra, é possível substituir a expressão JavaScript por uma STRING fixa.

// Incorrect
STRING1&cid=STRING2&bid=STRING3&SHPID=STRING4

// Correct
STRING1&cid=STRING2&bid=STRING3&SHPID=STRING4

A recuperação de logs de rastreamento é muito lenta

Quando a instância não recupera logs de rastreamento diretamente, mas de um servidor Adobe Campaign Classic distante, os logs são recuperados por meio da chamada SOAP GetTrackingLogs definida no esquema remoteTracking.

Uma opção no arquivo serverConf.xml permite que você defina o número de logs recuperados simultaneamente por meio deste método: logCountPerRequest.

O valor padrão de logCountPerRequest igual a 1000 pode ser muito pequeno em alguns casos. Os valores aceitos devem estar entre 0 e 10.000.

No Adobe Campaign Classic, um target mapping deve ser único em termos de esquema de recipient versus esquemas broadlog/trackinglog.

Não é possível usar vários esquemas de direcionamento com o mesmo esquema trackinglog, pois o fluxo de trabalho de rastreamento não conseguirá reconciliar os dados com a id de direcionamento.

Se você não quiser usar o target mapping pronto para uso com nms:recipient, recomendamos as seguintes abordagens:

  • Se quiser usar o targeting dimension personalizado, será necessário criar o esquema broadLog/trackingLog personalizado usando nms:broadlog como modelo (por exemplo, nms:broadLogRcp, nms:broadLogSvc etc.).

  • Se você quiser usar OOB trackingLogRcp/broadLogRcp, o targeting dimension precisará ser nms:recipient e a dimensão de filtragem poderá ser um esquema personalizado.

Nesta página