Archive for the ‘technology’ Category

Does Google Adsense need more total quality management?

Friday, October 24th, 2008

As an adsense publisher, I am observing the effects of the financial crisis on my advertising revenue. It dropped by more than 50% in the last three weeks. While I was going to blog about only that, I have read Vered’s post on adsense ads.

Then I decided to take her opinion into consideration too. Let’s just start with what I am going to say. It’s not nice to see that adsense income decline but there are lessons from this. I think the most important lesson is that people click on adsense ads really for the reason of being interested in the offer. We understand that because when there is a financial crisis, the click through rate declines. Pay per click cost didn’t decline too much, at least in my personal experience. So, from this data in hand, we can clearly understand that encouraging clicks do not help on increasing adsense revenue.

Encouraging clicks is strictly prohibited by Google anyway but people always try to find a way to encourage people within the rules. This is not going to generate any further income. People still try it because they think adsense ads are there to trick visitors into clicking them. They don’t think adsense as a process. In fact, adsense is a process as I have written earlier about contextual advertising and it involves those steps:

  1. You have a meaningful article on your page.
  2. You can be found among search results and you are in a relatively decent position, let’s say your page comes up between #1 and #50.
  3. The search terms are related with your topic of your article.
  4. There are enough adwords clients that need to show their ads on such a page when it is found with such keywords.

Let’s come to where adsense needs more effort in total quality management.

Some advertisers are eager to pull visitors to their website and they design and prepare the copy of their ads to be very attractive. Those advertisers usually decrease the overall level of quality in adsense because they are after quantity, instead of quality. The type of advertising Vered talks about is this kind of advertising.

However, with this financial crisis and lessons from that in mind, push marketing doesn’t make sense. When a visitor has the incentive of buying a product that she is interested in, she is going to click that ad anyway.

Thus the most important part lies in advertising visibility, that is putting the ads on places where people are not affected by ad blindness.

I was going to write more on this but I must stop here because blogger.com is banned in Turkey and I want to follow those news. I’ll continue to discuss adsense total quality management later on.

At this point, we should talk about “smart pricing”. Smart pricing is a technique that Google Adsense program uses. They have written only once about smart pricing. There is not much detail on how this operates. Briefly, if your web site creates too much clicks without ending up with any conversion (which means a sale, a subscription or any other criteria which is set by the advertiser or google adsense, for instance having visited more than one page in the destination web site or spending a certain amount of time in that web site) your web site is then being smart priced for a period of time. This is when you see 20 clicks on an ad which only brings $0.20, for instance. Those numbers are not exact numbers and I am not an adsense professional, so don’t take them as the ultimate truth. I am just telling this to give you a rough idea. I even don’t know whether this smart pricing is still being used or not. This is personal experience and knowledge from my own readings over the web.

This notion of smart pricing should give us another clear idea what adsense is all about. It is designed with the intention of being profitable for every player in the game. Your visitors are part of that game too. According to this perspective, putting adsense ads on your web site is like an additional service that you offer to your visitors. So, it is also meaningless to use plugins to set advertising visibility such as “no ads for friends”, “ads only for visitors who come from search engines”, etc. Advertising may be evil on many levels but Google Adsense is less evil in comparison to other types of advertising. This is the essence of Adsense and other similar contextual advertising systems.

Now let’s come back to the view that advertising sucks. This is the point where I suggest a more thorough total quality management for adsense. Adwords clients must understand at least what I have understand so far. Only than they will design meaningful ads instead of sucking ads.

There is still more to say about that. For instance, about our economic system as a whole. Because you never see an ad that sucks when it is about an absolutely needed good or service. Ads suck mostly when they are about a good or service which is not really necessary. Of course this is also a subjective issue but anyway, sometimes you can decide that only by using your intuition.

Optimizing your WordPress installation for cloud computing

Sunday, September 21st, 2008

When you are on a shared server, you don’t need to pay attention to how much server resources your WordPress installation utilizes. Your hosting company pays attention to that and notifies you when some code go berserk and ends up eating too much cpu or something like that. However, on a cloud computing environment like media temple’s grid server, you have to be careful with how your WordPress installation uses server resources. Your hosting company won’t notify you until the resource consumption goes abnormally high. That’s not bad, so you don’t want to be notified everytime you use more cpu than normal because we are in the year 2008 and we may need server resources for many of the applications we use.

On the other hand, when time passes and your blog starts to get extraordinary attention, you may want to learn tips and tricks on how to optimize your wordpress installation and how to minimize resources it uses. Here are tips and tricks about just that.

First and foremost, you must use caching. WP-Super Cache is the best option for that. WP Super Cache caches your posts and pages as beautiful pure html files so your server doesn’t use resources for php output. Other caching plugins don’t do that (at least I don’t know of any other). Others usually just caches the content and continues to use php cycles to deliver output.

The second important thing you have to keep in mind is that WordPress’ custom 404 (page not found thingie) handler uses too much cpu cycles. This isn’t unique to WordPress. Any other CMS like Drupal, TextPattern, etc. who uses custom 404 handling also uses more cpu cycles than any normal, usual 404 page. What to do about that? Use Google Site Maps plugin in order to inform Google faster when you have deleted a post. This plugin automatically generates a Google compliant site map and submits that to Google everytime you make a change in your content. Apart from that, there are also urls that are seeked by robots and they also can generate 404 error codes when not found. One example in my mind now is the favicon.ico file. Favicons are used by many web sites for bookmarking urls. You have to place one in your root directory because every robot I know looks at your root directory for that file. Moreover, not only robots look for favicon.ico but also many browsers look for it when users want to bookmark your blog. Many modern browsers also look for it because they display it in the tab. The best practice is, go create one and place it in your root folder. Favicon.cc is my favorite place for creating favicons and downloading them into my computer and then put them on my host. It’s very practical and free.

