Boo to Yahoo-Google Deal

October 1, 2008

No Gravatar

I think that there is huge anti-trust issues with the proposed Yahoo-Google advertising partnership. Google says they will backfill their advertisers into areas where Yahoo doesn’t have any advertisers.

Yahoo President Sue Decker recently wrote on a Yahoo company blog that the nonexclusive Google deal is simply a way of “backfilling” search queries with relevant ads that Yahoo doesn’t have in its network. The idea is that with millions Yahoo users making so many search queries, it is simply not possible for any one company to maintain a large enough repository of ads to make a relevant match with every query. “Not even Google,” she wrote.

As an advertiser and agency that represents several paid search clients we are concerned that Google will apply its muscle to popular terms that they have decided should cost more to advertisers which will raise our costs across the board if we are now buying them from Google via Yahoo.

How could the Department of Justice not see this as anti-trust where Google already commands somewhere around 70 percent of the search market and pairing up with Yahoo will mean that we will be forced to play by their rules and algorithm changes that will favor squeezing more and more out of their already upset advertising community. Google is already exhibiting unfair advertising practices by conveniently protecting large branded searches and letting large brands buy the “trademarked” search terms of their smaller competitors. It is a one-way street where big business is protecting big business and the giant just gets bigger and bigger.

Google has even launched their own “Advocacy” website:
http://www.google.com/yahoogooglefacts/

Doesn’t this look like what you usually see when politicians are sending out slander campaigns against each other. The simple fact is that Yahoo should get their game up and not sell out to Google but maybe team up with Facebook or MSN and try to get some marketshare from Google. Getting in bed with Google at this stage in the game only makes them more powerful on all fronts and reduces Yahoo’s value proposition as a brand. Yahoo is expected to make an additional $800 Million a year from this partnership. Short sighted gain for longer term losses in my eyes. Yahoo, you are bigger than this. Step away from the 800lb. gorilla, roll up your sleeves and make your damn search results better and don’t do it by listing “Wikipedia” at the top of the page like Google and MSN. Try to find a small but popular brand on large search queries in Google and you’ll only see site the large brands, newspaper, .gov links and wiki-sites. (example: travel). Why does Tripadvisor.com have to buy that keyword? Answer that and you might have the answer to what is wrong with Google’s so-called “Algorithm”.

{ View Comments }

Google’s AdWords Downfall

September 30, 2008

No Gravatar

Google has been making some very poor business decisions lately mostly in the way they handle their advertisers in Google AdWords. When I first bought an ad on Google (I believe I was the 3rd person to do so) it was presented to me in a 3-ring binder with a list of keywords that I had to purchase. There was no cherry picking or keyword negatives. I met with my sales executive in their old Mountain View offices and I believe there was about 120 people back then mostly programmers and only a handful of sales people.

I believe the CPM was around $55 initially and we purchased our block of keywords for a one-year contract in order to block out any other competitors in the dating space from appearing on those keywords.
Remember that this is pre-AdWords and there was only two ad spots on the page that were both highlighted in pale green and blue. The sponsored ads appeared above the natural results and never to the right side of the page.

We enjoyed this position for quite sometime and the traffic was great and converted well for us. Eventually we were able to refine our keyword lists and the internal estimation system got more accurate in projecting our spend for the next year.

Then came Google AdWords, this meant that we could no longer protect our positions and that the entire marketplace was going to open up in a bid environment. I fought this hard with David Scocco, who I believe was the head of vertical markets. I didn’t understand how they could cancel our contract and allow all of our competitors to now come in and fish in our waters when we had build out the opportunity with Google and now our keyword lists were getting shared by other Google sales groups to our competitors.

The sharks then filled in the tank and all of the ad spots were occupied instantly in our category. I then began to understand why Google had introduced this model to let the best advertiser and ads trickle to the top and that we wouldn’t be bullied out of our positions as long as we had a strong CTR and bid. It started out as a bull fight with some of the companies fighting for top position on several keywords but then everyone settled into where the CPA’s were working for them.

Now let’s fast forward to Google’s operations today and how tons of media companies are laying off employees and losing face with their clients because Google has decided to put strict guidelines on trying to increase their dying CTR’s by arbitrarily raising bids to $5, $10 and in some cases $100 levels making them impossible to buy anymore. Most of these keywords are directional searches like “Dell”, “Kayak” or “Match”. There is no longer a landscape of advertisers on those keywords.

