Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BMXer

Como definir pesos em sistema de banner

Recommended Posts

E ae pessoal.Estou desenvolvendo um sistema de banners, e para quem conhece o phpadsnew, queria definir o peso do banner, para ele ter uma maior probabilidade de exibição.Pesquisei, mas não encontrei nada sobre como fazer isto.Alguem pode me ajudar?Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, tipo, acho q direto, na query do mysql, Ñ sei se faz isso, você teria q colocar um campo no registro deste, no BD, informando o peso, depois na hora de exibir, você iria ler todos os dados incluvive o peso analizar, td e exibir, com base em peso, tbm. Mas acho q teria q fazer tipo um mini script.Flwwwwwwwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

#um exemplo:#poe um vetor contendo os banners:vet[0] = "banner0.jpg"vet[1] = "banner1.jpg"vet[2] = "banner2.jpg"#depois a função pra exibir:#sintaxe: rand(menorinteiro,maiorinteiro)# $banner = rand(0,2) #desse jeito ele gera com probailidade iguais#digamos que você quer que o banner1.jpg seja o mais exibido: (ex de probailidades: 20%,50%,30%)#vetor de probabilidades (concidindo as ocorrencia, ou seja, indice 0 desse vetor deve ser igual ao indice 0 #do vetor de banners)$prob[0][0] = 0 //0 <= x <= 0.2$prob[0][1] = 0.2 //0 <= x <= 0.2$prob[1][0] = 0.2 //0.2 < x <= 0.7$prob[1][1] = 0.7 //0.2 < x <= 0.7$prob[2][0] = 0.7 //0.7 < x <= 1$prob[2][1] = 1 //0.7 < x <= 1$banner = rand(0,1);#varrer o vetorfor ($i=0;$i<=2;$i++){ #Quando achar uma probabilidade dentro da esperada.. if ($banner <= $prob[$i][1] && $banner > $prob[$i][0]){ #exibição do banner gerado print "<img src='".$vet[$i]."'>"; break; }}#Não creio que haja função jaá definida pra isso... é usar lógica pura... essa foi a que usei agora, qualquer #outra pode funcionar do mesmo modo

Compartilhar este post


Link para o post
Compartilhar em outros sites

FReDiNHoWMuito boa sua idéia!Pelo que entendi de qualquer forma não importa a probabilidade, o que irá determinar a exibição é o número produzido pelo rand(), então dessa forma o resultado continuaria a ser aleatório não havendo um sistema real de PRIORIDADE. Não sei se fui muito claro.Mas considere que o rando gerou 0.1. o banner exibido será o com probabilidade de 20%, ou seja não tem efeito nenhum fazer o teste banner <= valor && banner >= valor..Oq acha?Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao é o rand() que gera as probabilidades até porque como o nome diz.. é randômico...ele geraria um valor de 0 a 1 (pra ter ideia 0 a 100%)daí voce compara o valor gerado com os do bannerex:se o valor foi 0.74 => 74%daí você pega o banner no qual este limite se encaixarialimite este que VOCÊ determinou aqui:$prob[0][0] = 0 //0 <= x <= 0.2$prob[0][1] = 0.2 //0 <= x <= 0.2$prob[1][0] = 0.2 //0.2 < x <= 0.7$prob[1][1] = 0.7 //0.2 < x <= 0.7$prob[2][0] = 0.7 //0.7 < x <= 1$prob[2][1] = 1 //0.7 < x <= 1Acho que deste modo que te passei funciona perfeitamente, excluindo-se os erros de sintaxe... Pois a lógica pra mim é esta.. flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.Justamente pelo rand ser randômico, siginifica que ele poderia ter gerado 0.74 ou 0.12, ae seria escolhido o valor de 10%....ou seja, não haveria realmente um sistema de prioridade...seria de qualquer forma aleatório.

Compartilhar este post


Link para o post
Compartilhar em outros sites

FAZ ASSIM:

 

vet[0] = "banner0.jpg"

vet[1] = "banner0.jpg"

vet[2] = "banner0.jpg"

vet[3] = "banner0.jpg"

vet[4] = "banner0.jpg"

vet[5] = "banner1.jpg"

vet[6] = "banner1.jpg"

vet[7] = "banner1.jpg"

vet[8] = "banner2.jpg"

vet[9] = "banner2.jpg"

 

$banner=rand(0,9);

 

 

Pronto ... o banner 0 tem 50 % de chances a mais de ser escolhido o banner 1 30% e o Banner 2 20%........ http://forum.imasters.com.br/public/style_emoticons/default/clap.gif :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.