Same holds true for your feeds. Use Feedburner for distributing your feeds. Since your feeds will be distributed by feedburner and not by your server, you will have this load minimized too. Your domain.com/feed will be checked (almost) only by Feedburner and this is at most once or twice a day.

There may be other examples for would be 404 files that don’t come with your WordPress installation. You can make up your own examples too. Either way, you have to find a way to create them or handle them. So far, I don’t know of any plugin which handles that issue. Maybe it’s a good idea to build one. It should check for common known urls on your blog which may be requested often by robots, search engines, and like, and maybe creates them for you.

Third, comment spam also puts another weight on your WordPress installation and that eats your valuable CPU cycles too. Akismet is NOT a solution for this because a comment or a trackback or a pingback will hit your server and be recorded for evaluation anyway. WP Spam Free solves this problem by not allowing comments from agents which are not a browser. Since many bots who works for dropping spam comments and trackbacks to WordPress blogs do not recognize and use JavaScript, this plugin checks whether comment owner’s agent can recognize javascript. It’s a wise solution. It also informs normal users who turned javascript off so that they don’t get surprised when they are not able to post comments.

Those three factors are what I have experienced so far with my grid server. I think this can be the first post in a series because as time goes by I would experience new cpu cycle hungry factors and find solutions about them. So I’ll post them too. One thing I am not sure about is wp-cron.php and admin-ajax.php files. It looks weird but it seems like they eat more cpu cycles when you don’t post frequently. But this is just a guess. I’ll post about that too when I am sure of them. So, please subscribe to my RSS feed if you find this post useful, there are more to come.

How to transfer a single post or selected posts from one blog to another?

Sunday, September 14th, 2008

A couple of days ago, I had to transfer a post from one of my blogs to wordpress.com for mirroring purposes. This may be something you will rarely need but it happens. I had a post which became very popular and at the time I transferred the post there was 900 plus comments in that post. Handling huge amount of comments in WordPress is another issue, I’ll try to mention that later in this post but now I will move on to ‘how i did it’ section.

I created another user in my WordPress installation. That’s very easy, you just go to users on the right of the WordPress admin menu and add a new user, of course with a different name than yours. You can also set its password and other details there but that part is irrelevant with what we are going to do. Then go to post(s) you want to export exclusively and edit them by changing their author. You can do that in the post editing page below the editor.

Then go to ‘manage’ and select export. There, you will have the option of restricting posts you will export to a certain author. Select your newly created author for exporting his posts. Then click ‘download export file’ and you are done. You have an export file where your selected posts are included. Now you can use that file for importing them on any other WordPress blog provided that they have the proper version of WordPress, I mean supporting this export – import thing.

For more practical options, when you need a temporary place to export & import your posts, just use WordPress.com. Go to WordPress.com and create a new blog for just that. Don’t forget to set privacy options there so you don’t have duplicate content in case search engine robots hit your carrier blog at the time. It may be also proper to close the blog for normal visitors too, according to what you do with that blog.

Using a WordPress.com blog is especially a necessity when you transfer posts from Blogger (blogspot) to WordPress because self hosted WordPress still lacks that functionality. The option is there but it doesn’t work (taking about 2.6.2 at the time of this writing).

Well, it’s that easy. Now let’s discuss the scalability of WordPress when it comes to hundreds of comments. In my case, WordPress was not able to handle them for me. Both the amount of comments (900 plus) and the traffic was heavy on that single page. There wasn’t any issue with the server. The traffic and the server load this page created was equal to any page that would receive the same amount of traffic and attention. Pagination of comments is a solution but it didn’t work for me because I find existing plugins immature. The only solution to this in the future might be that WordPress have built-in, nature pagination feature for comments, like in Drupal. Most probably that was why Dooce made the switch to Drupal from WordPress. She opens her posts to discussion rarely (only every four or five posts) and she receives thousands of comments under those posts.

If your receive less than 100 comments on your posts than WordPress is scalable for your in termes of comment load handling. But if your receive hundreds of comments on each of your post than WordPress may not be the best option for you. Of course there are ways for handling this however a naked WordPress installation is just not sufficient to handle 1000 comments effectively.

Let’s go back to our transfer business. That’s how I did it. I mirrored the post with all the comments to a WordPress.com blog and everybody looks happy now. Don’t forget to close comments and pings while you start exporting those posts because it is very possible to receive comments after you have started the export process and those comments will get lost.

Another tip: I copied everything for that post. The text, the url and the exact date and time. Then I have recreated the same post with the same url with the same date and time. Then I closed the post for comments and only opened them for pings. I also stated in a single comment that discussion is now going on in another address, in a mirror. Now, things are fine. Everybody is happy, including me.

One last thing that I have learned from this experience: It is a wise thing to close comments after a period of time you have published a post. I think one month is convenient. Otherwise, the post’s comments turn into a forum instead of a discussion of what you have written.