I know this questions has been asked a few times here. But these seem fairly outdated, and it looks like the Adsense for Ajax project has been canned (开发者_如何学JAVAor at the very least, moving very slowly).
I have a web site that I've recently integrated pjax into -- basically, it uses Ajax to load the just the main content area, while maintaining the browser history and back/forward functionality using javascript's history.pushState
.It has made a world of difference in how responsive the whole site is, as it no longer has to do HTTP requests for all of the outer shell of the site (javascript, css, images).
But Adsense just won't work with Ajax -- at least not natively. I've read about iFrame solutions, but it sounds like iFrames and Ajax and my pjax solution won't play together well.
What I'm doing is not devious, as far as Adsense usage goes. I'm still just showing one set of ads per page navigation as users click links. It's just not doing a full page-level HTTP request.
Are there any options out there? Has anybody done something like this? Or, does anybody know of any updates to the Adsense for Ajax project?
I need to get this figured out. If I can't, I may chose the pjax over the Adsense, which means my whole business plan will have to be rehashed. Ugh.
Thanks in advance.
FYI, I reached out to Google, and received the following response:
At this point, we do not have a product that works with AJAX sites or sites containing other dynamic content. This is something we're actively looking to build out, but I cannot provide more information or a timeline at this point.
While it's fairly vague (which I expected), it at least shows that they recognize the need, and are not completely ignoring it.
Thanks to all for your responses.
This is against AdSense terms.
You may want to implement the DFP solution, If I recall exact DFP allows something like that.
This is old but I figure an updated answer could be handy.
Google's ad manager DFP does now support refreshing ads, which is something ajax sites could find useful. Unfortunately, they don't support moving ads, and you can only have each 'slot' used once per page refresh, so it's still pretty limited.
tag=googletag.defineSlot('/1/my_ad', [728, 90], 'ad_0').addService(googletag.pubads())
then later:
googletag.pubads().refresh([tag]);
If refreshing the same ad won't work for you, the best/only solution currently seems to be to make a simple iframe.html file with the google ad code and load that in an iframe dynamically via ajax with height and width set. I think Adsense is still smart enough to figure out the referring page in terms of contextual advertising.
The best solution to this problem is to provide static alternative pages. If you're pushing history state then you must have already come up with a URI scheme to describe "pages" on your site. Now all you have to do is serve static copies of those pages to browsers without javascript. In addition to letting the adsense bot see your content, this will also be good for SEO because it will allow the google web crawler to see your content.
First a warning: Google is merciless and will not reason with you should you break even a technicality in their TOS.
That aside, this question seems to be synonymous with yours. I don't believe there have been any advancements in AJAX-ing ads since then (HTML5 doesn't provide any solutions I can think of...)
The TLDR version of that page is that:
- Refreshing ads breaks adsense TOS
- It sucks that it breaks adsense TOS
- If you really want to, you could use an iframe as shown here
Given google's annoying (and strict) terms, might I suggest using another ad network
Try Adsense Custom Search Ads. It allows you to use keywords (could be long sentences) to show ads. [edit: it's not permitted according to tos, keywords must be user submitted]
精彩评论