@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

渋谷アドテクの父がアテナに助けられた話し

この記事はCyberAgent Developers Advent Calendar 2018の15日目です。 2年ぶりに会社のAdvent Calendarに参戦!(2年前の記事はコチラ)。

ごあいさつ

アドテク本部 ProFit-X事業部の小栗(@neiraza)です。

サイバーエージェント 5 年目、エンジニア 16 年目、iOS/Androidデベロッパ9 年目、プロダクトマネージャー 2 年目、人生 42 年目になりました。あ、あと『渋谷アドテクの父』 1 年目です。

たぶんですが、職業はアドテクのプロダクトマネージャーです。

あとの自己紹介は、「Roppongi Product Manager Meetup #6」にCA ProFit-X プロダクトマネージャーの小栗が登壇しました!で。

2018 - 2019

やってる事業を抽象化するとこんな感じですが、

f:id:redogu:20181215020350p:plain

僕らは『ユーザー体験を損なわない』広告配信が、「媒体」様の持続的な成長につながると信じて、この事業をやってます。

勝負しに行くドメインとして、5Gの普及が開始する2019年に向けて仕込みを増やしていこうと、2018年は事業/プロダクトとして、個人としても新しいことにチャレンジしてきましたが、

その一歩目、ライブ配信サービスのマネタイズに特化したSSP「PFX LIVE」の提供開始)

もっと加速して、2019年に入っていきたいと考えています。

アクセラレータ?

もっともっと「DSP」さんの入札率をあげ、広告枠を買ってもらい、「媒体」様に収益を戻したいです。 たぶん近道はなくて、僕らがでつくりあげてきた配信サーバーの5年分をひっくり返し始めました。

いつから○○だと錯覚していた?

とにかく全てを疑ってみる。いま、何が起こっているのかを正確に把握する。 ただ、頭の中にある仕様と実装されたコードを読んでも、「藍染惣右介の鏡花水月」の影響で、小さな点くらいしか見つからない気がする。

データが語りかけてくる

僕に語りかけてくることを期待して、違和感を見つけるまで追うことにしました。

置いてある場所とモノ

  • Amazon RDS
    • 配信実積が置いてある。接続してSQLを投げるだけ。楽勝。
  • Amazon DynamoDB
    • 広告枠毎の設定値が置いてある。AWS CLIで投げればいいんかな。設定値のうち取引に使うデータはログにありそうだし、あとまわし。
  • AWS EMR
    • 配信や取引に関わるログが置いてある。どうやってデータみるんだろ。

配信や取引に関わるログデータの流れ

Amazon EC2の各インスタンス上のサーバーから Amazon Kinesis Data Streamを経てAWS EMR(Apache Spark)とAmazon S3にデータが流れてる。

アテナ

どうしたもんか相談したら、AWS AthenaSQLを投げればログデータから、欲しい情報が取得できるって!

「聖闘士星矢」の城戸沙織でおなじみアテナも超歓喜

ファイルストレージに置いてあるファイルをSQLで抽出できるって。Amazonさん、TUEEE! と思ったけど、そんなテーブル定義もなしに、SQLで何かできるわけなくね?と思って調べました。

のり

たぶん、Amazon S3に置いてあるログを、AWS Glueでデータベース&テーブル化して、AWS Athenaからクエリを投げられるようにしたんだろなと推測。きっと会ってる。 開発チームでグルーグルーって言ってたし。

f:id:redogu:20181215020154p:plain

まとめ

AWS Athena を利用して、現在の状況をデータで把握するとこから始めようと思います。 今後は、仮説とKPIを引きながら配信サーバの修正依頼を投げ、TableauからAWS Athenaへ接続して簡単なビジュアル表示をして、KPIを追っていこうかと考えています。

AWS Athenaでかかる費用を見極めつつ、2018年、そろそろ本気だすか。知らんけど。

【iOS10】ATSのおさらい 2016年末

この記事は「iOS その2 Advent Calendar 2016」10日目の記事です。
テーマは、 2016年中iOSにおけるATSをおさらいしよう! です。

自己紹介

私は、株式会社サイバーエージェント CA ProFit-X という広告プロダクトで、メディア様の収益を最大化することを目標にエンジニアをやってます。
CA ProFit-X は、モバイル向けネイティブ広告(主にインフィード広告)専業のSSP事業者なのです!

お題

バイルアプリ/モバイウェブサービス上で広告運用時に気にしておきたい ATS について、今回は最新OSである iOS10 にターゲットを絞り、お話ししたいと思います。

ATSとは?

ATSは、App Transport Securityの略で、2015年にiOS9がリリースされた際に導入されたセキュリティ仕様です。
詳しい仕様は コチラ(Apple Developer Library)です。

簡単に言うと、アプリとWEBサービス間の接続のプライバシーと、データの整合性を向上を目的に、セキュリティ仕様に準拠していない接続は認めないってことです。
例えば下記とか。

サーバー証明書に関する要件

Webサーバーに関する要件

  • HTTPSについて
  • SSL/TLS のバージョンについて
  • Forward Secrecy に対応している暗号化スイートについて

