2015年11月2日月曜日

アタラCTO 加藤大樹インタビュー: 広告APIを使ったシステム開発者に聞く

いつかやろうと思っていたのですが、社内インタビューしてみました。CTOの加藤とは、創業期の混乱の中で出会い、僕のアイデアを具現化してくれるという形でgluはできた気がします。

----------------------
杉原:広告APIを使ったシステムの開発者である、アタラ合同会社の取締役CTO 加藤大樹さんにお話を伺います。まず、加藤さんの今までの経歴を簡単にお話しいただけますか。

加藤:自分の会社、テクノプラスが2015年で10年目になりました。テクノプラスの前は、個人事業主でプログラマーを数年やっていたので、開発者、エンジニアとしては15年ぐらいですね。

杉原:テクノプラスの前は何をされていたんですか。

加藤:テクノプラス初期の開発事業と同じようなことです。お客さんも基本的には同じで、PLMや部品管理やサプライチェーンマネジメントとかです。ちょうどITバブルが始まった1999年、2000年ぐらいかな。サプライチェーンマネジメントというのが流行っていて、企業のスループットをどう改善するかということころで、企業にITがどんどん入ってきました。当時は、いわゆるフリーランスで、趣味でパソコンをしていました。

杉原:昔、シェアウェアを売っていましたよね。

加藤:そうですね。音度計のMIDIシーケンサーを見よう見まねで作ってみたら、それがけっこう売れたので、調子に乗って「パソコンって楽しいな」と(笑)


独学でプログラミングを習得


加藤:趣味で、そういうこともやっていて生活の足しにもなりました。あるとき、家族のこともあり、ちゃんと定職に就こうとしまして。僕はパソコンでプログラミングができるので、プログラマーにはなれるだろうと。当時はフリーランスの開発者でも募集をかけているところが多かったので、そういうところに応募していました。それで打診はくるんですが、経歴が全くないので3回ぐらい面接をして全部断られて。「技術はあっても経歴で全部断られるわけ?」と思い、それからは少し工夫して、経歴よりも「できます!シェアウェアを作っていました!」のような感じで仕事をもらっていったのが、この業界に入った経緯です。



最初の仕事は、知り合いがいた会社から渡されました。そのとき、C++はできたのですが、ExcelもWordも使ったことがなくて。しかも、フリーランスということで、自宅でやる仕事だったので、紙の資料を束でもらい「あとは2週間後によろしく」という感じで全く仕事内容が分からない。

杉原:(笑)まだまだ波乱ですね。それで、どうしたんですか。

加藤:どうにもならないので、自分なりに考えました(笑)最初の仕事は、どうしても落とすわけにはいかなかったので、資料の表を見て、自分なりに考えて工夫して「たぶん、こういうことだろう」と仕上げて持って行ったらいきなり「お客さんにプレゼンしてくださいね」と言われて。作っていったものもよく分からないまま、直接エンドユーザーにプレゼンするという、いま思えばムチャクチャなことを言われていたのですが、僕はIT業界が初めてだったので、最初のうちは「そういうものなのかなぁ」と思っていましたね。

杉原:かなりスパルタで鍛えられてきたんですね。

加藤:スパルタといえばそうだったんでしょうけど、僕は会社員だったこともないし、IT業界も初めてだったので「仕事っていうのは、そういうものか」と思いました。よく分からないまま資料を渡されて、できあがったものは自分で説明して。よく分からないまま説明したら「まぁ、こんな感じでいいんじゃない」とか「想定していたものとは違うけどこれのほうがいいね」とか言われて。ハズレだけどアタリあたりみたいな(笑)


テクノプラス設立の経緯


杉原:何年かフリーランスをやった後に、テクノプラスを作ったのでしょうか。

加藤:そうですね。1年ぐらい、その会社から仕事をもらっていました。がむしゃらにやっていたので1年経った頃には評価されて、他の会社からお呼びをいただくようになりました。結局、その会社の親会社へ行き4年ぐらい働いていました。

そうこうしているうちにITバブルが下火になってきて、チャレンジングな仕事が減り、つまらなくなっていきました。そこで、ちょっとITから離れました。2年ぐらい。業界の勉強もして、仕事というものがどういうものかもなんとなく分かってきたので、企業経営とかにちょっと首を突っ込んでみようかなと思いまして。

杉原:経営コンサルですか。

加藤:はい。それが、あんまりいい思い出ではなくて。結果としては失敗だったんです。自分なりには頑張っていたけど、事業はうまくいかないし、お金はなくなっていくし。自分の得意分野ではないなぁと。プログラミングが懐かしくなって、東京に戻ってきました。

それで会社を立ち上げたんです。昔の人脈に打診したら、以前のように仕事ができるようになって。最初は、食いぶちをなんとかするためにテクノプラスを立ち上げたんですが、街で偶然、一緒に仕事をしたことがある人に会って「久しぶりに飲みに行こうか」となり、飲んでいるうちに「この業界に戻ってきたなら、ぜひまた一緒に仕事をしてください」と言っていただけたりして。わらしべ長者じゃないですけど、仕事をもらえるようになっていきました。

杉原:製造業向けのシステムをやっていたのですか。

加藤:そうですね。生産管理とか、部品管理とか在庫管理といった仕事の人脈が多かったです。


アタラとの出会い


