speee engineer mtg 2016/10/05

26
10/05 Engineer MTG NAKAJIMA Satoshi

Upload: -

Post on 18-Feb-2017

966 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: speee engineer mtg 2016/10/05

10/05 Engineer MTGNAKAJIMA Satoshi

Page 2: speee engineer mtg 2016/10/05

なにをしているか

プロモーションユニット(PU)をサポートするシステムの開発/運用

PUとは?

Page 3: speee engineer mtg 2016/10/05

PUとは

各事業のプロモーション全般を担当

広告運用、効果検証、分析など

Page 4: speee engineer mtg 2016/10/05

PUの業務

出稿した広告によってどれぐらい費用が発生し

て、それによって売上がどれぐらい上がったのか

効果の良かった広告は一体何が良くて、効果の悪かった広告は何が悪かったのかの検証・仮説

次の広告はどのような施策を打つのか

どうやって計測しているの?

Page 5: speee engineer mtg 2016/10/05

広告の効果計測の仕組み

広告に1つずつutmパラメータを振る

utm_source

utm_medium

utm_campaign

utm_content

utm_term

Page 6: speee engineer mtg 2016/10/05

広告の効果計測の仕組み

これらのパラメータを組み合わせてユニークにし、各オフラインデータ(本人確認済CVs, 訪問完了CVs, 申込, etc...)がどの広告からの流入していたのか、たどれる

PUはなにをしていたのか?

Page 7: speee engineer mtg 2016/10/05

広告の構成

Page 8: speee engineer mtg 2016/10/05

PUがやっていたこと

各広告媒体から配信結果をCSVなりでDLしてくる

PUで広告とオフラインデータを紐付けてどの広告で売上が上がったのかをまとめる

キャンペーンや広告グループ単位での費用対効果(ROAS: Return On Advertising Spend)などをKPIとして追っていた

Page 9: speee engineer mtg 2016/10/05

PUがやっていたこと

ROAS を出すには各階層毎の売上がわからないといけないのでハイスペックPCにリモートで繋いでExcel を使ってutmパラメータからどのキャンペーンや広告グループなのかを判別し、それぞれの売上を算出していた

そのデータを使ってレポートを作成

Page 10: speee engineer mtg 2016/10/05

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

PUがやっていたこと

全部紐付けられないので追う必要がありそうなも

のを一部抜き出して見ていた

Page 12: speee engineer mtg 2016/10/05

紐付けぐらい機械でやろう

Page 13: speee engineer mtg 2016/10/05

PUをサポートするシステムで何を行っているのか

各広告媒体から配信結果を取得し記録する

対応媒体

Google(search/display)

Yahoo(search/display)

Facebook

Hike

Popin

Gunosy

Page 14: speee engineer mtg 2016/10/05

PUをサポートするシステムで何を行っているのか

各事業部からオフラインデータを取得し、utmパラメータを使って広告とキーワードとサイトリンク毎に紐付ける

上位概念(アカウント、キャンペーンなど)毎に集計する

紐付けたデータを表示、レポートの出力

common-model の話

Page 15: speee engineer mtg 2016/10/05

common-model におけるモデル共通化の現在とこれからやろうと思っ

ていたこと

Page 16: speee engineer mtg 2016/10/05

common-model とは

Markeforce に関連するモデルの共通化を目的とした gem

Rails Engine 製

Page 17: speee engineer mtg 2016/10/05

common-model を使ったアプリケーション

im-prom-marke-force

im-prom-result-collector

2つのアプリケーションから1つのDBを参照

作り方は省略。やってみてどうだったか

Page 18: speee engineer mtg 2016/10/05

どうだった?

個人的にはやってよかった

普通のWebアプリケーションっぽくないところの恩恵は大きいかも

Page 19: speee engineer mtg 2016/10/05

困った所

install:migrations を各アプリケーションでやると migration ファイルがその時の年月日時分秒になり、DBは共通のものを使用しているので schema_migrations との違いが出て色々怒られる。

とりあえずの対応は migration ファイル作ったら中にコメントアウトで元の migration ファイルの年月日時分秒が入ってるので職人の手で rename

Page 20: speee engineer mtg 2016/10/05

困った所

モデルの追加がちょっと心理的ハードル高かった

ただ慣れてくればあまり問題ない

開発したいアプリの Gemfile の中で branch が指定できるので向け先変えて開発

テストも書いてる

Page 21: speee engineer mtg 2016/10/05

困った所

本番 migration が面倒

多分普通なら deploy 時に capistrano に任せる所だが Markeforce では role: db を外しておいて自動で migration しないで直接 rake db:migrateしていた

Page 22: speee engineer mtg 2016/10/05

良かった所

重複が省けた

Page 23: speee engineer mtg 2016/10/05

所感

最初の方は慣れずに手間取ったが、後半はそうでもなくやってよかったかな、という感じ(+あんまりモデル追加や変更もなかった)

プロダクト自体 社内向け + そんなにアクセスユーザいない

からこそ無理やりやった部分も多く、参考になるんかいな、という感じ

でも Markeforce はまだこの形で続けていこうかと思っている

Page 24: speee engineer mtg 2016/10/05

この後のやっておきたいな、と思っていた所

migrationの脱却

やっぱり migration 周りは面倒っちゃ面倒なのでmigration の脱却 をしておきたい、と思っていた

Page 25: speee engineer mtg 2016/10/05

この後のやっておきたいな、と思っていた所

common-model の rails 脱却

結局Railsに依存しているのは恐らく Active::Record, Active::Model , Active::Support ぐらいなので Rails Engine でなく普通の gem として作ればいいんじゃないか、と思っていた

Page 26: speee engineer mtg 2016/10/05

End