I've been asked a few times recently about how to setup custom criteria in DFP small business so I thought I would compile the below tutorial. Follow the instructions below to setup Custom Criteria/Key Value Pair targeting in DFP Small business:
In this example we want to add a key value pair to a particular page to allow us to target ads specifically to that page in DFP Small business. We will use pageid=123 in our example.
1. Login to DFP Small Business.
2. Click on the "Inventory" tab found at the top left of the screen.
3. Click on the "Custom Targeting" link on the left.
4. Click on the "New Key" button.
5. Enter the "Name" of your key value pair. this would be the key portion. Example: PageID=123
PageID would be the name.
Keep in mind the following restrictions when creating your key value pairs:
• Casing: Neither keys nor values are case-sensitive.
• Maximum characters allowed: Key names can contain up to 10 characters each, and values can contain up to 40 characters each.
• Maximum keys and values allowed: DFP Small Business supports up to 20 custom targeting key names. Each key name can contain up to 200 values. For example, you might call the first of your 20 key names age and define six (out of the 200) values as follows: 1-5, 6-11, 12-18, 19-34, 35-50, and 50+.
• Maximum values per page: You can pass multiple values per page.
• Data type of values: Values are not data-specific; all values are treated as strings. For example, instead of using age >= 18 AND <34 18-34.="" br="" try="">
• Key names, invalid characters: You can't use the following characters when you create custom targeting key names:
"(double quotes)
' (apostrophe)
= (equal sign)
! (exclamation point)
+ (plus sign)
# (pound sign)
* (asterisk)
~ (tilde)
; (semicolon)
^ (caret)
() (parentheses)
< > (angle brackets)
[ ] (square brackets)
, (comma)
. (period)
& (ampersand)
Spaces: You can't use spaces in the key of a targeting criterion. For example, sports car=porsche is not valid. You can, however, use spaces in the value. For example, car=red porsche is valid.
6. Select the "Values Type". Your two options are:
Users will enter targeting values when creating line items or checking inventory.
Users will select from predefined targeting values.
In our example we are tagging a page manually with an ID so we would select "Users will select from predefined targeting values."
7. Click on the "Add Values" button.
8. Enter your "Values" in the text box. We would add 123 in our example. Remember to only enter one value per line up to 500 values at a time. Click apply to save your "Values".
9. To add the Key Value Pair to the page we want to target we need to add the following:
<script type='text/javascript'>
GA_googleAddAttr("pageid", "123");
</script>
This needs to be added to the DFP head call already in place on the page. Like so:
<script type='text/javascript'>
GS_googleAddAdSenseService("ca-pub-123456789101112");
GS_googleEnableAllServices();
</script>
<script type="text/javascript">
GA_googleAddAttr("pageid", "123");
</script>
<script type="text/javascript">
GA_googleAddSlot("ca-pub-123456789101112", "Test_com_Top_728x90");
</script>
<script type="text/javascript">
GA_googleFetchAds();
</script>
Now that we have created the Key Value Pair and added it to the page we want to target, we want to add the targeting to an existing campaign.
10. Locate the appropriate line item in DFP Small Business.
11. Click on the "Settings" tab.
12. Click on the "Custom Criteria" tab.
13. Type in your Key Value Pair, DFP should find it for you. Select it and click the "Add Key" button.
14. Save your changes to the line item, click the "Save" button at the bottom of the page.
Congratulations! You have completed setting up Custom Criteria/Key Value Pair targeting for DFP Small Business!34>
Friday, March 30, 2012
Monday, April 25, 2011
Setting up a Roadblock in DFP Small Business:
The common problem:
I have an advertiser whose ads are supposed to be roadblocked. However, DFP's roadblocks are not real roadblocks. When the first ad serves on the page is from the roadblocked campaign I get the roadblock but at least 10% of the time only the 2nd or 3rd ad displays.
If this were my only advertiser and an exclusive campaign set to run 100% of the time then I would get roadblocks 100% of the time. The problem is it's not exclusive so often the ads serve but not as a roadblock. Is there anyway to get around this?
There is a way to get around this issue, follow the steps below to be able to setup and run your roadblocks that actually display together 100% of the time in DFP Small business.
1. Setup a custom criteria called Roadblock. Make it a free form type.
i. To do this, click the "Inventory" tab at the top left.
ii. Click on the "Custom Targeting" link in the top left menu.
iii. Click on the "New Key" button found under the "Custom Targeting" title.
iiii. Fill in the required fields on the form. Enter the name as "Roadblock" and set the radio button to "Users will enter targeting values when creating line items or checking inventory".
This is also known as free-form targeting and will allow you to enter any value when setting up your custom criteria. This comes in handy if you need to be running multiple roadblocks at one time.
2.Setup your order as normal.
3. Setup your first line item. In this example we will be roadblocking two 728x90's and a 300x250. One 728x90 displays at the top of the page the other at the very bottom. The 300x250 displays in the middle of the page.
i. When setting up your line items determine which unit displays in the top most position on the page.
ii. Configure your first line item: Setup only the top most ad unit in this line item. In this case it would be a 728x90. Populate the settings information for your line item with your relevant data. Eg.Type, Start and End Date, Quantity, Rate, Discount, etc.
*Important Targeting Notes*
Make sure to have this line item targeted to a placement that only contains the top most ad units. In this case I made a placement that only contained the topmost 728x90 on all the sites/pages I want the roadblock to display on. This ensures this line item will always display first on the page. (For information on creating placements and adding ad units to them see Adding Ad Units to Placements)
All of the line items for your roadblock should use the same priority, whether it be house, standard, network, etc., just make sure they are the same. Also, the tricky part of this setup is determining your impression goals. As an example lets say that the advertiser has requested 100,000 leaderboards and 50,000 bigboxes. Since we have two leaderboards running, we must distribute that amount amongst all the line items containing 728x90's. So the first line item with the single 728x90 will get 50,000 impressions and the second line item with the second 728x90 will receive the other 50,000 impressions. Finally, the third 300x250 will receive 50,000 impressions. This impression breakout is only meant as an example and will of course change dependent upon what was sold.
iii. Once you have all of your settings configured. Click on the "Save and..." button at the bottom right of the page. Select "Upload Creatives" from the drop down.
iiii. You will need to setup the ad as a third party creative as you need to add an extra snippet of code to enable the roadblock. Select "Third Party" as the ad type you want to setup.
If you are using third party tags, drop them into the html field and add any macros as necessary, save the creative and proceed to step 4.
If you are using an 'image' type creative (gif, animated gif, jpeg) you can upload the file as you would a normal image creative. To do this return to the "Upload Creative" screen and select "Image" as the type of creative you want to upload.
Upload your creative as usual filling in all required fields. Then deativate the creative immediately. To do this simply check the box next to the creative you want to deactivate and then click the deactivate button.
You would then right click on the image of the deactivated creative and select "View Image Info".
Then copy the location of the image, it will start with something like:
https://tpc.googlesyndication.com/pageadimg/imgad?id=
Next you will set up a new third party creative. using a basic "a href" and "img src" statement as follows:
<a href="http://www.test.com/" target="_blank"><img src="https://tpc.googlesyndication.com/pageadimg/imgad?id=" /></a>
4. Once you have your tag setup and have tested that the image displays and clicks through properly go back into the creative and edit it. This is where you ad in the extra code that will enable the roadblock:
<script type="text/javascript">
GA_googleAddAttr("roadblock", "TEST");
</script>
In the above where you see "TEST" is where you would set the flag for the current roadblock your setting up. You could use the advertiser name or whatever you want really. I am using TEST as an example here. As I mentioned earlier having this setup as a free-form variable allows you to run multiple roadblocks at the same time if need be without the fear of them running into one another. You could set them up as "Advertiser_1" and "Advertiser_2" as an example. Paste the code snippet above your third party ad tag as seen in the example below.
Be sure to save the creative again after making these changes.
Now you want to setup the second and third line items for your roadblock which will be the other creatives you want to display. In this case, that is a 300x250 and a 728x90. The setup will be pretty much the same as above except that instead of entering the extra code snippet you would set a custom criteria up as roadblock is "TEST" when configuring the settings for each line item. To do this simply setup your line item as normal until you come to the "Add Targeting" portion. Target this line item to your run of site placement. This will mean that these line items will only display when this custom criteria is present. Next select the "Custom Criteria" tab on the left of the "Add Targeting" box.
Then select the "Custom Criteria" you setup earlier called "roadblock".
Now enter the value you want to use for this "Custom Criteria", for example Advertiser_1.
It should appear to the right with the rest of your targeting as "roadblock is Advertiser_1" in this case. You have now completed setting up the custom criteria.
Click on save at the bottom right and select "Upload Creatives" and upload the creatives as normal without adding in any extra code snippets.
Due to the way we added the code snippet to the first line item this custom criteria will only be present when the first line item displays and because of the way we targeted it to only the uppermost ad units it will always display at the top of the page. This means it will always display first and force the other two adds to always display afterwards.
You should now have a roadblock that will be a true roadblock 100% of the time.
The common problem:
I have an advertiser whose ads are supposed to be roadblocked. However, DFP's roadblocks are not real roadblocks. When the first ad serves on the page is from the roadblocked campaign I get the roadblock but at least 10% of the time only the 2nd or 3rd ad displays.
If this were my only advertiser and an exclusive campaign set to run 100% of the time then I would get roadblocks 100% of the time. The problem is it's not exclusive so often the ads serve but not as a roadblock. Is there anyway to get around this?
There is a way to get around this issue, follow the steps below to be able to setup and run your roadblocks that actually display together 100% of the time in DFP Small business.
1. Setup a custom criteria called Roadblock. Make it a free form type.
i. To do this, click the "Inventory" tab at the top left.
ii. Click on the "Custom Targeting" link in the top left menu.
iii. Click on the "New Key" button found under the "Custom Targeting" title.
iiii. Fill in the required fields on the form. Enter the name as "Roadblock" and set the radio button to "Users will enter targeting values when creating line items or checking inventory".
This is also known as free-form targeting and will allow you to enter any value when setting up your custom criteria. This comes in handy if you need to be running multiple roadblocks at one time.
2.Setup your order as normal.
3. Setup your first line item. In this example we will be roadblocking two 728x90's and a 300x250. One 728x90 displays at the top of the page the other at the very bottom. The 300x250 displays in the middle of the page.
i. When setting up your line items determine which unit displays in the top most position on the page.
ii. Configure your first line item: Setup only the top most ad unit in this line item. In this case it would be a 728x90. Populate the settings information for your line item with your relevant data. Eg.Type, Start and End Date, Quantity, Rate, Discount, etc.
*Important Targeting Notes*
Make sure to have this line item targeted to a placement that only contains the top most ad units. In this case I made a placement that only contained the topmost 728x90 on all the sites/pages I want the roadblock to display on. This ensures this line item will always display first on the page. (For information on creating placements and adding ad units to them see Adding Ad Units to Placements)
All of the line items for your roadblock should use the same priority, whether it be house, standard, network, etc., just make sure they are the same. Also, the tricky part of this setup is determining your impression goals. As an example lets say that the advertiser has requested 100,000 leaderboards and 50,000 bigboxes. Since we have two leaderboards running, we must distribute that amount amongst all the line items containing 728x90's. So the first line item with the single 728x90 will get 50,000 impressions and the second line item with the second 728x90 will receive the other 50,000 impressions. Finally, the third 300x250 will receive 50,000 impressions. This impression breakout is only meant as an example and will of course change dependent upon what was sold.
iii. Once you have all of your settings configured. Click on the "Save and..." button at the bottom right of the page. Select "Upload Creatives" from the drop down.
iiii. You will need to setup the ad as a third party creative as you need to add an extra snippet of code to enable the roadblock. Select "Third Party" as the ad type you want to setup.
If you are using third party tags, drop them into the html field and add any macros as necessary, save the creative and proceed to step 4.
If you are using an 'image' type creative (gif, animated gif, jpeg) you can upload the file as you would a normal image creative. To do this return to the "Upload Creative" screen and select "Image" as the type of creative you want to upload.
Upload your creative as usual filling in all required fields. Then deativate the creative immediately. To do this simply check the box next to the creative you want to deactivate and then click the deactivate button.
You would then right click on the image of the deactivated creative and select "View Image Info".
Then copy the location of the image, it will start with something like:
https://tpc.googlesyndication.com/pageadimg/imgad?id=
Next you will set up a new third party creative. using a basic "a href" and "img src" statement as follows:
<a href="http://www.test.com/" target="_blank"><img src="https://tpc.googlesyndication.com/pageadimg/imgad?id=" /></a>
4. Once you have your tag setup and have tested that the image displays and clicks through properly go back into the creative and edit it. This is where you ad in the extra code that will enable the roadblock:
<script type="text/javascript">
GA_googleAddAttr("roadblock", "TEST");
</script>
In the above where you see "TEST" is where you would set the flag for the current roadblock your setting up. You could use the advertiser name or whatever you want really. I am using TEST as an example here. As I mentioned earlier having this setup as a free-form variable allows you to run multiple roadblocks at the same time if need be without the fear of them running into one another. You could set them up as "Advertiser_1" and "Advertiser_2" as an example. Paste the code snippet above your third party ad tag as seen in the example below.
Be sure to save the creative again after making these changes.
Now you want to setup the second and third line items for your roadblock which will be the other creatives you want to display. In this case, that is a 300x250 and a 728x90. The setup will be pretty much the same as above except that instead of entering the extra code snippet you would set a custom criteria up as roadblock is "TEST" when configuring the settings for each line item. To do this simply setup your line item as normal until you come to the "Add Targeting" portion. Target this line item to your run of site placement. This will mean that these line items will only display when this custom criteria is present. Next select the "Custom Criteria" tab on the left of the "Add Targeting" box.
Then select the "Custom Criteria" you setup earlier called "roadblock".
Now enter the value you want to use for this "Custom Criteria", for example Advertiser_1.
It should appear to the right with the rest of your targeting as "roadblock is Advertiser_1" in this case. You have now completed setting up the custom criteria.
Click on save at the bottom right and select "Upload Creatives" and upload the creatives as normal without adding in any extra code snippets.
Due to the way we added the code snippet to the first line item this custom criteria will only be present when the first line item displays and because of the way we targeted it to only the uppermost ad units it will always display at the top of the page. This means it will always display first and force the other two adds to always display afterwards.
You should now have a roadblock that will be a true roadblock 100% of the time.
Tuesday, July 6, 2010
Outdoor Rock Climbing in Downtown Toronto
I like climbing on rocks, that is to say I enjoy the challenge of rock climbing. I can't say why really, there are lots of other sports out there that I could participate in. I guess one part of it is the intense personal challenge it places in front of you. You are not there to compete against others, although that happens sometimes, you are there to do your personal best and improve yourself. The other part of it is I like the physical and mental challenge that it presents. It's like putting together a puzzle...while balanced on your toes on tiny pieces of rock while gripping desperately with the tips of fingers to other tiny outcroppings. OK, maybe that glorifies it a bit but you get the idea it makes both your mind and body work and it makes them work together and hard, and I enjoy that.
Lately I have been rising early on a weekday morning and making the trek to my local indoor climbing facility, The Rock Oasis and partaking in an offshoot of rock climbing proper known as bouldering. I waffled when typing that last sentence as it could be argued that bouldering was really around first and that rock climbing proper is an offshoot of it, but enough semantics and back to the point at hand. I love bouldering! It distills the essence of what I like about rock climbing into a awesomely potent form.
For those of you not familiar with bouldering it is basically a style of rock climbing undertaken without a rope and normally limited to very short climbs over a crash pad so that a fall will not result in serious injury. Now that is a very bland straightforward answer which I actually stole outright from the first line in the description of bouldering in Wikipedia. What I have discovered, and those of you that boulder will know what I am talking about, is that bouldering takes the crux moves, the most difficult part of a climb, and makes that into what you are focused entirely on. It takes the most challenging part of a normal rock climbing route and places it front of you to work on over and over until you unlock the proper sequence and poof! The problem is solved! ... or you give up because the problem is too damn difficult!
This new found love of bouldering has drawn me to think a lot about it in my off time...like right now. Usually, when I have off time I am some where in the vicinity of a machine that connects me to the internet and this has led me to a site some of you might of heard of...YouTube. On this YouTube I stumbled across all manner of different bouldering and climbing videos but one in particular caught my eye. Check it out at the top of the page if you haven't already. It is a short sort of documentary about two massive boulders that were moved from Cornwall to an area in London England and set up as an urban bouldering area.
This has got to be the best idea I have ever heard of! It was done as an art instillation but also a place for people to boulder in an urban centre. Now I live in the lovely city of Toronto and I thought to myself why can't we do something equally as cool?
So here's my the link to the Facebook group I created in order to drum up some support for this project: Urban Bouldering Installation Toronto
If you think its a neat idea sign up and let us know! Show your support, who knows maybe it will become a reality.
Sunday, July 4, 2010
Predators!
I am so stoked to see the new Predators movie! It looks so good! Words fail me at the potential awesomeness this movie could contain! I have tried to collect as many videos and trailers about the Predators movie in one place for your viewing enjoyment. Check out the main trailer below.
Main Trailer -
I especially like the little character spotlights they have been putting out. It gives you a glimpse at individual characters in the movie and a little background about each one. My personal favorite is Hanzo, the Yakuza but I am a sucker for anything remotely samurai in nature. I am really rooting that Hanzo will survive through the movie but my guess is he won't. Check out his featurette as well as a few of the other characters below.
Hanzo played by Louis Ozawa Changchien
Did I mention that Predators also has Danny Trejo in it! Yes Danny Trejo that guy that plays the scary Mexican in... well anything that ever had a scary Mexican in it! Check out his character featurette below.
Cuchillo - played by Danny Trejo
I've never been a big fan of female characters as mercenary assassin types, they just come off as unbelievable and forced to me. I hope it turns out other wise for Alice Braga's character Isabelle in Predators because she definitely brings some hotness to the screen!
Isabelle - played by Alice Braga
I find Topher Grace's acting to be unconvincing and mediocre at best so I am hoping his character Edwin doesn't stick around too long. However, with Edwin being the odd man out, he is a doctor while the other characters are warriors, I think that something special is in store for this character which means I will just have to put up with Topher's acting!
Edwin played by Topher Grace
I think the casting of Laurence Fishburn as Noland was a great choice I have liked everything I have seen him in.
Noland - played by Laurence Fishburn
This next clip just blows my mind it looks so good and gives a little insight into Fishburn's character, Noland.
Noland Clip -
Royce played by - Adrien Brody - a mercenary who reluctantly leads a group of elite warriors who come to realize they’ve been brought together on an alien planet… as prey. With the notable exception of a disgraced physician, they are all cold-blooded killers – mercenaries, Yakuza, convicts, death squad members.
another Royce clip!
We are still waiting on character featurettes for the following characters:
Stans played by Walton Goggins
Nikolai played by Oleg Taktarov
Mombasa played by Mahershalalhashbaz Ali
Without giving too much away the jist of the story is that a group of the most deadliest men on earth have been gathered together and placed on the predators hunting planet to act as game for the Predators. Check out the video below which gives you a glimpse at a bit of the set used in the movie as well as a hint from director Nimrod Antal about the possibility of a sequel!
Set Tour -
I can't wait for this film to come out! I hope you are all as excited as I am! See you all opening night, July 9/2010!
To learn more about Predators check out the following links:
IMBD - Predators
Rotten Tomatoes - Predators
Predators-movie.com - This site has some awesome little games and features built into it, including one where you can build out a human or predator team using your Facebook friends and pitt them against the other side! So cool!
Main Trailer -
I especially like the little character spotlights they have been putting out. It gives you a glimpse at individual characters in the movie and a little background about each one. My personal favorite is Hanzo, the Yakuza but I am a sucker for anything remotely samurai in nature. I am really rooting that Hanzo will survive through the movie but my guess is he won't. Check out his featurette as well as a few of the other characters below.
Hanzo played by Louis Ozawa Changchien
Did I mention that Predators also has Danny Trejo in it! Yes Danny Trejo that guy that plays the scary Mexican in... well anything that ever had a scary Mexican in it! Check out his character featurette below.
Cuchillo - played by Danny Trejo
I've never been a big fan of female characters as mercenary assassin types, they just come off as unbelievable and forced to me. I hope it turns out other wise for Alice Braga's character Isabelle in Predators because she definitely brings some hotness to the screen!
Isabelle - played by Alice Braga
I find Topher Grace's acting to be unconvincing and mediocre at best so I am hoping his character Edwin doesn't stick around too long. However, with Edwin being the odd man out, he is a doctor while the other characters are warriors, I think that something special is in store for this character which means I will just have to put up with Topher's acting!
Edwin played by Topher Grace
I think the casting of Laurence Fishburn as Noland was a great choice I have liked everything I have seen him in.
Noland - played by Laurence Fishburn
This next clip just blows my mind it looks so good and gives a little insight into Fishburn's character, Noland.
Noland Clip -
Royce played by - Adrien Brody - a mercenary who reluctantly leads a group of elite warriors who come to realize they’ve been brought together on an alien planet… as prey. With the notable exception of a disgraced physician, they are all cold-blooded killers – mercenaries, Yakuza, convicts, death squad members.
another Royce clip!
We are still waiting on character featurettes for the following characters:
Stans played by Walton Goggins
Nikolai played by Oleg Taktarov
Mombasa played by Mahershalalhashbaz Ali
Without giving too much away the jist of the story is that a group of the most deadliest men on earth have been gathered together and placed on the predators hunting planet to act as game for the Predators. Check out the video below which gives you a glimpse at a bit of the set used in the movie as well as a hint from director Nimrod Antal about the possibility of a sequel!
Set Tour -
I can't wait for this film to come out! I hope you are all as excited as I am! See you all opening night, July 9/2010!
To learn more about Predators check out the following links:
IMBD - Predators
Rotten Tomatoes - Predators
Predators-movie.com - This site has some awesome little games and features built into it, including one where you can build out a human or predator team using your Facebook friends and pitt them against the other side! So cool!
Monday, May 24, 2010
document.write()...do not want
So checking my email this morning I noticed a broken ad displaying.
I usually notice the ads on the page more now than I notice the actual content. I work in advertising and it seems my brain has made this switch without my knowledge or consent.
Now not only is this ad not displaying properly but it is using an outdated way of displaying. These two factors drive me crazy, especially when being used by large online entities such as Hotmail or Google...yes, Google uses this method still.
Now the first part of this problem makes me mental as an ad guy for obvious reasons. A large organization serving broken ads for an extended period of time... this should have been caught and fixed a long time ago. Let’s give them the benefit of the doubt for the time being though. Let’s say that this ad is served by an affiliate network and only displays occasionally and in rotation with many other advertisers which would make the issue much more difficult to troubleshoot. This places the onus of QAing these ads back on the organizations that are providing the tags in the first place, the affiliate networks.
I have worked with a number of affiliate networks in my time and not one of them has proper checks and balances to catch these sorts of problems and for the most part they don't seem to care. This means extra diligence and headaches for publishers...yay.
Now the second part of this whole document.write issue is why is it still being used at all? It is a dirty way of inserting content to be sure and has a few known issues:
- content being added using document.write may not appear in the page’s DOM so no access to accessibility APIs
- document.write does not work properly in XHTML when pages are served as XML
Now a nice fix for this was proposed over at Sitepoint by James Edwards.
However, the boat was missed slightly when we talk about who is to blame for this issue. It most definitely is not the publisher (site) for the most part. Usually you have to look no further than the affiliate networks. There seems to be little to no regard for the ads that they load up or allow their clients to load into their network and distribute far and wide across the web.
So if they don't care, how do we make them care? Well I suppose it shouldn't come as a surprise that advertising is driven by revenue. So let’s hit them in their pocket books. If every publisher that experiences a problem with their ads stands up and says we will not run your advertisements until you deal with these problems we might get somewhere. Ya... when pigs fly this will happen. Even the very thought of losing revenue is a big no no in advertising. So where does that leave us? Back at square one...with broken ads.
A couple more interesting articles about document.write() can be found at:
Why document.write() doesn't work in XML
Accessibility1
Accessibility2
Accessibility3
Accessibility4
I usually notice the ads on the page more now than I notice the actual content. I work in advertising and it seems my brain has made this switch without my knowledge or consent.
Now not only is this ad not displaying properly but it is using an outdated way of displaying. These two factors drive me crazy, especially when being used by large online entities such as Hotmail or Google...yes, Google uses this method still.
Now the first part of this problem makes me mental as an ad guy for obvious reasons. A large organization serving broken ads for an extended period of time... this should have been caught and fixed a long time ago. Let’s give them the benefit of the doubt for the time being though. Let’s say that this ad is served by an affiliate network and only displays occasionally and in rotation with many other advertisers which would make the issue much more difficult to troubleshoot. This places the onus of QAing these ads back on the organizations that are providing the tags in the first place, the affiliate networks.
I have worked with a number of affiliate networks in my time and not one of them has proper checks and balances to catch these sorts of problems and for the most part they don't seem to care. This means extra diligence and headaches for publishers...yay.
Now the second part of this whole document.write issue is why is it still being used at all? It is a dirty way of inserting content to be sure and has a few known issues:
- content being added using document.write may not appear in the page’s DOM so no access to accessibility APIs
- document.write does not work properly in XHTML when pages are served as XML
Now a nice fix for this was proposed over at Sitepoint by James Edwards.
However, the boat was missed slightly when we talk about who is to blame for this issue. It most definitely is not the publisher (site) for the most part. Usually you have to look no further than the affiliate networks. There seems to be little to no regard for the ads that they load up or allow their clients to load into their network and distribute far and wide across the web.
So if they don't care, how do we make them care? Well I suppose it shouldn't come as a surprise that advertising is driven by revenue. So let’s hit them in their pocket books. If every publisher that experiences a problem with their ads stands up and says we will not run your advertisements until you deal with these problems we might get somewhere. Ya... when pigs fly this will happen. Even the very thought of losing revenue is a big no no in advertising. So where does that leave us? Back at square one...with broken ads.
A couple more interesting articles about document.write() can be found at:
Why document.write() doesn't work in XML
Accessibility1
Accessibility2
Accessibility3
Accessibility4
Subscribe to:
Posts (Atom)