2009-09-15 9 views
1

Je suis en train d'écrire un moteur publicitaire bannière en php/mysql. Je ne veux pas utiliser OpenX ou une solution clé en main car il va y avoir un tas de fonctionnalités personnalisées que je préférerais ne pas compter sur un système existant pour avoir à s'adapter.Meilleures pratiques: Suivi des impressions de bannières

Voici la pensée et mes approches actuelles de l'architecture des impressions:

  • Les demandes au serveur de bannière arrivent via javascript extrait sur le site cible
  • Server a mis en cache la liste des bannières pour servir et renvoie l'image appropriée comme requis.
  • Les impressions sont enregistrées dans des fichiers journaux similaires au style de journal d'accès d'Apache: en utilisant un fichier texte tournant, en ajoutant une ligne par impression.
  • fichiers journaux utilisateur d'enregistrement IP, URL, id bannière, temps, etc.
  • fichiers journaux sont permutés toutes les heures et sont ensuite résumées (également toutes les heures) à une base de données mysql afin que les annonceurs peuvent obtenir (près de) statistiques en temps réel sur l'activité

Mes préoccupations sont:

  • écrit à un fichier « log » d'une manière efficace et évolutive pour enregistrer les impressions? Nous prévoyons diffuser 13 à 15 millions d'impressions par mois.
  • Des pièges avec l'approche de l'écriture de journal?

Répondre

3

Je suggère d'utiliser lighttpd avec mod_accesslog. lighttpd est recommandé lorsque le fichier statique est l'objectif principal.

Étant donné que vous utilisez javascript sur les différents sites Web, incluez les informations nécessaires dans la chaîne de requête demandant l'image. Ceci est similaire à la façon dont Google Analytics agrège leurs informations, soit dit en passant.

Faire pivoter le journal d'accès des serveurs Web et analyser chaque rotation.

Sculptez le format du journal d'accès pour qu'il soit directement importable dans une table mysql temporaire en vue d'un traitement ultérieur.

Si vous prévoyez des quantités massives d'impressions anticipées et que vous prévoyez d'évoluer à un moment donné, vous pouvez envisager d'utiliser un CDN.

+0

Je sais que c'est une réponse assez ancienne, mais il semble toujours le meilleur. Que pensez-vous de la création d'un service de suivi des bannières basé sur NodeJS? Est-ce évolutif? – MaRmAR

1

ne pas oublier d'enregistrer l'agent utilisateur.

Je recommande d'utiliser un fichier texte pour journal et ayant des scripts l'analyser (faire des caches, etc.) pour l'affichage des statistiques plus

Questions connexes