Look at the keyword “Dell” a little closer. Don’t you remember searching for this keyword at one point in time and seeing advertisers for Dell accessories, re-furbished Dell’s, Dell coupon codes, Dell printer ink cartridges or even a competing Sony Laptop ad. Do the search today to only yield an official “Dell.com” ad and also Dell.com in the first natural result spot.

How does this benefit the consumer at all? Google is now deciding for us what we were looking for when we did this search instead of letting the marketplace compete with each other to offer us other options.
Obviously if I was just looking for Dell.com’s website then I could have easily navigated to it directly or clicked on the top natural result. Google is bleeding money that they used to make on these searches because not-so relevant advertisers had to pay a premium to be on these keywords before. Now they are only making money from the brand itself and the CTR on branded terms is usually in the 0.10 – 0.25 CPC range as they are relevant and click well.

You can do this search across a bunch of different brands and verticals including online education. Do a search for “University of Phoenix” and you’ll see the same thing. The Official UoP ad and UoP listed in the #1 position in natural search. What happened to the competitors of University of Phoenix ads? If I was investigating going to an online university and only knew of UoP then I would like to see other competitors ads in the “Marketplace” area but instead Google has made the decision to protect this brand.

Do a search for “Plenty of Fish” in Google and you’ll see that no one is advertising on that keyword. That is because it will cost you $10 / click to buy a free dating service keyword where your acquisition costs for a user are around $6 which means that if every single click converted you would still be under water.

This keyword gets searched well over a million times a month and Google isn’t making ANY money off of the term but there are plenty of dating companies that would love to “fish” in these waters and buy the term from them.

Now here is where I really think there is a larger issue that needs to be brought to the federal level. Google is protecting a lot of the large brands terms but not vice versa. Do a search for Match.com and then do a search for Perfectmatch.com. Why is there no advertisers on Match.com but there is a full marketplace of advertisers on the Perfectmatch.com trade keyword. How can their “Algorithm” determine that advertisers shouldn’t be able to buy Match.com because it hasn’t historically performed well for advertisers which is what they told me.

-Brian

{ View Comments }

Cuil.com AddURL or Submit Page

September 24, 2008

No Gravatar

Have you been wondering how you can get your site included in Cuil.com but can’t find anything anywhere on their site? I am always looking for alternative SEO and natural search traffic options and did a little digging around and found the Cuil.com webmaster info page at:

http://www.cuil.com/info/webmaster_info/

From that page, there is a link that says “Please let us know” – nice SEO anchor link huh? Well, that link takes you to this page:

http://www.cuil.com/info/contact_us/feedback.php?to=crawl%20me

To: Crawl Me
From: put your email address here
Site URL: http://www.mysite.com <– be sure to include the http://

or you can send them an email directly to: crawlme@cuil.com

Something tells me that the form will work more efficiently. Now cross your fingers that they start gaining some momentum before Google takes over the Earth.

{ View Comments }

Tips on Using Keyword Insertion on Google AdWords

September 9, 2008

No Gravatar

If you are trying to get a higher click through rate on your ad in Google in order to reduce your CPC in your Google AdWord’s campaign here are a few tips and tricks that I recommend you implement and use.

Google has recently (sort of) introduced new quality score measures where they are looking for the most relevant ads to appear on keywords based on a combination and mixture of click through rate, bid price and landing page quality score. This is partially in response to a bunch of junk or non-related ads appearing on some keywords across verticals that they didn’t belong to. Google has really put the squeeze on us as advertisers for others bad behavior. This has caused tons of my client’s keywords to raise to levels that they can’t afford anymore and caused me a ton of grief trying to figure out the balance on getting the algorithm to be friendly again.

I have focused much of my recent attention on A/B testing ad copy and creative along with matching landing pages for specific location or genre based keyword phrases. One of the easiest low hanging fruit methods to increase you CTR on Google is using their keyword insertion tool in your ad title. I have seen click-through’s double easily just by using this tool. Your ad also appears Bolded which makes it jump out on the page when listed next to several other paid ads.

Here is the context that you need to use when applying the keyword insert tool:

{KeyWord: Your Brand Goes Here}

By using an upper case “K” and “W” the keyword phrases will then be capitalized and look more relevant as a match to the web searcher.

Example: the user types in ’seattle barbershops’ and if you use the keyword insert tag above your ad might appear like this below.