杉原:加藤さんと僕の出会いは、アタラとしては2年目、テクノプラスとしては5年目ぐらいのときなので、2010年でしょうか。

加藤:そうでうね。

杉原:当時、アタラとしては社運をかけた受託案件がありました。

加藤:gluの前身になる、gluの下地、土台部分の、いまでいうエンジンと呼んでいる広告API接続部分ですね。最初、アタラの開発担当の方からは「受託でできないか」と言われ、僕も新しいことをやりたかったので「そんな仕事があるんだ」ということで引き受けました。

杉原:いまもよく思い出します。渋谷のとあるカフェで一時間ぐらいでしたかね。正直あのときは、プロジェクトの雲行きが怪しくなっていたこともあって、僕は必死に加藤さんにマーケティング広告業界におけるシステム開発の可能性について、まくし立てるように話して、それを「ふんふん」と聞いてくれて。興味があるのかないのか分からなかったけど(笑)最終的に「興味ある」と言ってくれて「検討してみます」ということで別れました。次の日に連絡があって「一緒に協力したい」って言ってくださったんですよ。

加藤:杉原さんがそんなに熱意をもって話してくれた記憶は全くない(笑)

杉原:ひどい!おかしいなぁ(笑)僕は相当、必死でしたよ。

加藤:僕は逆の立場で、杉原さんが何を言っていたかは全然覚えてないんですが「この仕事を取りたいな」って思っていたんですよ。杉原さんの話はそっちのけで、どうやったらこの人から仕事をもらえるかばかり考えていました。

杉原:面白いなぁ(笑)いま明かされる話。結果オーライだけど。そのプロジェクトを皮切りに、一緒に仕事をするようになったんですが、最初はいまの関係ではありませんでしたね。

加藤:最初は請負業者という位置付けでした。


何も無いところからスタート


杉原:広告業界とマーケティング業界のシステム開発に参入して、実際にどうでしたか。

加藤:最初は正直言って「ひどいな、なんにもないな」と。

杉原:(笑)業界がね。

加藤:いや、業界もだけど、アタラも(笑)誰も何も教えてくれないんですよ。杉原さんとも話す機会がなかなかないし。僕としては、やるなら出資もしてガッツリやりたい、失敗しても本気でやりたいというのがありました。せっかくネット広告という当時から華やかそうに見えたところにコミットするんだから、出資も含めて二つ返事でしたが、始めてみたら本当に何にもなくて、けっこう大変でした(笑)

僕がシステム開発を始めたときと同じで何もないなぁと。ということは「ここは僕の実力を発揮するところだろう」、「自分の好きなようにやらせてもらえるかな」と思いました。だいぶ自分の思い通りに、ある程度は杉原さんやエンドユーザーの話を聞きながらですが、思いのままに開発を始めたという感じですね。


gluの前身ATARA Apps


杉原:最初は受託で始めましたね。当時はATARA Appsというツール群で、Keyword Generator(キーワード調査支援)やCreative Scheduler(クリエイティブスケジューラー)、Competitive Analyzer(競合分析ツール)と、最終的にはいまのgluの前身になるReport Automator(レポートオートメーター)といったところですね。

結局、他のツールはATARA Appsとしてもディスコンということになったんですよね。Report Automatorも一定のところまで作ってリリースしていなかった。レポーティングは広告代理店さんや一部広告主にとって必要なツールであることは確信があるけれど「ちょっと合わないなぁ」ということで、そのときはやめたんですよ。

僕が覚えている限りでは「これはなんとなく市場に合わないな」と思っているときに加藤さんがglu、当時はIMCと呼んでいましたが、そのアルファ版を作ってきたんです。「こんな感じじゃないですかねぇ」って。たぶん、Report Automatorの設計をしているときに疑問を持っていて「こういう目的ならこういう感じじゃないかな」というのを具現化して持ってきたという記憶があります。


無言実行でアイデアを通す


加藤:その前に、Creative Schedulerを僕の方でちょっと作っていて、ふと気付いたんです。Creative Schedulerとかってネット広告やリスティング広告の構造という型にはまっている気がして。これをもっと柔軟にすると、レポーティングやデータ分析のところにも柔軟性が出てくるんじゃないかなと。これが最初のアイデアになりました。

僕の中では何も無いところから作っていくのが癖になっていました。でも、何も無いところから説明するのは、実はよくないことも分かっていました。できあがっていない、アイデアや構想、僕が考えた小さなアイデアを先に出しちゃうと、特に杉原さんたちは業界のプロフェッショナルだから、悪い言い方をすれば否定されるんじゃないかなと思ったんです。どんな業界でもプロフェッショナルの人っていうのはそうだから。

それで、いつも作ってから話をするんです。有言実行じゃなくて無言実行。ちょっと古い考え方かもしれないけどコミットなしでやる。これはなかなか難しい。でも、コミットするときにできていればタイミングも合うかなと思い、2週間ぐらいかけて、こっそり作っていました。

杉原:2週間でやったんだ。

加藤:思い立ったらで、たぶん2週間もかけずにやりました。とりあえず、プレゼンできるところまでガーッと作って、その後ゆっくりやればいいかなと思って。

杉原:たぶんそうだと思う。最初にプレゼンしてもらったとき、僕だけでなく他のアタラメンバーもいたけど、さっぱり分からなかった。

