speee engineer mtg 2016/10/05
TRANSCRIPT
10/05 Engineer MTGNAKAJIMA Satoshi
なにをしているか
プロモーションユニット(PU)をサポートするシステムの開発/運用
PUとは?
PUとは
各事業のプロモーション全般を担当
広告運用、効果検証、分析など
PUの業務
出稿した広告によってどれぐらい費用が発生し
て、それによって売上がどれぐらい上がったのか
効果の良かった広告は一体何が良くて、効果の悪かった広告は何が悪かったのかの検証・仮説
次の広告はどのような施策を打つのか
どうやって計測しているの?
広告の効果計測の仕組み
広告に1つずつutmパラメータを振る
utm_source
utm_medium
utm_campaign
utm_content
utm_term
広告の効果計測の仕組み
これらのパラメータを組み合わせてユニークにし、各オフラインデータ(本人確認済CVs, 訪問完了CVs, 申込, etc...)がどの広告からの流入していたのか、たどれる
PUはなにをしていたのか?
広告の構成
PUがやっていたこと
各広告媒体から配信結果をCSVなりでDLしてくる
PUで広告とオフラインデータを紐付けてどの広告で売上が上がったのかをまとめる
キャンペーンや広告グループ単位での費用対効果(ROAS: Return On Advertising Spend)などをKPIとして追っていた
PUがやっていたこと
ROAS を出すには各階層毎の売上がわからないといけないのでハイスペックPCにリモートで繋いでExcel を使ってutmパラメータからどのキャンペーンや広告グループなのかを判別し、それぞれの売上を算出していた
そのデータを使ってレポートを作成
PUがやっていたこと
プロダ
クト
キャン
ペーン数
広告グル
ープ数広告数
キーワード数
ieul 1502 647,174 1,770,387 4,487,242
salon 736 20,669 143,014 2,273,279
nurikae 351 66747 270,743 24,918
PUがやっていたこと
全部紐付けられないので追う必要がありそうなも
のを一部抜き出して見ていた
紐付けぐらい機械でやろう
PUをサポートするシステムで何を行っているのか
各広告媒体から配信結果を取得し記録する
対応媒体
Google(search/display)
Yahoo(search/display)
Hike
Popin
Gunosy
PUをサポートするシステムで何を行っているのか
各事業部からオフラインデータを取得し、utmパラメータを使って広告とキーワードとサイトリンク毎に紐付ける
上位概念(アカウント、キャンペーンなど)毎に集計する
紐付けたデータを表示、レポートの出力
common-model の話
common-model におけるモデル共通化の現在とこれからやろうと思っ
ていたこと
common-model とは
Markeforce に関連するモデルの共通化を目的とした gem
Rails Engine 製
common-model を使ったアプリケーション
im-prom-marke-force
im-prom-result-collector
2つのアプリケーションから1つのDBを参照
作り方は省略。やってみてどうだったか
どうだった?
個人的にはやってよかった
普通のWebアプリケーションっぽくないところの恩恵は大きいかも
困った所
install:migrations を各アプリケーションでやると migration ファイルがその時の年月日時分秒になり、DBは共通のものを使用しているので schema_migrations との違いが出て色々怒られる。
とりあえずの対応は migration ファイル作ったら中にコメントアウトで元の migration ファイルの年月日時分秒が入ってるので職人の手で rename
困った所
モデルの追加がちょっと心理的ハードル高かった
ただ慣れてくればあまり問題ない
開発したいアプリの Gemfile の中で branch が指定できるので向け先変えて開発
テストも書いてる
困った所
本番 migration が面倒
多分普通なら deploy 時に capistrano に任せる所だが Markeforce では role: db を外しておいて自動で migration しないで直接 rake db:migrateしていた
良かった所
重複が省けた
所感
最初の方は慣れずに手間取ったが、後半はそうでもなくやってよかったかな、という感じ(+あんまりモデル追加や変更もなかった)
プロダクト自体 社内向け + そんなにアクセスユーザいない
からこそ無理やりやった部分も多く、参考になるんかいな、という感じ
でも Markeforce はまだこの形で続けていこうかと思っている
この後のやっておきたいな、と思っていた所
migrationの脱却
やっぱり migration 周りは面倒っちゃ面倒なのでmigration の脱却 をしておきたい、と思っていた
この後のやっておきたいな、と思っていた所
common-model の rails 脱却
結局Railsに依存しているのは恐らく Active::Record, Active::Model , Active::Support ぐらいなので Rails Engine でなく普通の gem として作ればいいんじゃないか、と思っていた
End