Domanda

Presto avvierò uno script di rotazione dei banner e mi sto un po 'perplesso su come svilupparlo esattamente. Supponiamo che un client lo richieda

  

" 10.000 impressioni nei prossimi 10 giorni per $ 10.000 dollari. "

Un altro cliente chiede

  

" 1.000 impressioni per $ 100 dollari. "

E un terzo chiede

  

" 1.000 clic o 10.000 impressioni per $ 5.000. "

Come posso determinare esattamente quale banner mostrare su una richiesta di pagina? Come posso pesare uno contro l'altro? Chiaramente la prima richiesta è piuttosto importante, poiché mi aspetto di pubblicare un determinato numero di impressioni in un intervallo di tempo.

Il secondo client non è altrettanto importante, poiché non si preoccupano di una finestra temporale, vogliono solo un po 'di tempo faccia a faccia.

E l'ultimo cliente desidera porre un vincolo n o m sulle impressioni / clic, rendendo le cose leggermente più difficili.

Sono già abbastanza fiducioso che dovrò sottrarre un po 'di peso da questi scenari per determinare chi ottiene più attenzione. La mia domanda è: quale tipo di algoritmo potrebbe gestirlo, e in secondo luogo, come posso pubblicare i banner in base al peso senza servire sempre il banner più importante per ogni richiesta?

È stato utile?

Soluzione

La difficoltà deriva dal vincolo temporale più di ogni altra cosa. Dividerei la priorità di chiunque non specifichi un vincolo di tempo per 365 (un anno) e quindi utilizzerei il tempo come parte del fattore peso. Quindi:

Client 1 priority: 10000/10 = 1000 
Client 2 priority: 1000/365 ~ 3 
Client 3 priority: 10000/365 ~30

Questo dovrebbe darti un indicatore di priorità abbastanza decente. Ora, non puoi mescolare e abbinare impressioni e clic, vero? Seguono il percorso delle impressioni o il percorso dei clic. Dato che non puoi controllare i clic, ma puoi controllare le impressioni (almeno, più dei clic), lo soppeserei in base alle impressioni.

Altri suggerimenti

Usa un generatore di numeri casuali per scegliere quale annuncio mostrare e ponderalo con una priorità per ogni annuncio. Imposta un fattore di ponderazione più alto per i clienti che desiderano più impressioni o che hanno una scadenza. È possibile aumentare il fattore di ponderazione se il tempo è quasi scaduto.

Dopo che un cliente ha raggiunto le impressioni richieste, riduci la ponderazione su 0 per impedire la visualizzazione dell'annuncio.

La ponderazione predefinita potrebbe essere 1 o giù di lì, con i clienti autorizzati a pagare un extra per aumentare la priorità (senza dirlo ai meccanici: fatturarlo come posizionamento "premium", ecc.).


Modifica: dettagli di ponderazione

Puoi renderlo semplice o complesso come preferisci, ma una versione di base includerebbe i seguenti termini:

  • ponderazione è 0 se l'annuncio ha raggiunto impressioni / clic acquistati
  • ponderazione di base (probabilmente 1.0)
  • moltiplica la ponderazione per impressions_remaining / TOTAL impressioni rimanenti per tutti i clienti
  • aggiungi una piccola costante se le impressioni / i clic rimanenti sono piccoli - assicura che ottengano le ultime necessarie per completare l'account
  • per i clienti con scadenza: aggiungi il termine per (impressioni rimanenti / impressioni acquistate) / (tempo rimanente / tempo totale)

I clienti con scadenza devono essere limitati al 90% di tutte le visualizzazioni di pagina o qualcosa del genere per assicurarsi che non superino gli altri. L'ultimo termine indica "urgenza" per i clienti con scadenza - va a finire all'infinito quando la scadenza arriva, quindi dovresti porre una condizione sul tempo rimanente per evitare problemi con questo.

Microsoft Commerce Server contiene un algoritmo NOD (vedi http://msdn.microsoft.com /en-us/library/ms960081%28v=cs.70%29.aspx e http://msdn.microsoft.com/ en-us / library / ee825423% 28v = cs.10% 29.aspx )

Ho usato versioni derivate di questa formula in 3 diversi server di annunci, che si sono rivelati efficaci per le mie condizioni.

La formula di base relativa alla tua situazione utilizza una variabile denominata NOD, abbreviazione di "Need of Delivery". In qualsiasi momento, il "basic" La formula NOD di un banner è:

  

NOD = (Eventi rimanenti / Totale eventi richiesti) * (Runtime totale /   Runtime rimanente)

Tieni presente che " Eventi " è un termine generale, che può rappresentare impressioni, clic, conversioni, ecc. a seconda del sistema in uso.

L'equazione afferma che tutti i banner iniziano con il valore iniziale di 1,0 per le loro vite, perché (e / e) * (t / t) = 1.0

Un valore NOD superiore a 1 indica che sei indietro rispetto alla pianificazione, mentre un NOD compreso tra 0 e 1 indica in genere che hai visualizzato il banner "troppo veloce". I valori compresi tra 0,9 e 1,2 sono generalmente compresi nell'intervallo accettabile (non si tratta di un intervallo tecnico, ma piuttosto di un'esperienza aziendale).