加藤:みんなの顔が無反応で「ふーん」みたな。「いや、でもあるからね」みたいな雰囲気を感じちゃって。たぶん、そうなるだろうなとは思っていたんですが。これでアイデアだけを出したら「いや、そうじゃなくて」と絶対に言われるなと思いました。

杉原:そうだったと思うな。

加藤:だから作っていって「これ、一応、動いているんでどうですか」みたいな。そうすると「じゃあ、そのまま進めてもらおうか」みたいな雰囲気になるので。だいぶチャレンジングなアイデアを入れていったので。それまでのネット広告のレポーティングにはない概念をたくさん入れていました。

杉原:それが正しかった。程なく、それを使った大手広告代理店さんの受託システムがとれて、あれをiMCとして提案したんですよね。

加藤:そうですね。僕が作り始めたときに「レポーティングシステムの改変をしたいので、アタラさんできませんか」と言われて。

杉原:それで提案をして。当時は、まだあまりできていないレベルでしたが信用していただいて、作らせてもらいながら本格的に導入や開発を進めていきましたね。

加藤:ファーストユーザーが決まったから、これは作らなきゃなと。


広告APIでぶつかる最初の壁


杉原:いまでこそ、DSPやFacebook広告など、いろいろなデータをつないでレポーティングできるツールになっていますが、当時は、リスティング広告から始めて、Yahoo!とGoogleの広告APIをつないでデータをとって、レポーティングすることにフォーカスしていました。我々はもう何年も広告APIをやっていますが、最初はいろいろと課題や工夫が必要だったのではないでしょうか。

加藤:広告APIでぶつかった最初の壁はデータ量です。初期はそれを全く考えていなくて。というか何も情報がなくて。ただ広告APIにつないでデータを取ってくればいいのかなという感じで単純に作ったんですが、やり始めたらえらい量のデータが落ちてくる。そのわりには広告APIの耐久性もないし。5年前は広告API自身のパフォーマンスもよくなかった。つながるにはつながってデータも取れるけど、本当にできあがるのかな、使う側のことを考えて作っているのかなと思いましたね。

とっつきはいいけどやり始めると「こんなにデータが落ちてくるのか」、「どうやってデータベースにデータをつっこんでいくのか」と。当時のお客さんとも相談しながら、毎月のように大量のデータをどうやって突っ込むかが最初の課題でした。

実は、僕もmySQLは初めてでした。オラクルとかでやっていたけど、mySQLの癖と異常なデータ量と。当時、EC大手の会社かどこかが「mySQLを使って3億レポートを作ってすごい」とありましたが「こっちは5億とか10億とか入るぞ、これ」みたいな。

杉原:超えていたんだ(笑)

加藤:そうですね。「どうしよう、できあがらない」というときに前から考えていたことがあって。O/Rマッパーを使って、オブジェクト指向とリレーショナルデータベースをどうつなげるか。そのときにパフォーマンスをどうするかというのは、僕の中で1つのテーマだったんです。

どうやって、オブジェクト指向で作って柔軟性を確保しつつパフォーマンスを低下させずにデータベースにアクセスするか、データベースにデータを入れるか。これを研究していた時期でもあるので、その研究で培ったことを適応するタイミングかもしれないと思い、前の仕事でモヤモヤしていたものをトライしてみたんです。

杉原:研究としてはいい課題だったんだ。

加藤:データ量としても手頃にあるし。

杉原:データ量以外の課題はありましたか。そもそも、取れないこともあるじゃないですか。うまくレスポンスが返ってこないとか。


広告APIをどう使っていくか、最終的なイメージがわかない


加藤:細かい技術レベルというか、癖というか、広告APIの使い勝手の悪さみたいなところもあったんですが、一番の問題点は最終的なイメージがわかないことでした。この広告APIを使ってデータをどう使っていくのか。エンドユーザーのイメージが当時は全くわかなくて。最終的にどう設計したらいいのかも分からないというのが、プログラムを書くよりも全体設計の中で一番頭を使ったところです。それが決まらないと、各広告APIの違いをどういう方向で吸収していったらいいか、方向性が定まらない。

そんななか、聞くとか研究するとかじゃなく、思いつきで「こっちだろう」とセンスで進んでいきました(笑)最終的には「たぶん広告APIを使う人は、こういう風に使うはずだ」という僕の思い込みですね。逆に言うと「こういう風に使ってほしい」みたいな。広告APIのGoogleとかYahoo!の違いは、こう合わせれば最終的にはうまくいくんじゃないかと。


広告マーケティング業界のシステム化は未開な分野


杉原:それプラス、まだ、お客さまも広告マーケティング業界のシステム化が進んでいなかったので、どこまでシステム化できるのか分かっていないお客さまも、けっこういたと思うんですよね。

加藤:当時は、たぶん誰も分かっていなかったんじゃないですかね。

杉原:となると、普通に現場経験のある人だと「データは最小粒度でほしい」とか、リスティング広告でいうと「キーワード別で日付別で」とか「全種類のデータをとにかくぶっこみたい」といったニーズがあったと思うんですが、できるときとできないときってあるじゃないですか。ある程度、お客さまのやりたいことは満たしつつも、ある程度はシステムでバランスを取らなきゃいけない。いまでこそ、知識や経験がついてきたから、だいぶできるようになってきたけど当初は大変だったんじゃないですか。

