문제

Many banners are tied to a zone. All of these banners have different targeting requirements using the site:variable (I say "requirements" loosely as the banner can be displayed even when requirements are not matched). The reason for this is because all banners must ultimately have an even number of impressions; however, along the way, the system should use the best of targeting when possible.

An example of the desired logic is below:

Given -

  • Banner 1 Targeting: IncomeGreaterThan20k=1, FishingIndustry=1
  • Banner 2 Targeting: IncomeLessThan20k=1, FishingIndustry=1
  • Visitor Profile: IncomeGreaterThan20k=1, FishingIndustry=1

Case 1 -

  • Banner 1 Impressions = 999
  • Banner 2 Impressions = 1000
  • Zone Rendered to Visitor 1 - Banner 1 is displayed
  • Why?: Targeting of Banner 1 is better than targeting of other ads (more matches on site:variables), best targeted banner has impressions less than or equal to other banners = true, show Banner 1.

Case 2 -

  • Banner 1 Impressions = 1000
  • Banner 2 Impressions = 1000
  • Zone Rendered to Visitor 1 - Banner 1 is displayed
  • Why?: Targeting of Banner 1 is better than targeting of other ads (more matches on site:variables), best targeted banner has impressions less than or equal to other banners = true, show Banner 1.

Case 3 -

  • Banner 1 Impressions = 1001
  • Banner 2 Impressions = 1000
  • Zone Rendered to Visitor 1 - Banner 2 is displayed
  • Why?: Targeting of Banner 1 is better than targeting of other ads (more matches on site:variables), best targeted banner has impressions less than or equal to other banners = false, show Banner 2.

When there are more than 2 banners, the logic should be extended based on the number of targeted variables matched and the number of impressions.

How can you configure the banner targeting to accomplish this?

  1. If this can be accomplished, is there a way to put importance weights on the various site:variables?
  2. If this can be accomplished, can you adjust the threshold for the number of impressions difference that can occur between the ads? Rule: No ad should be rendered more than 10 time more than any other ad.
도움이 되었습니까?

해결책

The number of targeting fields matching does not affect ad selection.

If 4 banners in a zone end up with their targeting as 'true' (as in, all targeting criteria are met) then they are all considered for delivery. After that, if all 4 are remnant banners from different campaigns, the only thing which adjusts the ad selection is the campaign weight. If they're all equal weighting, they all have equal chance of selection. If campaign1 has double the weight of campaign 2,3, and 4, then it has double the chance of the other campaigns of being selected.

To do exactly what you wish would require a plugin which alters the ad selection process. 1) Set all campaign weights equal (lets say weight=10), and all campaigns as remnant 2) Once all banners with targeting=false are thrown away, analyze the remaining banners and give more weight to ones with more targeting criteria 3) During hourly maintenance, analyze the stats and give a higher weight to ones which are falling behind. You don't want to do this during delivery because querying stats during delivery will cause a lot of overhead to the delivery process, which should be as quick as possible without DB calls

Using weights does not guarantee equal impressions - if they have a 50/50 chance of delivering there is a chance bannerA will delivery 1005 and bannerB will delivery 995, etc. It generally works out well - but since you are altering weights depending on targeting you are going against the 'deliver evenly' idea and perhaps pausing an ad which has gone above the 10x is a better idea, and then re-activating once it is within 5x (or such)

Note - unfortunately, making plugins for OpenX isn't very easy unless you have someone who already knows their way around. Its not a matter of knowing PHP, its a matter of knowing the OpenX plugin architecture.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top