2017年からは対応が必須になる

原則対応が必須になります。新規アプリ/既存アプリ問わずApp Storeに提出するには ATS有効化が必須条件 です。

対象

まぁ、ほとんど全部ですね。

  • iOS9.0以上
  • WKWebView
  • UIWebView
  • NSURLSession
  • NSURLConnection

ATSを無効化するには?

基本的に、セキュリティ仕様に準拠しとけば良いのですが、いちおう。
細かいキーの仕様についてはコチラです。

NSAllowsArbitraryLoads

  • デフォ値は No
  • Yes に設定した場合
  • NSExceptionDomains に設定したドメインのに対するネットワーク接続がATS無効化されて可能になる
  • App Storeへアプリを提出する際にAppleに対する説明が必要になる
  • (後述する)NSAllowsArbitraryLoadsInWebContentが Yes の場合、このキーは無効になる

NSAllowsArbitraryLoadsInWebContent

  • デフォ値は No
  • Yes に設定した場合
    • 下記のネットワーク接続がATS無効化されて可能になる
      • WKWebView
      • UIWebView
    • つまり、NSURLSession/NSURLConnection接続はATS有効化のまま、WebViewのみATS無効化が可能
  • iOS10以上が対象、iOS9以下については本キーを Yes にした上で、NSAllowsArbitraryLoads も設定する


