Not long ago Google Blogger platform added new widget-driven templates, which use different approach from the "Classic" template. Classic template was based on HTML, new Blogspot templates now are based on XHTML which is a branch of XML.
So, classic templates are incompatible with new Blogger templates. New Blogger templates use "Page Elements" (widgets) but the places where you can insert widgets are rather limited. So what about if you need more flexibility than they allow?
- Google Widgets are always separated by dashed horizontal rules, which can be inappropriate if you want to blend your ads.
- You cannot insert widgets inside your blog post, so you need to edit template HTML code.
Of course you can use standard Blogger feature for adding AdSense ads between your posts (Blogger - Template - Page Elements - Blog Posts - Edit - Show Ads Between Posts). After that you can move these ads position using this technique. But sometimes it is not enough: for example you cannot specify channel, you cannot insert AdSense for referrals code. Also you are not able to insert ads from other ad networks (YSM, AdBrite, Chitika) with this method.
Your template could not be parsed as it is not well-formed. Please make sure all XML elements are closed properly. XML error message: The content of elements must consist of well-formed character data or markup.
So why your template could be not valid when something changed? Here is the some of XML requirements:
- Documents must be well-formed.
- In XHTML every tag should have a matching end tag.
- Ampersands (&) used for marking entity names, so you cannot use & in your code. Instead of it it must be written as &
- Element and attribute names must be in lower case
- In XHTML, the script and style elements are declared as having #PCDATA content. As a result, < and & will be treated as the start of markup, and entities such as < and & will be recognized as entity references by the XML processor to < and & respectively
- If you are interested in more, the full XHTML specification is here.
Basically, to make Adsense code, pasted into blogger template, valid, you need to replace several characters with their XML entities. They are:
Warning: Always back up your template html before changing into a new one!
This change could be quite annoying if doing manually, but we have an online tool for doing this: HTML Escape / Unescape. Frankly speaking, purpose of this tool is not only converting HTML for Blogger templates. It just replaces all special HTML characters into their entities. This is the case when we need exactly the same.
If you view HTML source of resulting blog pages in a browser, you will find the exact same AdSense code that Google provides, without any modification.
Disclaimer: Use at own risk. If you have concerns about inserting more than maximum number of ads allowed, you could contact the AdSense team and let them get back to you on their official stand.
Maximum number of AdSense ads, per page (from AdSense Policy):
|Ad type||Max count|
|Context ad unit||3|