Aller au contenu

Sujets conseillés

Posté

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

Posté

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.

Posté

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.

Posté

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

Posté (modifié)

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
Posté

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

Posté

Merci à toi :) 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 ?

Posté

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

Veuillez vous connecter pour commenter

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



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