(´ε`;)ウーン…

まとめ

iOS10なら、WebViewでATSを無視できるっちゃできるのね。
でも、これはAppleの独断とかではなく、セキュリティ的に安全な配信をしていこうぜって大きな流れの1つなわけで。
GoogleHTTPSサイコー!って言ってるわけだし。

ATS対応ができねーとかケチくさいこと言わずに、堂々とやってやりましょうよ!

『アドテクノロジーの教科書』を読んだよ

この数週間、お風呂で読んでいた『アドテクノロジーの教科書』を簡単に紹介します。

アドテクノロジーの教科書 デジタルマーケティング実践指南

アドテクノロジーの教科書 デジタルマーケティング実践指南

僕はSSP事業をやっているチームで広告配信SDKをつくったり、チームのアプリ戦略を一緒に考えたり推進したりしてます。
一応、アドテク絡みのエンジニアに分類されています。
広告配信SDK自体はアドテクの主役ではなく、モバイルアプリエンジニアの派生くらいかなと思っています。

SSP事業をつくる」、「プロダクトをつくる」という積み重ねの中で、アドテクの事をもっと知りたくなり、この本を読みました。

本の概要

アドテクの歴史、紹介から始まり、「オーディエンスターゲティング」、「リワード広告」、「DSPSSP」、「インフィード広告、イン◯◯広告」、「PMP」などの解説、「効果測定」の解説と事例紹介、プレイヤーやマーケットの話しとインタビューのおまけつき。
全体的に導入レベルですが、初学者には分かりやすい表現で解説されていると思います。

気にいった部分を紹介

Chapter3 Measurement 03 リサーチと購買データを活用した効果測定の事例

とある会社のキャンペーン効果を分析するという話しなのですが、おそらく「DSP」や「DMP」に関わるデータ分析を専門にしている人にとっては、当然な話しなのでしょうが、可視化をこんな風にしているんだなと思い、勉強になりました。

メディア(広告枠を提供する側)のお客様と「ブランディング広告」を「ネイティブ広告」として、どの様に表現したらメディアの価値を下げずに収益化を図れるか、アイデア出しをしたりする機会があるので、とても参考になりました。
(どの様に表現したらというアイデアに対し、データから推測した結果とかを提示できると、もっといいかも)

というわけで、息抜きには調度良い安価な値段で薄くて軽いので、連休中の移動時に読むには最適な本かなと思います。

次はこれらの本を読もうかな。

リアル行動ターゲティング

リアル行動ターゲティング

運用型広告 プロの思考回路 AdWords/Yahoo!/Facebook広告の効果を最大化するベストプラクティス (WEB PROFESSIONAL)

運用型広告 プロの思考回路 AdWords/Yahoo!/Facebook広告の効果を最大化するベストプラクティス (WEB PROFESSIONAL)

全部薄くて風呂とか移動時に読みやすいし。

VRを追いかけるゼミやってます

この記事はCyberAgent エンジニア Advent Calendar 2015の11日目の記事です。

こんちわ!アドテクスタジオの小栗です。 国内初!スマートデバイス向けインフィード特化型SSPCA ProFit-X のアプリ面を担当し、プロダクトの成功の為にSDK開発から営業まで何でもやります。

f:id:redogu:20151214093233j:plain

今日はアドテクスタジオ内の活動である スキルアップゼミ について、僕のゼミ活動の紹介を通して、アドテクスタジオの雰囲気を少しでもお伝えできたらと思います。

f:id:redogu:20151214091927j:plain

スキルアップゼミとは?

2014年6月に発足したアドテクスタジオの横串活動で、大学のゼミと同様に少数メンバにて様々な研究をしています。 ゼミ活動は研究の成果を事業に活かすことを目的としています。 その中で僕は スマートデバイス向けアプリのマネタイズ研究と実践開発 ゼミのゼミ長をしています。

スマートデバイス向けアプリのマネタイズ研究と実践開発』とは?

僕がサイバーエージェントに中途入社してから半年たった2015年4月、ゼミ長への推薦を頂き、面白そうだったので始めてみました。 このゼミでは、次世代プラットフォームに対する研究と実践開発を通して新サービスの企画開発を行うことを目標にしています。
また、ゼミ長である僕は裏テーマとして アドテクスタジオのiOS/Androidへの知識向上 / 自立したエンジニアの育成 も虎視眈々と狙ってたりします。

活動報告(2015/04〜)

活動トピック

出展「ABC 2015 Summer - Android Bazaar and Conference」

2015年7月20日にサイバーエージェントとしては初のABCに出展を行いました。 VR・360度コンテンツ・センサー を利用したアプリを開発し、展示しました。

f:id:redogu:20150807232226p:plain

出展作品の中でも、バッカム様ご協力のもと展示したSmashVRが大盛況でした! この出店にあたり、ポスター制作・ノベルティ準備・当日のブース設営まで、自分たち自身で一から準備していったので、成し遂げたという大きな自信を手にいれることができました。

f:id:redogu:20150720101512j:plain

主催「Eddystone ハンズオンセミナー」

国内初のセミナー開催ということで、微力ながら私達も協力させて頂きました。 Googleが発表したIoT技術のひとつ『Physical Web(フィジカルウェブ)』を実現するための手段であり、 2015年7月14日にGoogleが発表した、Bluetooth Low Energy(BLE)を用いた新たなビーコンの規格です。

f:id:redogu:20151214092133j:plain

当日は50名超のAndroidユーザが弊社のセミナー会場に訪れて、Eddystoneが配られ、講師の方の指示のもとハンズオンをやりました。 技術的に面白く、ビジネスアイデアも色々と浮かぶものの、実現するために必要なインフラ条件がとても難しそうでした。

f:id:redogu:20151214092649j:plain

アポ「テレビ朝日メディアプレックス様」

f:id:redogu:20151214092853j:plain

サイバーエージェントに入社する前からVRネタを企画して何かしたいと思っていたので、 ゼミを開始してから可能性を探ってきたのですが、ユーザの没入感を演出するコンテンツづくりの難しさを痛感しています。 悩んだ時は、自分たちよりも前へ進んでいる方々にお話しを聞くのが一番なので、先日もアポに行ってきました。 テレビ朝日メディアプレックス様は、各種イベント向けにVRコンテンツを自社開発&提供してきた実績がある企業です。

f:id:redogu:20151214092909j:plain

お伺いさせて頂いた際も、VRを始めたきっかけから最近のご活躍の内容を教えて頂いたり、 イベントで実際に展示してきたVRコンテンツを試させて頂くなど、大変お世話になりました。

f:id:redogu:20151214093126j:plain

今後の活動について

僕のゼミは今後もVR/360度市場を追い、コンテンツづくり・マネタイズ・広告の可能性を模索していきたいと思っています。 特に、VRに関わる方々をお呼びしてイベントを開催し、そのイベントを通して輪を広げ、世の中への布教活動に一役貢献していきたいと思います。

締め

中途入社してから1年、いまボクが思うことは・・・ この規模の企業で、今回のゼミ様に手を挙げればやりたいことがいくらでもやれる環境が揃っているのは、すごく素晴らしいことだと思います。 この記事をみて興味を持たれた方は、ぜひCAの門を叩いて入社しちゃってください。

おまけ

僕のゼミでは、VRイベントを一緒に開催したい方々、VRの情報を交換会をしたい方々とのネットワークを広げたく。 ご興味がある方は、アドテクスタジオの小栗までご連絡ください!

f:id:redogu:20151214092514j:plain

Android Advent Calendar 2014

今週のお題「2014年のお別れ」〈2014年をふりかえる 3〉

今年のAdvent Calendar当番日も今日で最後になりました。

今回のネタ以外だと、僕が今よくわかってなくて、知りたい事と言えば、
AndroidでActivityを修正せずに、AOPみたいな感じでログを吐く処理を突っ込む仕組みをライブラリとして配布する。
そんなネタをやりたかったけど、良い方法が思いつきませんでした。

下記以外で、何か良い案があったら教えてください。

  • Application#registerActivityLifecycleCallbacks
  • コンパイル時に動的に突っ込む

というわけで、Advento Calendarのお題は↓にしました

広告 - ネイティブアドのすゝめ(Android) - Qiita

iOS Advent Calendar 2014

6日目を担当しました。

ネイティブアドのすゝめ(iOS) - Qiita


2年ぶりのAdvent Calendarですが、楽しめました。
次はSwiftAndroidの当番日までに準備しなきゃ!

僕が前の会社に入社したきっかけが、水野さんに会いに行こうと思ったからでした。
その水野さんが書いた本です!

Web API: The Good Parts

Web API: The Good Parts

↑の本を Web API のAdvent Calendarでウサ耳様がオススメしてました!