Seattle Barbershops
Browse Listings & Reviews of
Seattle Barbershops on Yelp.com.
www.Yelp.com/Seattle/Barbers

actual ad example:
Seattle Barbershops

The other tip you might want to implement at ALL times when writing your ads is to Capitalize the first letter of each word and to use ampersand (&) instead of and and at least one call to action word like “Try”, “Browse”, “View”, “Sign-up”, or “Today” and maybe an exclamation point at the end of the call to action phrase!

Now get in there and get your hand dirty under the AdWords hood. Tuning up your car is a little more easier nowadays it seems then running a healthy CPC campaign on Google.

-Brian

{ View Comments }

The New Cool Search Engine – Cuil.com

July 28, 2008

No Gravatar

And finally the moment that we have all been so anxiously awaiting, a new search engine to battle the Google giant. I have always been an advocate for the small guys. Cuil.com was created by Ex-Google workers, Anna Patterson, her husband, Tom Costello, and two other former Google engineers – Russell Power and Louis Monier. They have kept a low profile, raised $33 million in venture capital and in the end launched Cuil, pronounced “cool” today.

The first thing I did was look for a Submit URL page. I found a webmaster info page that had an email address for now on site submissions. If you would like Cuil to crawl your site and have it included in our index, just let them know:
crawler@cuil.com

Twiceler is the name of their robot Web crawler. The user-agent is “twiceler.” They understand that many small sites are bandwidth-limited, so support the robots.txt Crawl-delay directive.

More info can be found at:

http://www.cuil.com/info/webmaster_info/

Costello’s Irish heritage inspired Cuil’s odd name. It was derived from a character named Finn McCuill in Celtic folklore. Let’s see if these guys can pull it out and make some noise in the search space. If I was Microsoft I would be trying to get some investment going on this project as it seems like a small dream team at work.

{ View Comments }

Improve Your Google AdSense CTR

July 18, 2008

No Gravatar

Our good and sometimes evil friend over at Google are always squeezing the algorithms in how they rank your paid listings against your competitors that are buying the same keywords in an effort to show and reward relevance. This can be a frustrating game for mom and pop shops and agencies to manage as keywords very important to your business can be turned off in a flash without any warning.

Here are some best practices that I teach and use to stay in good graces with the ‘mean’ algorithm:

1. Keyword Insertion. This is a super-duper important one to use whenever possible. Here is the tag and a good secret that not everyone is aware of: {KeyWord: YourName.com}. What basically happens when you use this tag is that the keyword or phrase search will get inserted as the link title and will be capitalized only if you capitalize both the “K” and the “W” (That’s the secret). By including your domain name or trade name then that’ll appear if the keyword phrase is too long as they won’t truncate it for you. I could almost stop right there as this step is so overlooked by most SEM shops. The other great benefit is that your keywords will be “Bolded” when displayed which usually results in higher CTR and lower bid pricing.

2. Use the Keyword or Keyword phrase in the description text field. I didn’t realize until recently how important this was in making sure that your are buying relevant keywords. If you have to break out and build new smaller ad group buckets then take the time to do it on important keyword(s). Google takes this into the consideration factor when weighing out your quality score.

3. Your Display URL. I as a measure of best practice always Capitalize my URL’s and don’t put the www. in front of them. Example: Meeta.com instead of www.meeta.com. It just jumps out at you more and is easier to read and remember.

4. CAPITALIZATION. While we are on the topic this might be the second most important best practice to follow to a “T”. You will end up fighting your brand managers and anal copywriters but don’t sleep on this one at all. Hold the line. Capitalize The First Letter On The Ad Description Text So That It Jumps Off The Page.

Example of all 4 Best Practices in play:

Your ad should look like:
{KeyWord: Meeta.com}
100% Free Dating Service!
Meet Local Singles Today.
Meeta.com

Another quick tip is that you can use superlatives in your ad description. I usually try to get a good short call to action and one exclamation point in the ad.

I’ll do another article on landing page optimization soon and how to use the Google conversion counter free tool.

{ View Comments }

Google Can Crawl and Index Flash Sites

July 12, 2008

No Gravatar

I recently did a SEO presentation at BizJam and got a few questions about SEO and flash websites and came across this posting in Google’s Blog by Software Engineers at Google, Ron Adler and Janis Stipins.

