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