Finché i rapporti di servizio corrispondono ai rapporti di durata, i valori rimangono intorno a 1,0.

Per uno specifico spazio pubblicitario, l'algoritmo controlla i NOD di tutti i banner disponibili posizionabili nello slot. Supponiamo di avere 3 banner disponibili su uno slot, con valori NOD 0.6, 1.35 e 1.05, che aggiungono fino a 3.0. Quindi le probabilità relative di ciascun banner da visualizzare diventano 20%, 45% e 35% in ordine [0.6 / (0.6 + 1.35 + 1.05)] = 20%

L'algoritmo utilizza una distribuzione di probabilità ponderata, il che significa che anche il banner con il valore NOD minimo ha la possibilità di essere visualizzato. Mentre la formula di base utilizza questo approccio, le decisioni aziendali generalmente mi hanno sempre costretto a implementare algoritmi che favoriscono i valori NOD urgenti più della formula originale. Quindi, ho preso i NOD di base e li ho moltiplicati con se stessi. Nello stesso esempio, le probabilità diventano l'11%, il 55,5% e il 33,5% in ordine.

Per le tue condizioni, potresti considerare di modificare un po 'la formula per soddisfare le tue esigenze. Per prima cosa per poter confrontare le entrate che guadagnerai visualizzando un banner, dovresti convertire tutti i tipi di visualizzazione (impressione, clic, azione, ecc.) In un valore eCPM comune. Quindi potresti usare questo eCPM come moltiplicatore dell'equazione originale.

Il calcolo dell'eCPM (CPM effettivo) potrebbe essere complicato per le campagne non ancora pubblicate, in questo caso dovresti utilizzare i dati storici.

Lascia che ti spieghi un po 'di più questa parte: quando provi a confrontare le probabili entrate guadagnerai con " visualizzando " un singolo banner, non è necessario confrontare i budget basati sulle impressioni. Per i budget basati sui clic, devi utilizzare il valore CTR storico per indovinare "quante impressioni deve servire il mio sistema per ottenere X clics". Un algoritmo più avanzato potrebbe utilizzare "quante impressioni ha bisogno il mio sistema per pubblicare una campagna nella categoria X, nell'inventario y";

Quindi la tua equazione finale diventa:

  

NOD = eCPM * (Eventi rimanenti / Totale eventi richiesti) * (Totale   Runtime / Runtime rimanente)

Puoi sempre considerare di usare i poteri di eCPM per confrontare i risultati. Come il mio modo di modificare la formula originale per favorire campagne più urgenti, potresti preferire "più pagamenti" campagne.

Mi piace molto l'approccio basato sul tempo di AlbertoPL, ma non tiene conto dei clic. È facile dimostrare casi patologici in cui i clic sono rilevanti:

  • Il cliente A offre $ 1000 per 1 clic o 10.000 impressioni
  • Il cliente B offre $ 1000 per 5000 clic o 10.000 impressioni.

Qualsiasi persona ragionevole darebbe al ragazzo con 1 clic una priorità maggiore. Il calcolo è in realtà piuttosto banale: supponiamo che il tuo click-through sia di 100 impressioni per clic.

  • Il cliente A richiede 10.000 impressioni o 1 clic, quindi per essere pagati è richiesto un minimo di 100 impressioni. Al costo di $ 1000 per 100 impressioni, puoi immaginare che il tuo cliente è disposto a pagare $ 10 / impressione.

  • Il cliente B richiede 10.000 impressioni o 5000 clic. 5000 clic richiedono 500.000 impressioni, prima di allora incontreremo chiaramente il segno di 10.000 impressioni, quindi supponiamo che il cliente offra davvero di pagare $ 1000 per 10.000 impressioni o $ 0,10 / impressione.

Massimizziamo le entrate massimizzando il nostro $$$$$ / impressione, quindi il cliente A ha la priorità. Usiamo le cifre fornite nel PO:

Client 1:

  • 10.000 impressioni nei prossimi 10 giorni per $ 10.000 dollari
  • = minimo di 10.000 impressioni * $ 1 / impressione / 10 giorni
  • = $ 1000 / giorno

Client 2:

  • 1.000 impressioni per $ 100 dollari
  • = minimo di 1.000 impressioni * $ .01 / impressione / 365 giorni
  • = $ 0,27 / giorno.

Client 3:

  • 1.000 clic o 10.000 impressioni per $ 5000
  • = min (100.000 impressioni per ottenere 1.000 clic, 10.000 impressioni) = 10.000 impressioni per $ 5000
  • = minimo di 10.000 impressioni * $ 0,5 / impressione / 365
  • = $ 13,7 / giorno.

I clienti hanno la priorità in base all'importo pagato al giorno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top