加藤:なんで乗り切れたのか、よく分からないですね。僕としては、最小粒度は確かにそうだけど、GoogleとかYahoo!でいうと、アカウントキャンペーンや広告グループ、キーワードとかある中で、最小粒度から積み上げてデータができていることは分かったので、積み上げる仕組みや、どのレポートがほしいとかは、自分がレポートを見る側にたって勝手に想像しました。

最小粒度っていうのは、たぶんこういうことで、Yahoo!とGoogleの違いっていうのも、お互いの共通点ではここぐらいだろう。想像しながら、お客さんや杉原さんとかに聞きながら、いったんあててみて、やりながら調整していきました。それを前提として、たぶんこのあたりは少し変わるだろうと柔軟に開発していたのが工夫といえば工夫ですね。

杉原:いま、広告APIや広告に関連したツールなども含めて、何種類ぐらい扱っていますか。

加藤:広告APIとしてつながっているのは15ぐらいだと思います。


広告APIへの想い


杉原:これが使いやすい、これは使いにくいとかって、あったりするんですか。開発者視点で、どんな広告APIだと開発者のことを考えていることになるのでしょうか。

加藤:例えば、Google AdWordsの初期は、上限がいつも決まっていました。こちらが、これだけほしいのに、広告APIとして同時に接続できるのは1つです、15までですとか。そういう制限をかけられるのが一番辛いところ。一定時間にデータを取らないといけないから、同時接続としては50ぐらいほしいんだけど、15に制限されているとか。

当初、AdWordsのレポーティングは最大15っていうのがあって。しかも、ちゃんとプログラムを終了させないと、レポートを作る広告APIのスロットが埋まってしまうという。それを、また回復させなきゃいけないし。15っていうのは本当に狭いんです。そういう制限が最初の苦しいところです。

もし、僕達が広告APIとしてお願いすることができるなら、そういう制限を撤廃してほしいですね。他社広告APIでも50という制限があります。結局、その制限にあたるとエラーや予期しないことが起きるので、こちら側で制御しないといけない。制御も大変です。1つの媒体だけならいいですが、こっちの媒体はこういう制約があって、こっちの媒体はこういう制約あってと、個別の処理をしていかなくてはならないので、そういう制約はない方がいいなぁと。

杉原:アーキテクチャとかは気にならないですか。

加藤:AdWordsがいろいろな意味で先駆者なので、どの広告APIもAdWordsっぽくなるというか。一番大きいのはデータ構造で、アカウントからキャンペーン、広告グループというのが、みなさんだいたい同じ。4構造や3階層になっていて、そこはある意味、楽なところです。gluはその階層を制限なしに持てるけど、逆に媒体からそれをされると、対応はたぶん大変だったんじゃないかと思う。


広告APIの情報が足りない


杉原:僕が広告APIを見ていて思うのは、提供者側からのレファレンスやサンプル、ドキュメントが足りない、情報が足りない。ここは気にならないですか。

加藤:とても気になります。媒体によっては整備されているほうだったり、全然ない媒体も多くて情報に常に飢えています。あるだけマシなのかもしれませんが、ほぼ全ての媒体さんで情報が間違っているんですよ。情報が古い、とか間違っている、その通りやってもうまくつながらない、つながったとしても返ってくるデータが違うとか。

最初の頃は、自分たちも間違っているのかどうなのか分からないんですよ。広告APIに接続できてデータが落ちてきたけど、項目が足らない、入っている値が想定と違う、金額をとってみたら「100万」って入っているけれど「100万円」なのか「100万倍されている」のか単位が別なのか、判断ができないんです。そういう知識がないし、ちゃんと書いてなくて。いろいろやってみるなかで、やっと分かってくるというのが時間的にも一番辛いですね。

杉原:でも、結局そのやり方しかないというか、自分でやってみて解決していますよね。

加藤:最初は僕一人でやっていたから時間がかかって辛かったですが、いまは調べるスタッフもいるので、ドキュメントが正しいかを確認してから始められるようになりました。あ過去のノウハウから「こういうふうに書いてあるということは、こういうことじゃないか」と想像ができるようになりました。いまは人材もいるので、そういうところは楽になってきました。でも、いずれにせよ、間違いであるとかないとかは、あんまり改善してないかもしれません。

杉原:そこは改善してほしいところですよね。たぶん、僕らはいろいろな広告APIを取り扱っている実績からしても多いし、ノウハウにしても日本の中で一番詳しい部類に入ると思うんですよ。

加藤:そうですよね。いろいろ調べましたもん。ドキュメントを見て、あーだこーだ言うのではなく、実際にいろいろなことを試していますから。

杉原:制約や制限についても、だいぶノウハウがたまってきたと思います。

加藤:端っこの方の広告APIとか、他の方がやらないようなところも触っているので。


加藤さんの展望


杉原:今後、加藤さんとしてはgluやそれ以外のところで、どんな展開をしていきたいですか。

加藤:前身のエンジンのときとgluを開発して、足掛け5年ぐらいですが、当初からそれなりのユーザーに広まることを考えて設計しています。こういう媒体もどんどん増えていくだろう、頑張ればユーザーも有名なところが使ってくれるだろうと。拡張性とかは意識して作っていました。

