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
Tech x Marketing meetup #6 iOS x AD
Search
msano
November 26, 2020
Programming
0
1.2k
Tech x Marketing meetup #6 iOS x AD
msano
November 26, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
ONE WEDGE_company_guide
1wedge_one
0
470
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.3k
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
200
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
エンターテイメント業界で利用されるAWS
demuyan
0
210
Snowflakeで眠ったデータを起こそう!
estie
0
120
使ってみよう Azure AI Document Intelligence
kosmosebi
2
300
Git Rebase
bkuhlmann
11
1.6k
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
310
入門 AWS Amplify Gen2 / Introduction to AWS Amplify Gen2
genkiogasawara
1
330
Netty Chicago Java User Group 2024-04-17
sullis
0
170
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Building Applications with DynamoDB
mza
88
5.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Ruby is Unlike a Banana
tanoku
96
10k
Bash Introduction
62gerente
604
210k
GitHub's CSS Performance
jonrohan
1025
450k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Designing Experiences People Love
moore
136
23k
A Tale of Four Properties
chriscoyier
151
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Transcript
iOS14 GANMA!の対応 セプテーニ・オリジナル 佐野真之 2020/11/24
自己紹介 セプテーニ・オリジナル / GANMA! iOSエンジニア 1400万ダウンロード突破! プレミアム会員(サブスク)、広告、GANMA!コイン、グッズ、書籍など
アジェンダ • WWDC2020とその影響 • GANMA!で対応したこと
WWDC Build trust through better privacyでの発表 プライバシーに関する4つの柱 • オンデバイス処理 •
データの最小化 • セキュリティ保護 • 透明性とコントロール https://developer.apple.com/videos/play/wwdc2020/10676/
オンデバイス処理 SiriやQuickType(予測変換)の例 プライバシー情報はデバイス内で学習させる PFL(Private Federated Learning) • Appleのサーバーで学習したモデルをもとにデバイスで個人に最適化 • プライバシー情報はデバイス内でのみ扱われサーバーに送信されない
• デバイスで学習した差分のみサーバに送られ元のモデルが改善 https://developer.apple.com/videos/play/wwdc2020/10676/
データの最小化 写真選択のアップデートの例 • Limited Photos Library アプリに対して全ての写真を許可するのではなくユーザーが選択 した写真にのみ権限が付与される • PHPickerの導入
アプリとは別プロセスで動作し、アクセス許可の必要はない選ん だ内容のみアプリに渡され、選択中もスクショされたりしない https://developer.apple.com/videos/play/wwdc2020/10641/ https://developer.apple.com/videos/play/wwdc2020/10652/
透明性とコントロール AppStoreConnectの登録情報追加(12/8まで) • データの種類 • データの使用用途など • 個人情報に紐づいているデータ • トラッキングに使用するデータ
https://developer.apple.com/jp/app-store/user-privacy-and-data-use/ https://developer.apple.com/jp/support/app-privacy-on-the-app-store/ ユーザーはインストールする前に何のデータがどう 使われるか知ることができる サードパーティのデータの取り扱いに関しても把握する必要がある
透明性とコントロール ユーザーのトラッキング Safariの初期のトラッキング防止機能が組み込みやサードパーティの Cookie をデフォルトでブロッ クするプライバシー保護の改善を取り組んできた。 今後、App Storeのポリシーでは、他社が所有するアプリや Webサイトをまたいでユーザーをトラッキ ングする前に、許可を必要とする
App Tracking Transparency or SkAdNetwork
仕様 IDFAの取得が許諾性になる (2021年に延期) 許諾ダイアログは1度しか表示できない 設定アプリからアプリごとに変更可能 アプリに埋め込みなので同じ時間でのA/Bテストはできない 実装 ATTrackingManager.requestTrackingAuthorization()でダイアログを表示 info.plstの Tracking
Usage Descriptionを設定 Authorization Status • authorized • notDetermined • restricted • denied ※ そもそも端末設定が拒否だとダイアログはでずにdenied扱いになる ※ deniedの場合はIDFAは0埋め App Tracking Transparency (ATT)
SKAdNetwork トラッキングの許可を得られない場合でもプライバシーを守りつつ 広告パフォーマンスの測定を実現 広告出稿側アプリ、広告掲載側アプリ、 ADNW の三者が対応していく必要がある 欠点 • 測定には遅延がある •
キャンペーン数が100まで • リエンゲージメントできない https://developer.apple.com/documentation/storekit/skadnetwork
ADNWに与えた影響 影響 • ターゲティングできない • 収益落ちる • CV計測できない 対応 •
SKAdNetworkには対応 • ATT許可への実装をアプリに勧める ※ 広告ロード時にATT許可リクエスト出すSDKもあるので注意
MMP(mobile measurement partner) に与えた影響 影響 • リターゲティング、リエンゲージメントなどマーケティングが困難 • IDFAの代わりに使っていたフィンガープリントでの予測を強いられる 対応
• SKAdNetworkに対応 • ATT許諾への実装をアプリに勧める • フィンガープリントなどの予測精度向上 ※ IDFVを他のデータと組み合わせて、外部サイトでユーザーを追跡することはできない
GANMA!の動き 影響 • マーケティングの幅が狭まる • 広告収益が下がる 対応 • SKAdNetworkでCV通知を送れるよう実装 •
SKAdNetworkに対応したSDKのアップデートに順次対応 • ATTフレームワークを使ってIDFAを取得許諾してもらえるように対応
オプトインをしてもらうために • どうやったらオプトインの必要性をユーザーに理解してもらえるのか • いつユーザーにリクエストしたらいいのか • どんなUIがユーザーにわかりやすいのか • 拒否した人に再度お願いする
レビューガイドライン https://developer.apple.com/jp/app-store/review/guidelines/ 5.1.1(iv)アクセス:Appでは、ユーザーのアクセス許可設定を尊重する必要があります。不要なデータアクセスに同意するようユーザーを誘導したり、だ ましたり、強制したりすることはできません。たとえば、ソーシャルネットワークに写真を投稿できるAppで、マイクへのアクセスに同意しなければ写真を アップロードできない仕様とすることは許可されません。可能であれば、アクセスに同意しないユーザー向けに別の方法を用意してください。たとえば、 位置情報の共有に同意しないユーザーには、住所を手動で入力できる機能を用意することができます。 事前説明はいいけど強制や誘導はダメ 3.2.2 (vi) Appでは、ユーザーが対価を支払ったコンテンツを、追加作業(ソーシャルメディアへの投稿、連絡先のアップロード、Appを特定の回数開くことな
ど)を実行しなくても入手できるようにする必要があります。Appは、ユーザーにAppの評価やレビュー、ビデオの視聴、他のAppのダウンロード、広告の タップ、トラッキングの有効化を求めるべきではありません。また、機能やコンテンツへのアクセス、Appの利用、(ギフトカードやコードを含むがこれに限ら ない)金銭やその他の報酬を受け取るために、同様のアクションを取ることもユーザーに求めるべきではありません オンにしたらコイン付与とかはダメ
プレパーミッション ダイアログの文言のみで意図を伝えるのは難しいので 許諾ダイアログの表示の前にプレパーミッションを用意する ポイント • 単純明快になぜ許諾をして欲しいのかを伝える • 誘導、強制、報酬を匂わせない • ボタンを押しやすい位置
• ボタンのデザイン • 最適解をA/Bテストで確かめていく Twitterの例
いつ許諾をお願いするのか ありそうなタイミング • 初回起動のチュートリアル時の後 • アプリの初期設定の後に • 広告表示の前後に • アプリをある程度使ってくれた後に
ポイント • 奥まりすぎるとトリガー数も少なくなるので注意 • 最適解はA/Bテストで確かめていく
オプトインを拒否した人に対して • 1回しか許諾ダイアログをだせない • 設定アプリからは変更できる ユーザーの許諾状況を把握して再アプローチする ポイント • いつだすのか、どのくらいの頻度でだすのか •
ユーザーにとって不快、強制感を与えないように • ダイアログ再度表示できないので設定アプリから変更可能なことを伝える • 最適解はA/Bテストで確かめていく
GANMA!では? 現状 初回起動時にPUSH通知許諾をお願いしていた。 (さらに前はPUSH通知設定ページだったが奥深すぎた ) 対応策 • 説明も兼ねてプレパーミッションを導入 • PUSH通知と同タイミングで出す
• 一連のフローをどこで出すべきかA/Bテストの実装 • 許諾状況を把握し再アプローチの実装
A/Bテストの実現 Firebase RemoteConfig • アプリ内パラメータを定義し、その値をクラウドで更新する • アプリのリリース必要なし Firebase A/B Testing
• RemoteConfigのパラメータをA/Bテストできる • Firebase Analyticsのイベントを目標値として設定 • テストグループの割合調整可能 • 自動でレポート作成してくれる https://www.youtube.com/watch?v=ph-gNsKX2oA
A/Bテストする内容 パラメータ • プレパーミッションをどこでだすのか • 再アプローチをどこでだすのか • 再アプローチをどの頻度で出すのか • プレパーミッションのデザイン
目標値 • ATT許諾率 • PUSH通知許諾率
まとめ • SDKの動向を観察してく • AppStoreConnectのデータ可視化のための準備を進めていく • ATT実装とA/Bテストの準備を進めていく