Google has been developing a new algorithm for indexing textual content in Flash files of all kinds, from Flash menus, buttons and banners, to self-contained Flash websites. Recently, we’ve improved the performance of this Flash indexing algorithm by integrating Adobe’s Flash Player technology.

In the past, web designers faced challenges if they chose to develop a site in Flash because the content they included was not indexable by search engines. They needed to make extra effort to ensure that their content was also presented in another way that search engines could find.

Now that we’ve launched our Flash indexing algorithm, web designers can expect improved visibility of their published Flash content, and you can expect to see better search results and snippets. There’s more info on the Webmaster Central blog about the Searchable SWF integration.

Now even though Google is one of the only engines that can now effectively crawl flash files there are a few other techniques that you might want to explore that include inserting primary content into the Javascript function called SWFObject 2.0. The primary content can contain links, headers, styled text, and images— basically anything you can add to an regular HTML page. With SEO copy writing applied to the primary content, Flash then becomes a non-issue for SEO.

-Brian

{ View Comments }

Basic HTTP Authentication and Partials

June 24, 2008

No Gravatar

Hello again! I’ve been quite busy in between jobs and haven’t had much free time to work on my postings…well, let’s make up for lost time! Last time we spoke, I left you with a Rails app that made use of a basic relational database that contained books and associated authors. Let’s move the chains and introduce a few new concepts that you’ll be able to use with your own applications.

In this installment we’re going to create a landing page so visitors don’t get dumped to your book controller, use a partial, learn about the before_filter, and add some basic HTTP authentication.

if/for blocks and Rails’ partials

The first thing we’re going to do is create a new landing page so visitors don’t get dumped onto the scaffolding, but first reset the database. I had some random entries there I wanted to wipe out, we can do this with:

ng:bookstore ng$ rake db:reset

Next, we’ll be generating a new controller to handle the requests for our landing page; following convetion this controller will be plural…call it “homes”.

ng:bookstore ng$ script/generate controller homes
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/homes
      exists  test/functional/
      create  app/controllers/homes_controller.rb
      create  test/functional/homes_controller_test.rb
      create  app/helpers/homes_helper.rb
ng:bookstore ng$

If you try to access http://localhost:3000/homes you’ll get a routing error; know what to do? Bingo! Let’s add a resource to our route and change the default map.root controller. I’ve removed the comments, but your routes.rb file should look similar to this:

ActionController::Routing::Routes.draw do |map|
  map.resources :authors
  map.resources :books
  map.resources :homes 
 
  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
  map.root    :controller => 'homes'
end

Now that our routes are set up, we need to create an index.html.erb file. We’ll place this in the apps/views/homes directory. You will be able to access the homes controller by either of these urls:

  • http://localhost:3000/
  • http://localhost:3000/homes

Our index file is quite barren right now, let’s add some code to so we can list our current book inventory. First, we need data to play with! Open your apps/controllers/homes_controller.rb and add an index method. Let’s pull all records from our database and make it available to our view.

class HomesController < ApplicationController
 
  def index
    @books = Book.find(:all)
  end
 
end

Now that we’ve defined our data, we can loop through it using a basic for loop. I’ve set up the table structure with a header row, the individual rows are generated by our loop.

<table>
	<tr>
		<th>Title</th>
		<th>Description</th>
	</tr>
	<% for book in @books %>
	<tr>
		<td><%=h book.title %></td>
		<td><%=h book.description %></td>
	</tr>
	<% end %>
</table>

It essentially reads, “For each book in our @books collection, output a row with two columns. In in first column output an html escaped book title, in the second column output a html escaped book description. Once we’ve cycled through all the data in our @books collection, end the loop.”

I’m going to plug the above code into our index file.

<h1>Our Bookstore</h1>
 
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus sed nisi. Morbi aliquam ornare metus. Aliquam sed pede quis nulla porta rhoncus. Ut adipiscing aliquam enim. Sed laoreet justo in turpis. Aenean metus lorem, mollis elementum, pulvinar non, pharetra at, metus. Phasellus interdum tortor non tellus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer facilisis, erat sed aliquam tristique, mi augue tristique mauris, in mollis turpis tellus vel sem. Vivamus ac nibh ac lectus venenatis blandit. Morbi eget sem ac turpis sodales tincidunt. In in nunc commodo ante venenatis ornare. Aliquam sit amet ligula.	
</p>
 
