Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Algoritmo di ricerca

  1. #1

    Algoritmo di ricerca

    Ciao a tutti

    la mia situazione è questa:
    ho una tabella mysql con tutti i banner del mio circuito, finora ho sempre utilizzato come conteggio solamente le date inizio->fine, quindi la query di selezione era semplicissima.

    Ora ho implementato anche altri due conteggi (click e impression) e non riesco a trovare una soluzione adeguata...devo scegliere quali banner visualizzare di tutti i tipi in base ad un qualche criterio.

    come posso passare a mysql un criterio (algoritmo) che decida se selezionare un banner piuttosto che un altro?

    insomma in forma ridottissima un pò quello che fa google adsense.

    grazie a tutti

  2. #2
    Immagino che il criterio migliore sia quello di visualizzare i banner che hanno un miglior rapporto tra click e impression, tra quelli appartenenti allo stesso gruppo.

    Se questo è il criterio che desideri, dovresti inserire nella SELECT il campo calcolato di cui sopra (click/impression), ordinare per tale valore (dal più grande al più piccolo) e utilizzare il primo elemento di ogni gruppo.

    Ovviamente questo non è un criterio che puoi utilizzare subito: devi prima raccogliere un certo quantitativo di dati, ovvero un certo numero di impression. Prima di allora devi garantire la stessa quantità di impression a tutti i banner.

    Di fatto l'algoritmo è più lato codice che lato db.

  3. #3
    si avevo pensato anche io al rapporto click/impression, il problema infatto mi sorge quando il criterio è solo impression o ancora di più quando il criterio è la data

    fino a poco tempo fa avevo solamente 2 siti e conteggiavo (solo per informazione personale peraltro) solamente i click , ma ora i siti sono diventati 10 e devo ristrutturare tutto il sistema.

    Addiruttura ad oggi ogni sito ha la propria gestione dell'advertising, e per fare una campagna su tutto il network devo replicare il banner su ogni portale.
    Cmq in un futuro prossimo ho già in programma di centralizzare tutto in modo da semplificare anche le campagne su tutto il circuito!

  4. #4
    ok, ho inserito per ogni banner tot_click e tot_impression.

    la query è questa
    codice:
    select
       id
    from 
       banner 
    where 
       tipo=".$this->id."
       and attivo=true 
       and if(conteggio<>3,contatore>0,scadenza >= date_add(curdate(), interval -30 day)) 
    order by rand()

    conteggio=3 significa che conteggio il banner per data (1 anno, 6 mesi)
    1 o 2 significa che conteggio il banner a impression o click (quindi decremento di conseguenza il contatore)

    se ora ordinassi per CTR (click/impression) limitando 0,10 visualizzerei sempre quelli con maggior ctr.

    è possibile fare una cosa del tipo:

    ordino per ctr decrescente con una percentuale del 30% di probabilità e con una percentuale del 70% ordino in maniera rand() cosi favorisco leggermente quelli più cliccati ma do a tutti un'alta probabilità di essere visualizzati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.