Intégrer les Fonctions dans le Document HTML - AFS

Bonnes Pratiques Pour la Qualification des Visiteurs AFS

Product
AFS
AFS_Version
7.7
Category
Technical Notes
language
French
audience
public

Voici un code d'intégration du Web Service click d'AFS. Les deux fonctions suivantes doivent être chargées dans les pages où elles seront appelées. Pour cela, plusieurs solutions :

  • Créer un fichier Javascript dédié à ce code. Ce n'est pas conseillé pour des questions de performances (charger un fichier via HTTP est coûteux),
  • Insérer ce code dans votre code Javascript, ou directement au sein d'un élément <script>,
  • Intégrer ce code dans vos fichiers compressés.

/**
* @param clickPath must be the path at which the click web service can be reached.
* "/click" will be appended to this parameter Example: http://xxx.afs-antidot.net/
* @param serviceId AFS Service id
* @param status AFS Service status
* @param target Clicked URL
* @param label Label
* @param sessionId Optional, AFS Search session id
* @param userId Optional, AFS Search user id
*/
function notifyClick(clickPath, serviceId, status, target, label, sessionId, userId)
{
var url = clickPath + 'click?afs%3Aservice=' + serviceId + '&afs%3Astatus=' +
status + '&afs%3Atarget=' + encodeURI(target) + '&afs%3Alabel=' +
encodeURI(label) + '&afs%3Aaction=log';
if (sessionId)
{
url += '&afs%3AsessionId=' + encodeURI(sessionId);
}
if (userId)
{
url += '&afs%3AuserId=' + encodeURI(userId);
}
executeGetRequest(url);
}

/**
* Executes an HTTP GET method to the given URL. It supports requesting any host name
* (uses a work around for the Same Origin Policy). This method is not able to return
* the response body.
* @param url The target URL
*/
function executeGetRequest(url)
{
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.setAttribute('src', url);
document.body.appendChild(iframe);
}

Il y a deux fonctions. La première est celle à appeler, la deuxième n'est là que pour des questions d'implémentation.

Cette fonction supporte les requêtes cross-domaine, et requiert d'avoir accès aux valeurs suivantes:

  • AFS service ID et AFS service status
  • Click Web Service host. Par exemple http://project-name.afs-antidot.net
  • Click Web Service path. Si click est à la racine du server web, la valeur est : /
  • Click target: URL du search résultat de recherche qui va être cliqué
  • Click label: Titre du résultat de recherche.

Deux paramètres supplémentaires sont optionnels : AFS sessionId et userId. Ils permettent à click de traquer les sessions de recherche. Leurs valeurs sont générées par les Web Services d'AFS.

Ce code a été testé et fonctionne sur la plupart des navigateurs, tels que : Firefox, Chrome, Safari, Opera, Internet Explorer 7, 8 ,9.