<h2>Current Inventory</h2>
<table>
	<tr>
		<th>Title</th>
		<th>Description</th>
	</tr>
	<% for book in @books %>
	<tr>
		<td><%=h book.title %></td>
		<td><%=h book.description %></td>
	</tr>
	<% end %>
</table>
 
 
<p>Aliquam vestibulum ultricies velit. Vivamus pulvinar urna. Mauris tincidunt blandit massa. </p>

Visit your bookstore. It looks kind of weird with no books eh? Let’s notify our visitors that we don’t have any books in stock; we’ll do this with a simple if statement.

<h1>Our Bookstore</h1>
 
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus sed nisi. Morbi aliquam ornare metus. Aliquam sed pede quis nulla porta rhoncus. Ut adipiscing aliquam enim. Sed laoreet justo in turpis. Aenean metus lorem, mollis elementum, pulvinar non, pharetra at, metus. Phasellus interdum tortor non tellus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer facilisis, erat sed aliquam tristique, mi augue tristique mauris, in mollis turpis tellus vel sem. Vivamus ac nibh ac lectus venenatis blandit. Morbi eget sem ac turpis sodales tincidunt. In in nunc commodo ante venenatis ornare. Aliquam sit amet ligula.	
</p>
 
<% if @books.empty? %>
<h2>We don't have any books in stock, but they're coming!</h2>
<% else %>
<h2>Current Inventory</h2>
<table>
	<tr>
		<th>Title</th>
		<th>Description</th>
	</tr>
		<% for book in @books %>
		<tr>
			<td><%=h book.title %></td>
			<td><%=h book.description %></td>
		</tr>
		<% end %>
</table>
<% end %>
 
<p>Aliquam vestibulum ultricies velit. Vivamus pulvinar urna. Mauris tincidunt blandit massa. </p>

Pretty cool eh? It’s these little methods that make me smile! Let’s take another look at our index file…take a peek and ask yourself if anything looks out of place? Does that for loop bother you? It bothers me! I don’t like to see lots of code in my views…let’s get rid of it!

Rails has a handy feature called partials; partials are little fragments of code that can be included, and reused in your views. All partials take follow the same naming convention: “_filename.mimetype.erb”. Don’t worry about mimetypes right now, for the most part you’ll be something like _filename.html.erb or _filename.xml.erb. Create a new partial named named “book listings”, then place our if/for block in the partial.

<!-- _book_listings.html.erb -->
<% if @books.empty? %>
<h2>We don't have any books in stock, but they're coming!</h2>
<% else %>
<h2>Current Inventory</h2>
<table>
	<tr>
		<th>Title</th>
		<th>Description</th>
	</tr>
		<% for book in @books %>
		<tr>
			<td><%=h book.title %></td>
			<td><%=h book.description %></td>
		</tr>
		<% end %>
</table>
<% end %>

Now that we have a partial, we need to call it. render :partial => ‘partial_name’. Render the partial in our index view where our old if/for block was.

<!-- index.html.erb -->
<h1>Our Bookstore</h1>
 
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus sed nisi. Morbi aliquam ornare metus. Aliquam sed pede quis nulla porta rhoncus. Ut adipiscing aliquam enim. Sed laoreet justo in turpis. Aenean metus lorem, mollis elementum, pulvinar non, pharetra at, metus. Phasellus interdum tortor non tellus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer facilisis, erat sed aliquam tristique, mi augue tristique mauris, in mollis turpis tellus vel sem. Vivamus ac nibh ac lectus venenatis blandit. Morbi eget sem ac turpis sodales tincidunt. In in nunc commodo ante venenatis ornare. Aliquam sit amet ligula.	
</p>
 
<%= render :partial => 'book_listings' %>
 
<p>Aliquam vestibulum ultricies velit. Vivamus pulvinar urna. Mauris tincidunt blandit massa. </p>

Rails’ before filter and basic HTTP authentication

Originally, I wanted to have us create a separate administrator section for administering the Books and Authors, but I think you’ll be able to do that on your own with the concepts we’ve worked on. Instead of a separate administrators section, let’s add some basic HTTP authentication to our Books and Authors controllers. By adding this authentication, we will be password protecting all calls to this controller. Here’s a snippet of code I use for basic access control:

def authenticate
  authenticate_or_request_with_http_basic do |user_name, password|
    user_name == "foo" && password == "bar"
  end
end