将来構想も5年ぐらい先を考えて作っていたけど、これをうちのスタッフはなかなか理解してくれない。僕が頭のなかで考えていたことが伝わらずに苦労します。構想として5年先を考えてきて、いま5年が経ちました。あのとき考えていた漠然とした構想が半分ぐらいしかできていません。全部やろうとするとあと5年ぐらいかかるのかな。

当時、考えていたのは、例えば、ためたデータをユーザーがどうやって使っていくのか。ダイスという名前を付けていて、ユーザーがサイコロを転がすようにデータを転がせるという意味だったんですが、そこまでは至っていません。

もっと柔軟に、いろいろな側面を見せられるデータ構造、いろいろなデータの見せ方、そういうのもできていません。あと5年ぐらいはいまのgluを拡張して、もともと持っている構想をやっていくしかないと思っています。


エンジニアに必要なスキル、アタラが求める開発者像


杉原:加藤さんが持っている開発者像というか、一緒に働く人に必要なスキルってなんですか。

加藤:エンジニアとして、一番やりやすいのはビジョンが共有できているってことです。ただ、困ったことに、僕自身がビジョンをあまり共有しないタイプなんですよ。ビジョンを共有して一緒にできるのはいいことなんですが、人に言うと壊れちゃうイメージがあって。

杉原:(笑)じゃあどうすればいいんですか。

加藤:その裏返しで「なんかこの人よく分からないけど一緒についていったら面白いことが起きるんじゃないかな」という期待感を持ってくれると、やりやすいと思います。

杉原:(笑)そこは信頼して、とりあえずついて行ってみようかなと。

加藤:僕も実績ができてきたから、そういうことを言ってもいいかなと思うわけです。「なんか、すごそうな人だ」と期待感を持ってくれれば。


コンピュータ言語に興味があるか


加藤:あとは、ちゃんと勉強してくれる人。なんとなくプログラムを書いている人はたくさんいるんだけど、コンピュータやコンピュータ言語を、意外と勉強していないんですよね。「10年間実績があります」と言ってもちょっと突っ込むと「いままで、なんとなくやってきたので」とか。コンピュータ言語や開発を愛してくれていないと感じます。趣味でやっている人の方がよく調べていたり、興味を持っていたりするので、最近は仕事でやっている人よりは、趣味でやっている人の方が僕は合うというか。

杉原:それ、僕じゃないですか(笑)

加藤:そうですね(笑)コンピュータ言語の面白さを感じてくれている人ですね。

杉原:なるほどね。ある程度一定のスキルは必要かもしれないけど、好奇心が必要というかな。

加藤:自分が使う鉛筆やノートとかのツールを愛しているっていう感じですかね。アウトプットよりは自分が取り組んでいるツール、エンジニアの場合はコンピュータ言語にちゃんと興味を持っていて、調べたり勉強したりしている。そういう人の方が僕はどちらかというと好みで、結果よりは手段だったりしますね。スキルとしてはそんなところです。結果としてはオタクな人。英語でいうならgeekな人。ある会社の社長に言われたらしいです。アタラってギーキーだよねって。

杉原:(笑)僕には褒め言葉だったりしますけどね。最後に、これからこの業界を検討している開発者の方に一言どうぞ。

加藤:自分が取り組んでいる、使っているツールをもっと大切にしてほしいですね。仕事としてこなすのではなく。僕は、プログラミングがとても楽しいと思っています。材料のないところから製品が作れるなんて、プログラミングしかないじゃないですか。一応、コンピュータ一台あれば、もしかしたら世界に通用するような製品が作れるかもしれない。そういう夢や楽しさを感じてほしいですね。

杉原:この業界はどうですか。

加藤:せっかくエンジニアとして入るんだったら、ネット広告業界は最先端だから面白いんじゃないかな。GoogleやTwitter、Facebookとかデータも増えるし、いろいろな技術が投入されて成長しているところでもあるので。プログラマーとして、開発者として、ITをやるんだったら、ネット広告業界のIT開発はとっても面白いんじゃないかな。たとえば、Googleの人に出会えるとか、彼らよりすごいものを作れるとかもありますから。

杉原:ありがとうございました。

2015年3月17日火曜日

SXSW 2015に参加しました


SXSW 2015(サウスバイサウスウェスト)に参加しました。

SXSW 2015
http://sxsw.com/


そもそもこの世界的なイベントに参加することが目的ではなく、ある会社とのミーティングをここテキサス州オースティンでやることになり、はるばる東京からやって来たという訳です。ただ、ここまできて参加しない手はないのでないので、少しですが体験してきました。

SXSWはミュージック、フィルム、インタラクティブの3つの大きな要素で構成される一大カンファレンスです。宿泊先から会場までにUberを使いましたが、地元の運転手はその地について結構いろいろなことを知ってるので乗車した際、あれこれ話すようにしていますが、教えてもらったことの一つはSXSWは実はイベントとしては30周年を迎えるそうです。ローカル色の強い音楽祭だったようですが、フィルムが追加され、そしてインタラクティブが追加。

インタラクティブの世界からすると、新しいイベントのイメージですが、そんなに歴史があるとは知りませんでした。 僕は検索エンジンマーケティングのカンファレンスSMXには毎年出ていますが、それと比べると規模は遥かに違います。世界中から何万人が来ているのでしょうか。日本からも広告代理店の方々を中心に、100人程度はきてるんじゃないかな。

