Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
広告実装、こうすると幸せだよ
Search
ryokosuge
October 01, 2019
Programming
6
1.5k
広告実装、こうすると幸せだよ
potatotips #65で登壇した資料です
ryokosuge
October 01, 2019
Tweet
Share
More Decks by ryokosuge
See All by ryokosuge
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
490
6年ほど育ったiOSプロジェクトを刷新した話 / Renewed iOS project that grew up for about 6 years
ryokosuge
2
770
アプリ開発とSDK開発の違い
ryokosuge
1
640
広告実装の苦しみ
ryokosuge
0
400
アプリを十数個作った僕が初めて書いたテストの話
ryokosuge
2
2.3k
広告SDKを駆使して 売り上げを5倍にした
ryokosuge
2
4.1k
早期発見プロジェクト
ryokosuge
0
58
Other Decks in Programming
See All in Programming
SUZURIの規約違反チェックにおけるクリエイタフィードバックの試⾏錯誤/Trial and Error in Creator Feedback for SUZURI's Terms of Service Violation Checks
ae14watanabe
1
160
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
110
2025 컴포즈 마법사
jisungbin
0
130
知られているようで知られていない JavaScriptの仕様 4選
syumai
0
620
Flutterチームから作る組織の越境文化
findy_eventslides
0
460
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
110
自動テストを活かすためのテスト分析・テスト設計の進め方/JaSST25 Shikoku
goyoki
3
700
OSS開発者の憂鬱
yusukebe
12
4.4k
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
160
スタートアップを支える技術戦略と組織づくり
pospome
6
5.9k
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
12
6.6k
ゼロダウンタイムでミドルウェアの バージョンアップを実現した手法と課題
wind111
0
200
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Designing for Performance
lara
610
69k
Building an army of robots
kneath
306
46k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
A better future with KSS
kneath
239
18k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
YesSQL, Process and Tooling at Scale
rocio
174
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Transcript
広告実装、こうすると幸せだよ potatotips #65 2019/10/01 ryokosuge
自己紹介 Twitter: @ryo_kosuge GitHub: ryokosuge • 株式会社fluct ◦ SSP開発本部 SDKチーム
▪ 主にFluctSDK iOSの 開発してます ◦ 入社して1年経ちそう • 前職はマンガアプリ作ってまし た
アジェンダ • はじめに • バナー実装 ◦ refresh rate ◦ Scroll(Table、Collection)View
• 動画リワード実装 ◦ retry処理 ◦ 動画リワードSSPってなに? • まとめ
はじめに
はじめに • 今回はアプリに特化したお話です ◦ Webも話せなくもないけど、基本タグを貼って終わりが一番ので • 広告用語が少し出てくるかと思いますが、簡単に説明するのでわからないこ とあったら懇親会で聞いてください ◦ ググれなんて言わない気持ち
バナー実装
バナー実装(refresh rate) • refresh rateはいじらないほうがいい ◦ refresh rate ▪ バナー広告のリフレッシュ
= 切り替え時間 ◦ 各社がrefresh rateに対して最適解を持っている ▪ 実装で変えられる広告SDKも多いですが、ほぼ全てが管理画面で変 えられるようになっています
バナー実装(refresh rate) • refresh rateを短くするとどうなるか ◦ 広告の切り替え間隔が短くなる ▪ つまり imp
が増える ◦ ユーザーの広告を認識する時間が短くなる ▪ click数が減る ◦ impが増えてclickが減ると枠の価値が下がる ▪ 表示回数多いのにclickが少ない枠と認識される • 結果効果の高い広告が配信されなくなり、さらに価値の薄い枠になる
バナー実装(Scroll View) • 適切なタイミングで広告表示Requestを飛ばすべき ◦ TableView / CollectionViewのcell返す時に毎回リクエストするのはダ メ ▪
impだけ爆発的に伸びる可能性がある • refresh rateと同じ ◦ そもそもCellでバナー表示をするのはスクロールがカクついたりするた めあまりオススメしない ▪ 広告SDKもそれように作られていないことが多い
バナー実装(Scroll View) • 一度生成したら使い回す手法を取り入れる ◦ 初回にRequest飛ばしたらあとはrefresh rateに身を任す ◦ 画面から表示されなくなるタイミングでrequestを止められる広告SDK もある
▪ 公開methodがなくても内部で実行されている場合もある
動画リワード
動画リワード(retry処理) • 無限にリトライするのはダメ絶対 ◦ 読み込みに失敗する理由はたくさんあるけど大きく分けて3つ ▪ Network Error • 通信環境がよろしくない
• 数秒あけてretry処理を挟むなどするのが良い ▪ 内部処理エラー • 案件によってエラーになっていることもあるのでretryして別案件を引ければ良い ▪ No Ad • 広告在庫がない ◦ 在庫なしなのですぐに在庫が復活するわけではない
動画リワード(retry処理) • No Adの場合どうしたら良いの? ◦ 違うADNWへパスバックするのが良い ◦ 動画リワードは売り上げを高くするためにfloor priceをあげていること が多い
▪ 営業担当者にお願いしてfloor price運用から在庫埋めるほうの運用 に差し替えてもらう(もしくは管理画面で) • 売り上げと在庫を両方担保したい気持ち、わかる
動画リワード(SSPって何?) • SSP = Supply-Side Platform ◦ 要は広告面の収益を最大化させるためためのplatform • SSPは各ADNWの中から最適な広告を表示させるために色々頑張る
◦ 最適な広告 = 枠収益最大化させる広告 • 動画リワードのSSPって何? ◦ 最適解のロジックはSSP側が持っていて、読み込みや再生は各ADNWの SDKで行われる ◦ どこのADNWの動画リワードを再生させると売り上げが最大化するのか
動画リワード(SSPって何?) • 動画リワードSSPをやっている会社さんはたくさんのADNWと連携している ◦ 運用も各社すごいやっている ◦ しっかり全requestに対して広告を返せるように細かい運用をしている ▪ あるADNWはfloor price引いて収益最大化を目指し、あるADNWは
在庫を返すことを目指すなどなど • 1つの枠に対してSSPなSDKを組み込むことでパスバック処理を書かなくても よくなる ◦ 各ADNWへの処理はSSPなSDKが対応しているので気にしなくて済む
まとめ
まとめ • バナーは適切なタイミングでrequestをするように心がける ◦ refresh rateとかをアプリ実装でいじらないほうがいい • 動画リワードのretry処理を見誤るとたくさんrequest飛ばすけど再生されな い枠認定されてしまう ◦
No Adがでた時はユーザーに在庫ないことをお知らせする ◦ 違う広告SDKへパスバックしてどうにか在庫を確保する • 動画リワードSSPなSDKを使うと複数のADNWをまとめて管理してくれる ◦ 実はAdMobにも似たような機能があります
ご静聴ありがとうございました