If we placed this method in our Books controller with the rest of our methods, anybody could call it by visiting books/authenticate; instead we’re going to place in a walled garden. Using Rails you have two options to protect your methods: private and protected. If you’re curious what they both do, here’s an an excerpt from RubyLearning:

  • Protected methods can be invoked only by objects of the defining class and its subclasses. Access is kept within the family. However, usage of protected is limited.
  • Private methods cannot be called with an explicit receiver – the receiver is always self. This means that private methods can be called only in the context of the current object; you cannot invoke another object’s private methods.

We’ll be using the protected method, we can do this by wrapping it like so:

class BooksController < ApplicationController  
  # note: I've truncated the methods after index
 
  before_filter :authenticate
 
  # GET /books
  # GET /books.xml
  def index
    @books = Book.find(:all)
 
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @books }
    end
  end
 
protected
 
  def authenticate
    authenticate_or_request_with_http_basic do |user_name, password|
      user_name == "foo" && password == "bar"
    end
  end

You may have noticed before_filter :authenticate before all of our methods. This is part of the master plan! By adding a “before_filter” we’re asking Rails to call authenticate (which we’ve defined). As is, authenticate is called before any method; often you’ll have a situation where you only want to apply the before_filter to select methods. Check this out:

# apply authenticate to all methods
before_filter :authenticate
 
# apply authenticate to all methods EXCEPT index, and show
before_filter :authenticate, :except => [:index, :show]
 
# apply authenticate to ONLY the index and show
before_filter :authenticate, :only => [:index, :show]

So let’s review…in the previous section: we created a new landing page for our visitors, played with some if and for blocks, added basic HTTP authentication, and had a crash course on the before_filter. I’m sure you’ve been playing with the app in your browser, but if you haven’t…load up http://localhost:3000/books and you should be greeted with a familiar authentication dialog box!

Leave a comment, or send me an email with ideas for future articles! I wanted to cover SEO friendly URLs, validations, and a whole lot more this time but I wanted to get you guys an update sooner than later! Useful? Donate to my beer fund or digg this!

More Rails reading:

Understanding Rails partials

{ View Comments }

MSN adCenter Desktop Tool Beta

June 6, 2008

No Gravatar

I attended Danny Sullivan’s sort of new SMX Advanced conference here in Seattle this week and was walking around the exhibitor areas looking to see if there was anything new to report and the best booth stop of the morning for me was at the Microsoft Advertising booth. I talked to a guy that was super informed on the new MSN adCenter Desktop tool that is currently in Beta right now and he gave me a preview of the tool and I was super excited that MSN beat Yahoo to the punch to match a tool that Google has had in the marketplace for quite sometime now. Here are some features of the adCenter Desktop tool:

  • Bulk editing bid prices
  • Bulk editing destination URLs
  • Ad Group geo-targeting
  • Uploading changes instantly to your Account
  • Set and monitor bid and CTR alerts
  • Keyword research tool and optimization (see monthly search traffic and demographic data for keywords)
  • Create campaigns with wizard tool
  • Ability to view and manage multipule accounts

I know you are about as excited as I was to hear this news and you are just about to leave to go search MSN Live for a link on downloading the tool. Here is the link for you:

MSN adCenter Desktop Tool Beta

You can either sign-up online for the pilot or contact your Account Executive to get you access. I know everyone including myself can’t wait for MSN to acquire Yahoo so we can put a dent in Google’s empire on paid search.

MSN also recently updated their Microsoft Advertising logo. I went searching around for the new logo that I first saw in my Account Executive’s signature file on email. It was interesting to see Microsoft’s progression of logos for Adcenter. I have included a few below that I found. Remember that Microsoft launched the MSN butterfly logo way back on Feb. 14th, 2000.

New Microsoft Advertising Logo:

Here is another great adCenter resource if you have any questions or are an API develop:
Microsoft adCenter Community

{ View Comments }

Rails Conference 2008

May 30, 2008

No Gravatar

I’m down in Portland, OR this weekend for Rails Conf.

Officially, the conference spans four days, Thursday through Sunday. Since most of the sessions on the first day looked pretty basic, I skipped the first day. The Friday keynote was presented by Joel Spolsky. It was a light, good morning keynote about uber basics but I enjoyed it.

When the wi-fi doesn’t suck, I’ll set aside some time to keep you guys updated on the sessions that I’ve attended.

{ View Comments }