SXSWはなんといいますか、ボキャブラリー不足を露呈してしまいますが、とてもクリエイティブな場です。そもそものミュージックは多様なジャンルのライブが繰り広げられるようですし(日本からはPerfumeがライブをやります)、フィルムは長編/短編フィーチャーもドキュメンタリーもやります。僕は映画が大好きなので、長編、短編のフィーチャーを観ましたが、短編フィーチャーは5000作品から100が選ばれたようで、その競争率の高さが伺えます。ここで選ばれることはもちろん栄誉あることなのです。実際に観た作品もクオリティの高いものばかりでした。



ウェブサイトのSXSWとは?のセクションに、SXSWは、"Fostering creative and professional growth alike, SXSW® is the premier destination for discovery."(SXSW®は、クリエイティブかつプロフェッショナルな成長を育む、さまざまな発見のための最高の場である)としています。雑多なテーマを取り扱ったカンファレンスのようですが、その目的は上の説明の通りで、企業、団体、人、皆がそのことを意識して参加していることを感じました。

特に気に入ったのはSXSW Createという、企業が子供たちにクリエイティビティを発揮できる場を提供するイベントがありました(写真にも若干入っています)。子供たちの将来にとっても刺激的なことでしょうし、地元に還元、地元の関与という意味でも上手だな、と思った次第です。

インタラクティブもテーマはさまざま。ビッグデータ関連が比較的多い感じはしますが、動画、広告、ウェブ制作、UX、ソーシャル、クロスチャネル、などなど多種多様。普段からpaid search中心のパフォーマンスマーケティング にどっぷり浸かっているので新鮮です。

この3つのジャンルで参加できるセッション、ライブ、上映会、meetup、トレードショーなどが数百(もっとあるかも)あるので、特に自分のような初回参加者のためにSXSWでの過ごし方を伝授するセッションなどもあり、とても助かりました。映画などは上映1-1.5時間前から並ばないととか、オススメの作品やセッションとか。

あと、公式アプリがとてもよくできていて、結構感動するレベルでした。大規模イベント運営はこうでなくてはと思わせるものです。これを見ればどのセッションに出るか(Googleカレンダーなどと同期)、場所はどこか(マップと連動)、同じ興味をもった参加者は誰か(ソーシャル機能)、あと、各会場、街中にビーコンが何十と設置してあり、さまざまな告知をプッシュで教えてくれます。これ以外にも、SXSWは最先端のテクノロジーショーケースの場でもあるんだと思いました。ロボット関係も多く、Pet the Robot(動物に触れよう、じゃなく、ロボットに触れよう、みたいなセッションも)。

会場はオースティンの中心にあるAustin Convention Centerです。ただ、会場はここだけでは到底収まらないので町中のホテルがサブ会場。ライブハウスやバーはミュージックの会場、映画館やパブリックなスペースは映画上映館に変わります。そこそこ広いエリアに会場が散らばっているんので、1日中あちこちのセッションに出ていると、いつの間にか結構な距離を歩いていることになります。レストランは各社のラウンジに早変わり。登録バッジをスキャンしてもらうだけで、多くの会社のラウンジでデモを見たり、食事を楽しんだりできます。僕もTwitter、Salesforce.com、Oracle、Samsungのラウンジに入って楽しみました。

オースティンの町が繁栄しているのか、SXSWで増え続ける訪問者のための対策なのか、町の至るところで大規模な建設工事の光景を見ました。州都でもあるオースティンはその昔、あえて大規模な建設を制限して小規模都市であることを保っていたようですが、方針が少し変わったようですね。Uber運転手によると、町の発展に、都市インフラがついていっていないようです。特に交通面。

オースティンに長く住んでいる人もいれば、町の発展に伴い移住してきた人も多く、ダイバーシティ豊かでソフィスティケートされた町になっているようです。SXSWは地元の発展につながっているので、歓迎されているようです。ボランティアも多く関わっているようですし(紫のボランンティアTシャツを着ている人がたくさんいます)、町をあげてのイベントなのでしょう。

写真はたくさんあるのでアルバムを公開します。ミニ解説付きですので細かい活動の報告はこちらに代えさせてもらいます。各写真をクリックして、右矢印で次に進んでください。
20150314_sxsw2015

2015年3月12日木曜日

【AdWords script】5. AdWordsのA/Bテストをより柔軟に Part 2

先日、Brainlabs社のDaniel Gilbert氏が書いたAdWords scriptでA/Bテストを行う方法についての記事を取り上げました。

【AdWords script】2. AdWordsのA/Bテストをより柔軟に

あの記事をSearch Engine Landで公開後、同じような取り組みをしている人たちから改善案が寄せ集められたようで、グレードアップしたものが公開されました。タイトルがHardcoreとなっておりますが、まさにハードコアでありマニアック。海外の検索関連カンファレンスに行くと、こういうことを発表したりシェアしあう人たちがパネリストにも参加者たくさんいるので刺激的です。

リンク:More Hardcore A/B Testing: V2 Of The Free AdWords Script


A/Bテストの仕組みは前回と変更ありません。「コントロール」と「テスト」と分け、2つを1時間毎に切り替えるというものです。ただ、今回のバージョン2では:

  • CTRやCVRに著しく変化があった際にメールで通知する機能を追加
  • ショッピングキャンペーンにも対応
