Je ne sais pas dans quel fichier se trouve la ligne corrompue

  1. Utilisez la ligne de commande ci-après pour vérifier tous les fichiers de tracking.

    $ 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. La commande répertorie toutes les lignes corrompues. Par exemple :

    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
    
    NOTE
    Un retour à la ligne a été ajouté avant l'agent utilisateur pour permettre une meilleure lecture et il ne reflète pas le rendu réel.
  3. Exécutez une commande grep pour trouver le fichier correspondant.

$ grep -Rn <Log Id>
# for example:
$ grep -Rn 50x000000000FD7EC86
  1. Recherchez le log défectueux avec le nom de fichier et le numéro de ligne. Par exemple :

    ./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
    
    NOTE
    Un retour à la ligne a été ajouté avant l'agent utilisateur pour permettre une meilleure lecture et il ne reflète pas le rendu réel.

Vous pouvez ensuite arrêter le workflow de tracking, supprimer la ou les lignes endommagées et le redémarrer.

Lors de la tentative d’accès aux liens de tracking, le message suivant s’affiche :

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

  1. Accédez à l'URL <serveur_redirection>/r/test et vérifiez si le numéro de build et le localhost ont été renvoyés par la requête.

  2. Vérifiez la configuration spareServer dans le fichier serverConf.xml pour le serveur de tracking. Cette configuration doit être en mode de redirection.

    <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. Vérifiez manuellement si le fichier <deliveryID>.xml existe sur l'ordinateur dans le répertoire …/nl6/var/<nom_instance>/redir/url/<AAAA> (AAAA représente l’année de la diffusion).

  4. Vérifiez manuellement si <trackingUrlId> se trouve dans le fichier <deliveryID>.xml.

  5. Vérifiez manuellement l’existence de broadlogID dans la diffusion deliveryID associée.

  6. Vérifiez les autorisations des fichiers <deliveryID>.xml dans le répertoire…/nl6/var/<nom_instance>/redir/url/year.

    Elles doivent comporter au moins l’autorisation 644 pour qu'Apache puisse lire les URL de tracking pour rediriger le lien demandé.

Mise à jour de l'option NmsTracking_Pointer ?

Procédez comme suit lors de la mise à jour de l'option NmsTracking_Pointer :

  1. Arrêtez le workflow de tracking.

  2. Arrêtez le service trackinglogd.

  3. Mettez à jour l'option NmsTracking_Pointer vers la valeur souhaitée.

  4. Redémarrez le service trackinglogd.

  5. Redémarrez le workflow de tracking.

Le tracking ne semble pas fonctionner avec certaines messageries web

Vous pouvez personnaliser la formule de suivi des clics et spécifier une formule de tracking Adobe Analytics personnalisée.

Ce type de personnalisation doit être effectué avec prudence afin d’éviter l’ajout de caractères de saut de page supplémentaires. Tous les caractères de saut de page présents en dehors de l’expression Javascript seront également présents dans la formule finale.

Ce type de caractère de saut de ligne supplémentaire dans l'URL de tracking va entraîner un problème dans certaines messageries web (AOL, GMail, etc.).

Premier exemple :

  • Syntaxe incorrecte

    <%@ 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() %><% } %>
    
  • Syntaxe correcte

    <%@ 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() %><% } %>
    

Pour comprendre où se trouve le saut de ligne supplémentaire, vous pouvez remplacer l’expression Javascript par une chaîne STRING fixe.

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

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

Deuxième exemple

  • Syntaxe incorrecte

    <%@ 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 %><% }
    
    %>
    
  • Syntaxe correcte

    <%@ 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 %><% }
    
    %>
    

Pour comprendre où se trouve le saut de ligne supplémentaire, vous pouvez remplacer l’expression Javascript par une chaîne STRING fixe.

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

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