Version complète: sur le forum Webmaster Hub : phpadsnew et capping sur 24 heures
Webmaster Hub > Promotion de Sites Internet > Techniques de Promotion
Coincoin
Bonjour à tous,

Je souhaite gérer une campagne limitée à 3 affichages par jours et par visiteurs avec phpadsnew. Lorsque j'utilise les options de limitation, j'ai les choix suivants :
Une fois affichée, l'utilisateur ne devra plus avoir cette bannière pendant [durée]
et
Cette bannière ne sera pas vue par un utilisateur plus de [x] fois

J'utilise donc la seconde option en limitant à 3 affichages. Le problème est q'un internaute ne verra plus jamais la campagne après 3 affichages. Comment gérer ce capping pour une durée de 24h (de 0h à minuit) ?
Dan
Il a déjà été proposé une modification de source pour remplacer la durée du cookie (d'origine un an) par une durée plus courte (un jour)

Voir ce post: http://www.webmaster-hub.com/index.php?showtopic=12305
Coincoin
Merci de ta réponse. J'avais déjà vu ce post mais dans la dans version 2.0.7 de phpadsnews, la ligne dont tu parles n'est pas présente. De plus, je souhaiterais gérer le capping sur une journée complète et non en fonction de l'heure de l'affichage des bannières par un internautes.

Par exemple, si un internaute visualise 3 publicités à 23h00 et qu'il revient 2 heures plus tard, il devrait à nouveau voir 3 nouvelles publicités.
Dan
Il suffit de modifier le code entre les lignes 54 et 67 de ce même fichier.
C'est lui qui gère le cookie d'affichage et sa durée.
Par défaut la durée est mise à 1/2 journée (43200 secondes, lignes 65 et 66), tu n'as que cela à changer en remplaçant le 43200 par le nombre de secondes jusqu'à minuit.
Dan
Pour info, le nombre de secondes jusqu'à minuit se définit comme ceci:
CODE
$seconds_to_midnight = mktime(0,0,0) + 86400 - time();

(Heure d'aujourd'hui à 00:00:00, plus 86400 pour obtenir demain, moins l'heure actuelle)

Il suffit d'utiliser cette valeur comme durée de validité du cookie, c'est à dire à la mettre en lieu et place de la constante 43200 smile.gif

Dan
Coincoin
La section de suivante n'a apparemment aucune incidence sur le capping :
CODE
 // Send block cookies
 if ($phpAds_config['block_adviews'] > 0)
     phpAds_setCookie ("phpAds_blockView[".$bannerid."]", time() + $phpAds_config['block_adviews'],
        time() + $phpAds_config['block_adviews'] + 43200);
    }

En effet, si je remplace 43200 par 10 par exemple, une campagne cappée devrait alors être réinitialisée toutes les dix secondes or ce n'est pas le cas, même en effaçant les cookies, ma campagne cappée à 3 s'affiche 3 fois puis plus du tout après...
Dan
Désolé, quand on regarde en faisant 36 choses en même temps, on se trompe.

Le code est là:

CODE
    // Set capping
    if ($row['capping'] != '' && $row['capping'] != '0')
 phpAds_setCookie ("phpAds_newCap[".md5(uniqid('', true))."]", $row['bannerid'], time() + 31536000);


dans le fichier libraries/lib-log.inc.php

C'est le 31536000 qui représente un an en secondes qu'il faut remplacer ....

Il y a cette même valeur dans la définition de la fonction phpAds_unpackCookies()
fichier libraries/lib-io.inc.php

Dan
Coincoin
Merci à toi smile.gif Malheureusement, après de nombreux tests, cela ne fonctionne pas, la durée du capping semble rester indéfinie...

As-tu apporté cette modif pour la gestion du capping sur webmaster-hub ?
Dan
J'avais apporté une modification dans la version précédente (le premier code que je t'ai renseigné) et cela fonctionnait bien;

Mais depuis la version 2.0.7, je ne l'ai pas remis en activité.
Faudrait que je teste cela....

Dan
Coincoin
En tout cas, merci pour tes réponses rapides.
Tiens moi au courant si tu trouves smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.