サンプルコードがあるので、これをご自身のアカウントでスクリプトとして保存してください。いくつか変更すべき変数がありますので、以下に説明します。

  • campaignLabelA および campaignLabelB
    • A/Bテストを実施するSearch/Displayキャンペーンにつけるラベル名です。今はcontrolとexperimentになっていますが、ショッピングキャンペーンでテストする場合は、こちらをブランク("")にしてください。
  • shoppingLabelA および shoppingLabelB
    • A/Bテストを実施するショッピングキャンペーンにつけるラベル名です。Search/Displayのみテストする場合はブランク("")にしてください。
  • confidenceThreshold
    • 信頼しきい値。現在0.95で設定。つまり2つのキャンペーンは95%の確率で統計的に有意差がある場合にメール通知がされます。
  • reportDate
    • 統計チェックに必要な期間。サンプルではLAST_30_DAYS、つまり本日を含まない過去30日間になっていますが、変更したい場合は、TODAY, YESTERDAY, LAST_7_DAYS, THIS_WEEK_SUN_TODAY, LAST_WEEK, LAST_14_DAYS, // LAST_30_DAYS, LAST_BUSINESS_WEEK, LAST_WEEK_SUN_SAT, THIS_MONTH, LAST_MONTH, ALL_TIMEから選べます。
  • emailRecipients
    • メールを受信するメールアドレス。複数指定も可能です。

2015年3月9日月曜日

【AdWords script】4. AdWordsのキーワードレポートをGoogleスプレッドシートで作成する

久しぶりにAdWords script関連です。簡単なサンプルを公開していきます。
今回はキーワードレポートをGoogleスプレッドシートで作成します。

 キーワードレポートを取得したいアカウントにAdWords管理画面から入り、一括処理→スクリプトに行き、新規スクリプトを作成してください。 






処理手順

処理手順は以下の通りです:
  1. AdWordsスクリプトから、あらかじめGoogleスプレッドシートで作ったキーワードレポートをコピー複製します
  2. 生データ流し込み用のシートと本レポート用のシートに分かれています
  3. 本レポート用シートにCID、アカウント名を自動的に書き込みます
  4. キーワードレポートから、指定した項目のデータをを生データ流し込み用シートに展開します
  5. データを本レポート用シートにコピペし、生データ流し込み用シートは削除します
  6. レポートが完成したら、指定したメールアドレスに通知します



注意点


  • メール通知用のメールアドレスをコードの2行目に入力してください。

  • ひな形のGoogleスプレッドシートはこちらをコピー作成して使ってください。(メニュー→ファイル→コピーを作成)
    http://goo.gl/5oglji
    コピー作成したスプレッドシートのURLを、コードの3行目に入力してください。




  • 本レポートは今月分データを取得する設定にしていますが、コード24行目のTHIS_MONTHの部分を、以下に変更することで違う期間のデータを取得できます(つまり、ニーズに応じて先週分とか本日分レポートも別途作成できる、という意味でもあります)。
    TODAY | YESTERDAY | LAST_7_DAYS | THIS_WEEK_SUN_TODAY | THIS_WEEK_MON_TODAY | LAST_WEEK | LAST_14_DAYS | LAST_30_DAYS | LAST_BUSINESS_WEEK | LAST_WEEK_SUN_SAT | THIS_MONTH
    期間指定を日付で行いたい場合は、DURING 20150301,20150308という表記をしてください。


サンプルコード


完成イメージ

メール通知はこちらが届きます。



スプレッドシートに展開されたレポートは以下の通りです。



自動実行の設定(オプション)

コードを保存した後、管理画面上でスケジュール設定すれば、指定した頻度(毎時間でも)、指定した日時に自動実行できます。メールが届くので、いいモニタリングツールになります。



他のレポートタイプのサンプルも順次公開していきます。

2015年2月13日金曜日

【AdWords script】2. AdWordsのA/Bテストをより柔軟に

海外の業界ニュースサイト等でもAdWords scriptの情報やサンプルコードが増えてきました。AdWordsへの予算が特に多い国はそうなりますよね。ちょっとした自動化やアラートから、大量の自動入稿・入札処理まで、イマジネーションを働かせればいろいろなことができます。

さて、今日はSearch Engine LandでBrainlabs社のDaniel Gilbert氏が書いたAdWords scriptでA/Bテストを行う方法について紹介したいと思います。

リンク:Here’s An AdWords Script That Will Let You A/B Test Anything

最近Daniel氏は同サイトでAdWords script関連の記事を書くことが多いようです。所属する会社について自己紹介欄で「(自称)世界最高のエージェンシー」と書いているところがいいですね!本人ともやり取りし、「日本語でももちろん使えますのでぜひ!」とのことでした。

ご存知の方も多いと思いますが、AdWordsにはA/Bテストを実施できる機能が実装されています。AdWords Campaign Experiments(ACE)- キャンペーンテストですね。ACEはなかなかよくできた機能ではあるのですが、キャンペーン設定の一部として動作するので、異なるキャンペーン設定そのものをテストすることができないというのがDaniel氏が少々物足りなさを感じるところだったようです。かといって、2週間Aパターン、2週間Bパターンといったビフォア・アフター分析は、毎分オークションで変化があるAdWordsには向いているとは言えません。

