I know, everyone says that. I mean it a little differently.
One of my clients is switching from one analytics package to another. The process of doing so requires that we retag every one of the many thousands of keywords that we maintain for them. This would be impossible by hand, of course, and so we utilize technology– usually Ruby in our case– to do the grunt work.
Unfortunately, we’re a little fringe in our application, and so there’s really no such thing as a support process for people like us. You do searches, call this person, they talk to that guy, and he emails this other woman. Hopefully, we patch up the thing to work enough to accomplish our goal. It’s not going to get shrink-wrapped. It just needs to work.
So, today, I found myself banging my head against the Google AdWords API. It’s great. I love it. It doesn’t always work the way you think it will. Case in point, updating keywords with a new destinationUrl.
Turns out that if I included an ampersand in that URL, my code would, properly, encode it into ‘& amp;’. Then, when I called updateCriteria, which updates the keywords, with that my keywords would all get updated with that ‘& amp;’ in the URL– not reconstituted into a ‘&’. Google said “you don’t have to encode that” when I asked about it.
OK, so I patch soap4r to just ignore that entity. It submits the request with the ‘&’ in its original form. Error– you have to encode those. Actually, that’s the right answer in this case.
Anyway, I decide to explain this situation to the client. Empathetically, she listens and asks me the simple question “Those are so common; don’t you use those in other campaigns?”
D’oh! I do. How come they work, and this doesn’t? It’s because in those cases, I tend to drop everything and replace it to avoid synchronization problems. In this case, I was trying to “update” the keywords in place. Sure enough, replacing them works; updating them doesn’t.
So, I learned two things: one is some geeky tidbit about the AdWords API and the other is a valuable lesson about listening to my clients. Instead of pretending that everything was fine, I explained exactly the problem we were facing. My client used her fresh, but informed, perspective and broke the dam.
The older I get, the more I learn that, if you really want to do a good job, you need to able to admit that you don’t know everything. I’m not saying you need to admit that you don’t know anything. There’s a big difference.