Jun 01, 2012

Where to go for more information on Google Product Search / Google Shopping / Google Product Listing Ads changes

We have had a flood of questions from retailers of all sizes in regards to the big changes at Google Product Search.  To help everyone get their heads around the changes and plan accordingly, we have a variety of information coming out shortly (webinars, blog posts and in-person at IRCE.  Here are the details:


We have two complimentary webinars planned, anyone is invited:

  1. Assessing the Impact of the Recent Google Product Search Changes - Thiswebinar is Friday, June 1 at 1pm ET.  You can register here.  Google will not be on thiswebinar.  Click here to register.
  2. Introducing Google Shopping - co-presented by Google - This webinar will be Monday, June 4 at 4pm ET.  Google will be co-present and be available for Q+A - this webinar will focus mostly on Q+A with Google. Click here to register.


Going forwad, we will be posting all information related to Google Product Search and Google Shopping at our comparison shopping engine blog - CSEStrategies.com


As usual, ChannelAdvisor will have a large presence at the annual Internet Retailer Conference and Exhibition (IRCE) in Chicago next week June 5-7.  Our booth is 1401.

As you come in the exhibit hall through the right entrance, it's a ginormous booth right there.  Here's a handy map in case you can't find us.

Our booth will be staffed with experts that are able to talk to you in detail about these changes and any of your other burning e-commerce questions/needs.


Finally, I will be speaking at IRCE about Pinterest and it's impact on e-commerce.  The session is Thursday at 4:15-5pm in the social commerce track.

If you have any questions you want answered, feel free to post in comments as well.

Scot Wingo

CEO and Co-founder






May 31, 2012

RIP Google Product Search (Froogle) - What it means for the Google and the e-commerce Industry

**UPDATE: We'll be hosting a webinar with Google on Monday and a webinar tomorrow to help guide retailers through this transition. Register now for both of these webinars.**

  • Part I - Details on the death of Google Product Search. (you are here)
  • Part II - What does this mean for Google and the industry?
  • Part III - What should retailers do? Mitigation strategies

RIP Google Product Search / Froogle - What it means for Google and the E-commerce ecosystem

Part I - Details on the death of Google Product Search.

Today,  Google has made an announcement that will have the biggest impact on retailers since they launched Google Adwords - the end of life of the Google Product Search (Also known as Google Shopping or Froogle - for this series of blogs we will call it GPS for brevity).

The details are available in this blog post on the Google Commerce blog, but here's our quick summary: Everything you need to know about the death of GPS:

  • The new name will be Google Shopping
  • Free goes away
  • Free is replaced with Product Listing Ads - aka PLA - PLA is a program that has been around for a while that puts the image and price on the right gutter of normal search results.
  • There will be an incentive for retailers that sign up for PLA early and move everything early.

Here's what the new UI will look like->



This is still a bit fuzzy, but what we are hearing:

  • Today - announced (May 31, 2012)
  • June - Testing of new UI commences
  • July 1 - Shifting traffic to PLA at scale
  • Oct 1 - All results will be PLA (I bet this happens faster and this is a worst case - I'd plan on Aug 1 - more on this in the retailer mitigation post)
  • This is the US schedule, the other countries will follow through 2013.

What does this mean for Google, E-commerce and online retailers?

We've put together a detailed analysis using our proprietary data on both the GPS and PLA programs.

The headlines are:

  • Google Product Search drives ~$650m in annual sales (or Gross Merchandise Value) in the US. 
  • Google Product Search drives > $1.3B in global sales
  • If you replaced that lost GMV with PLA spend, you would have to spend $130m in the US/yr or > $270m/yr globally.   

The analysis

This table shows how we arrive at the $650m / $1.3b in global GMV using ChannelAdvisor's proprietary data and Comscore's data on Google Product Search:


The second table shows how we arrive at the PLA cost to replace that free GMV:



This change is going to create a substantial shift in the e-commerce ecosystem.  Google is clearly the winner, generating possibly > $250m in new revenue into the PLA system and dramatically increasing the monetization of every e-commerce query.

That's the surface impact, in the next post, we will explore the secondary and tertiary impact on the industry.  In the third post, we will discuss mediation strategies for retailers.

(Note to ChannelAdvisor customers: we are hosting a series of Webinars and strategy calls to help everyone with remediation strategies around this very impactful Google change).

SeekingAlpha disclosure - I am long Google and Amazon, eBay is an investor in ChannelAdvisor where I am CEO.








May 18, 2012

ChannelAdvisor's Developer Choice Days: Two Winners!

One of my favorite traditions at ChannelAdvisor is something we call “Developer Choice Days.” Every quarter we set aside a few days for the engineers to work on anything they want. Lots of tech companies do something similar; Google’s “20% time” is probably the most famous example, but our program is more like Yahoo’s “Hack Days.”

Like Yahoo, we also have a review where the engineers show off their work and compete for prizes. We have a panel of “celebrity judges” who hand out a Best Project prize. Then there’s a prize for the project that is most useful to our services and support teams. Finally, there’s the “people’s choice” award, voted on by the audience members (generally the other engineers).

We’ve been doing this for four years now, and while the format and frequency have changed slightly over the years, we always have lots of innovative projects, many of which “ship” as part of our production software. In fact, we’ve shipped nearly 50 of these projects, and while many of them are infrastructure changes or internal tools that aren’t visible to most users, quite a few are customer-facing features---big ones, in some cases.

Our latest Dev Choice review was Episode XXIX (which gives you an idea of how long we’ve been doing this). The celebrity judges were celebrities indeed: CEO Scot Wingo, President & COO David Spitz, and Directory of Global Services Greg Ives. We had 10 projects, most of which are going to production in a month or two. While all the projects were excellent, we all know There Can Be Only One. Well, in this case, four.

Developers Day
There was a two-way tie for Best Project: QA Engineer Sean Miller’s project (Left in Picture), a “test grid” that speeds up our automated testing; and Database Administrator Justin Jaeschke’s project (Right in Picture), a demonstration of SqlServer Reporting Services for internal reporting. Runner-up for Best Project was Software Engineer Marshall Scott’s prototype of an integration with Fulfillment by Amazon. The winner of the Most Useful Project for Support and Services was Web Developer Jeromie Walters’s project, an internal tool for examining checkout error logs. And the People’s Choice award also went to Sean Miller’s test grid: we love projects that save time!

Our next episode of Developer Choice Days is scheduled for early August. Stay tuned!

Blog post by Anthony Alford, The Feed Doctor. 

May 04, 2012

Three-and-a-Half New Functions from the Feed Doctor

TheFeedDoctorIt’s been a busy month for the Doctor. Besides attending Catalyst US (which was DYNAMITE), I also managed to write THREE new functions, plus an improvement to an old one. Here’s how it happened...

I was answering a business rule question on one of our forums when I realized we were missing two really handy functions: MAX and MIN. These functions accept two to eight numeric inputs and give you back the largest and smallest values, respectively. For example, MAX(2,1,8,4) would output 8, while MIN(2,1,8,4) would output 1.

One of our readers left a comment that inspired a change to the IFTOOLONG function. This function had three inputs: the “normal” text, a maximum length, and a “fallback” text. If the normal text is shorter than the maximum length, then the function outputs that. Otherwise, it outputs the fallback text. The problem is that sometimes the fallback text is also too long. So our reader suggested we allow the function to accept multiple fallback text values, and output the first one that’s not too long. This makes a lot of sense, so I made it so.

She also suggested we create a function that would truncate an input text so that it had no more than a given number of words. This is similar to the LEFTWORD function I wrote about a little while ago, only instead of the maximum total length, you specify the maximum number of words. I called this function NWORDS, and here’s an example:NWORDS(“The quick brown fox jumped over the lazy dog”,4,” ”)

Notice the “ “ after the 4. This is the delimiter between words; you could also use something else, such as a comma in a comma-separated list of words. In this example, the result would be “The quick brown fox”.

Look for these changes and more in our next software update!

Blog post by Anthony Alford, The Feed Doctor; Image courtesy of Zee Khan, Customer Support Manager


Find out more about our Comparison Shopping Solution with our Guide to Comparison Shopping



May 02, 2012

Upcoming Webinar: Flex Feeds


Join us Thursday, May 3 for the Flex Feeds webinar to learn how our new solution allows you to send completely customized product data feeds to satisfy the needs of virtually any commerce partner. 

Thursday, May 3, 2012
11:00 am ET, 4:00 pm GMT

Register now for the Flex Feeds webinar!

Apr 24, 2012

Upcoming Webinar: 2012 Spring Release Webinar Series


Be sure to check out the Upcoming Webinar: 2012 Spring Release Webinar Series blog post for more information about our new Facebook Campaigns, Flex Feeds and Rich Media solutions.


Apr 09, 2012

The Feed Doctor Unveils a New Business Rule Function: JOINNB

We’ve got quite a few business rule superstars here at ChannelAdvisor. I was talking to two of them, Alisyn Collins and Carol Scheible, about a rule they had written. They had used JOIN to splice together a bunch of fields with a delimiter between them. But some of the fields were blank sometimes, so they had extra delimiter characters they had to get rid of. To fix this, they were using a pretty scary regular expression. They suggested that we needed a new function:

“What we really need is a join that skips blanks, so you don't end up with duplicate delimiters in the first place.” 

This was definitely a facepalm moment on my part: of course we need a function for this! You might even argue that that’s the way JOIN ought to work by default. But since it’s kind of risky to change the behavior of things that aren’t, strictly speaking, broken, I decided to make this a new function. I let Carol and Alisyn pick the name: JOINNB. The “NB” is for “no blanks.” 

Here’s an example of how it works. Let’s say that $sku is “ABC,” $brand is blank, and $mpn is “123.”

If you wrote this rule:

 you’d get this output:

But if you use the new function:

you get this:

This new function will ship with the April release, just in time for Catalyst. Speaking of Catalyst: I’ll be there myself, so if you get a chance, come by and say hello!

Blog post by Anthony Alford, The Feed Doctor. 


Mar 09, 2012

The Feed Doctor's New Business Rule Functions

Have you ever wondered how we decide on the different functions that we build into the business rule system? Today I’ll tell you the story of two brand new ones.

I get asked to help write lots of complex business rules. Usually, I can figure out a solution, but sometimes it’s not pretty. If it’s a problem that comes up a lot, sometimes I like to create a brand new function to help make it simpler. Here's a recent example where I was asked for help on writing a rule. The input to the rule is a comma-separated list of values. The rule should output as many whole values in the list as possible so that the total length of the output is less than 50 characters. So for example, if the input is:


Then the output should be:


You can easily do the part about "less than 50 characters" using the LEFT function, but if you do that, you get this:


So, you have to do some REGEX magic to cut off that last comma and letter j, and it can get messy. It turns out, I've helped people with this very problem several times; I even wrote a blog post on it LONG ago: The Feed Doctor Makes a Long Story Short.

Finally, I decided it was time to build this function into the system. I created a new function, LEFTWORD. You give it the input text, the maximum length, and a "delimiter," which can be anything; in our example, it would be a comma. If you have a list of words and you want to “chop” it on word boundaries, you can use a space. If you have several sentences and you want to chop at sentence boundaries, use a period.

Another thing I like to do from time to time is take a look at some of the patterns of business rules that people write. If I see that numerous people are writing long, complex rules to solve the same problem, it’s obvious that there's an opportunity to create new functions. Here’s a pattern that we’ve had, basically forever: Write a rule that outputs value #1, unless it's blank, in which case it outputs value #2, unless that's blank, in which case it outputs value #3, unless...you get the picture. You can do this with the IFBLANK function, but since IFBLANK only allows two inputs, you have to "nest" the IFBLANK calls, like this:

IFBLANK(IFBLANK(IFBLANK("value #1","value #2"),"value #3"), "Value #4")

What a pain! Why can’t IFBLANK be more like CONCATENATE and JOIN, which can accept a variable number of inputs? Why indeed. So, I decided to fix that, too. Now IFBLANK will accept up to 8 inputs, and will output the first (i.e., "leftest") one that is not blank:

IFBLANK("value #1","value #2","value #3","Value #4")

These changes rolled out yesterday along with other updates that are included here in the complete Release Notes.

For more information on comparison shopping best practices, download 16 Common Comparison Shopping Mistakes to Avoid at All Costs.

Blog post by Anthony Alford, (a.k.a. The Feed Doctor), Technical Lead

Feb 22, 2012

E-Commerce superstars are coming to Vegas!

Vegas sign

This year’s Catalyst conference is stacking up to be the best ever.

This is largely due to the superstar line-up we’re bringing to Las Vegas in April. Marketplaces Newegg and Walmart.com are the most recent additions to the sponsorship list that also includes Amazon, eBay, Google, Buy.com, ShipWorks, PayPal, Terapeak and many more. We’ll have Sebastian Gunningham from Amazon, Michael Jones from eBay, Matt Eichener from Google, and now Gary Vaynerchuk and Zia Daniell Wigder have joined the list of keynote presenters as well.

If you haven’t heard of Vaynerchuk, this video will give you a little insight into what Catalyst attendees have to look forward to: Turning up the Tweet.

Gary V

Online marketing expert and author of The Thank You Economy Gary Vaynerchuk

Zia Wigder of Forrester will join us in Vegas as well to share her thoughts on the hot topic of international expansion, with a focus on the fastest growing global e-commerce markets: Latin America and China. 


Forrester Research, Inc. Vice President and Research Director Zia Wigder

Stay tuned—we’ve got more exciting announcements about Catalyst coming in the next few weeks.  Our event space is limited, so you should probably go ahead and secure your ticket now before Catalyst is sold out!

Catalyst is sure to be a valuable opportunity for anyone in online retail. Don’t miss out, register for Catalyst NOW!

For more details and a full list of speakers and sponsors, read Best and Brightest Of E-Commerce To Participate In ChannelAdvisor Catalyst Conference.

Drawing a record number of participants and attendees, the Catalyst theme, NewCommerce, is proving to be top of mind for the leading retailers and companies in the e-commerce industry.

NewCommerce defines trends that span social media to cross-border trade, tablet computing and “couch commerce,” new smartphone capabilities and more, all of which create an ‘anytime, anywhere’ level of accessibility for shoppers and represents the accelerating complexity for retailers and manufacturers trying to reach consumers.




Dec 14, 2011

A Dose of Tips from The Feed Doctor

Much of the wisdom of software development is expressed as wry---nay, even cynical---aphorisms. My favorite (attributed to Hamming) is: "Mathematicians stand on each other's shoulders while computer scientists stand on each other's toes." That one is merely descriptive, but the most important ones are prescriptive, like this one from Knuth:

"Premature optimization is the root of all evil"

Programmers obsess over "optimization." Mostly they mean they want their programs to run faster, because everybody hates waiting. In case you haven't noticed, business rules ARE little programs, and as my gift to you, I'm going to give you 3 tips that could make your business rules run faster.


Let's say you've got a rule that has three possible outputs:

1. If brand is "Acme," output "Free Overnight Shipping"
2. If brand is "X," output "Free Shipping"
3. Otherwise, output "See Site for Shipping Cost" 

I usually advise people to use SELECTCASE when dealing with more than one condition, like this:

SELECTCASE($brand="Acme","Free Overnight Shipping",$brand="X","Free Shipping","See Site for Shipping Cost")

I think this looks cleaner than the alternative, using nested IFs:

IF($brand="Acme","Free Overnight Shipping",IF($brand="X","Free Shipping","See Site for Shipping Cost"))

These two rules have exactly the same output, and I assumed they took about the same time to run. I was surprised to find out that the 2nd rule is TEN TIMES faster! Here's the fundamental truth of "optimization:" it's always a trade-off. In this case you are trading clarity (first rule) for speed (2nd rule). Choose wisely!


Here's a pattern I've seen a few times:

IF(ISINLIST("Some list",$brand),LOOKUP("Some list",$brand),"Default text")

This rule checks to see if brand (it could be any attribute, of course) is the left-hand or "name" column of a list. If so, the rule outputs the corresponding data from the right-hand or "value" column. Otherwise, it outputs some default text. This is perfectly fine. However, if ALL the entries in the list have a non-blank "value" column, the rule could be this:

IFBLANK(LOOKUP("Some list",$brand),"Default text")

The second rule is twice as fast! The reason is that the first rule ALWAYS looks up the value in the list TWICE, whereas the second rule only does it once. Now, again, there's a trade-off: if your list has blank entries in the "value" column, the rules are NOT the same.

Regular Expressions

Ah, who doesn't love a regex? (By the way, here's another aphorism “Some people, when confronted with a problem, think ‘I know, I'll use regular expressions.’   Now they have two problems.’) However many problems you wind up with, you'll have this one at least: regexes can be SLOW. And given two regexes that do more-or-less the same thing, one could be MUCH slower than the other. For example, here are two rules that remove html tags from a description:



I won't go into the details of these; instead I will note that the second one is faster by about 50%. Be very careful with your regexes. Most of the tradeoff is in the time it takes you to write the thing; sometimes you have to be pretty clever.

There you go friends: 3 tips for faster rules. With all the time you save, you might be able to watch all 35 bowl games this year.

Blog post by Anthony Alford, (a.k.a. The Feed Doctor), Technical Lead