その課題を解決すべく、Daniel氏はAdWords scriptでA/Bテストを実施できるようにしました。ロジックは比較的シンプルなもので、キャンペーンを複製して、それぞれにラベルを設定します。ACEと同様、「コントロール」と「テスト」と分けるとわかりやすいかもしれません。この2つを1時間毎に切り替えるというscriptです。それぞれ同等レベルのインプレッションになるまで数週間などテスト期間を設定する、というイメージです。管理画面でキャンペーンラベルの画面に行けば、このテスト結果を見ることができます。

同氏も注意点として挙げていますが、といっても1時間毎が限界なので、これは完璧な方法ではないということです。より高い頻度で切り替える場合はAdWords APIを使うことを推奨します。また、品質スコアその他要因により、必ずしもキャンペーンがそれぞれ均等に配信される保証はありません。

ただ、シンプルかつ柔軟にA/Bテストを実施できるのはいいですね!サンプルコードをご覧になってもわかりますが、極めて簡素なロジックです。

2015年2月2日月曜日

【AdWords script】1. レポートをGoogleスプレッドシートに流し込む

さて、AdWords scriptについてもそろそろ書いていきましょう。

AdWords scriptは今まで取り上げてきたGoogle Apps ScriptがAdWords管理画面にIDE(統合開発環境)がエンベッドされているものです。AdWordsアカウントの入札、入稿、レポーティングにおけるさまざまな自動処理が可能になる、非常に便利な機構です。

日々の運用管理をする上でデータのモニタリングは当然大事ですが、いちいちCSVでレポートデータを管理画面から落としてExcelで処理しなくても、Googleスプレッドシートに自動的にデータを落とし、必要な処理を関数化したりGoogle Apps Scriptで処理を定義することが可能です。

同じGoogleのプラットフォームですので、AdWordsとGoogleスプレッドシートと連携させるのはとても楽です。特にAdWordsに対する認証やアカウントの選択をコードにする必要がなく簡単です。

前述のように、レポートデータを落としてからの処理がキモではありますが、まずはどのようにAdWords scriptを設定しデータをGoogleスプレッドシートに流し込むかのキホンとコツを解説します。

AdWords scriptの設定
実際のAdWords scriptを見ながら解説します。このままご自分のAdWordsアカウントのAdWords scriptにコピペ利用できますので、ぜひトライしてみてください。

 【サンプルコード】
これだけです。簡単ですね。AdWords scriptに名前を付けて保存してください。実行すると、「Campaign Performance Report + '取得日時'」という名前のスプレッドシートができているはずです。

ブロック毎にコメントアウト(//の部分)していますので、参考にしてください。
最初の部分は、ファイル名(レポート名+日付)をつけたスプレッドシートを生成するための変数指定になっています。最後のexportToSheetメソッドで、実際のスプレッドシート生成とデータのエキスポートを同時に処理するようになっています。

これは実はいろいろやり方はあるかと思ってまして、
  1. 新しいスプレッドシートを生成
  2. 既成のテンプレートをコピー利用する
  3. 既成のスプレッドシートの値を毎回消して利用する
今回の場合は1.にしていますが、みなさんの好みで処理方法は選んでください。

AWQL(AdWords Query Language)と便利なツール
真ん中のAdWordsApp.reportオブジェクトでAdWordsレポートの種類、出力するフィールド、出力条件を指定します。

この部分はAWQL(AdWords Query Language)というAdWordsデータに対してクエリーをかけるためのSQLライクな言語です。
  • SELECTで出力したいフィールドを指定しています。CampaignId、Impressions、 Clicks、Ctr、Costを指定しました。投稿の都合上、キャンペーンIDにしていますが、キャンペーン名(CampaignName)にするとわかりやすいでしょう(日本語でも問題ありません)。
  • FROMで出力したいレポートを指定しいています。今回はキャンペーンレポート(CAMPAIGN_PERFORMANCE_REPORT)を指定しています。
  • WHEREは条件指定です。Impressions > 0とすることでインプレッション1以上のキャンペーンのみを出力します。
  • DURINGは期間指定です。LAST_30_DAYSで過去30日間を指定しています。20150101,20150131のように、日付で期間指定することも可能です。
  • その他、ソート順や取得件数なども指定できますが、詳細はこちらをご覧ください(https://developers.google.com/adwords/api/docs/guides/awql
AdWordsにはいろいろな種類のレポートがありますし、取得できるデータの種類も多数あります。クエリー文を書くための便利な外部ツールがありますのでご紹介します。その名もAWQL.me(https://www.awql.me/)。

ログインします。認証を完了すればコンソールでAdWordsアカウントをプルダウンで選択できるようになります。

コンソールでfromの行にマウスを合わせると右のHelpの内容が変わりますね。ここでレポートの種類を確認できますので、別のものを選択したい場合はHelpのレポート名をコピペして、コンソールのfromの部分を置き換えてください。

レポート種類を変えると、そのレポートで取得できるフィールドが出てくることも確認できるかと思います。同じように必要なフィールドをコピペしてください。

Runを押すと、下に結果が戻ってきます。ここで実際にAWQLコードが間違っていないか確認できます。

コードが確認できたら、AdWords scriptで活用ください(AWQL.meの指定を参考にしつつ、コードの書き方は実際のAdWords scriptのそれに準じてください)。