Aller au contenu

phpadsnew et capping sur 24 heures


Coincoin

Sujets conseillés

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) ?

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Pour info, le nombre de secondes jusqu'à minuit se définit comme ceci:

$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 :)

Dan

Lien vers le commentaire
Partager sur d’autres sites

La section de suivante n'a apparemment aucune incidence sur le capping :

  // 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...

Modifié par Coincoin
Lien vers le commentaire
Partager sur d’autres sites

Désolé, quand on regarde en faisant 36 choses en même temps, on se trompe.

Le code est là:

	// 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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...