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
iOSDC-day3-がっつりやるリアルタイムキャンペーン分析
Search
ktsukago
September 02, 2018
Technology
2.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSDC-day3-がっつりやるリアルタイムキャンペーン分析
iOSDCの講演した資料です
ktsukago
September 02, 2018
More Decks by ktsukago
See All by ktsukago
AppSync というか GraphQL 設計 Tips 5選
ktsukago
1
1.1k
AppSyncを使いこなすためのDynamoDB設計パターン
ktsukago
10
3.4k
awsでGraphQLを簡単に使ってみる
ktsukago
2
490
マネージド GraphQL サービス AppSync 入門
ktsukago
4
670
Other Decks in Technology
See All in Technology
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
170
モダンフロントエンド 開発研修
recruitengineers
PRO
1
370
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
120
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
190
TypeScript入門 2026
recruitengineers
PRO
1
340
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
110
第3回しろおびセキュリティスポンサーセッション
log0417
0
150
新しい SLO が良い感じにハマっている話
z63d
4
2.1k
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
ラッコキーワード サービス紹介資料
rakko
1
4.2M
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Building Adaptive Systems
keathley
44
3.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Facilitating Awesome Meetings
lara
57
7.1k
Raft: Consensus for Rubyists
vanstee
141
7.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Transcript
Solution Architect Tsukagoshi Keisuke 2018/9/2
Who am I ? ba c @ B A Mobile
/ DevOps / Serverless / Microservices O W S = J S
Proposal .MJDR8 )' +0 52$9>FHOX= WCXE8 #-41>FHOX/85! 4.-41U:VH<P / 8(&
,-52# Amazon Pinpoint8#6,Event Stream8"* .U:VH<P82#GJDSW+0U:VH<P -8&3/:X?K@IQ,%78(&OXBK;W A8&3/NFLMT@K;F8"2#
Amazon Pinpoint
# • iOS12 2.+4 %.2081 • 58*8'7)8,371$ 26(/&- •
Amazon Pinpoint # • Amazon Pinpoint • AWS $!" Advanced $
iOS($!) • ($!) (%-,.% 40% • ($!) .(-,.% 2% •
'.#&*"($!) 8% • DL 1(+ 21% • 90 (+ 71%
iOS12 ; FE push * • L_cZ* • [SRcPQ`SU<* @TXSK@L_cZ
• @( • H^cTG6:9- ?*&GMbTac _;4E • 9>0;+ • NIbUCWVc$G JY?79;@* • Siri@* • Siri3/]cO3=@* ?79@2 "7/ *@&G)5 • , >* • .2D@'! >=@,%> G/1 C8A\cU;B #? https://www.apple.com/jp/ios/ios-12-preview/features/
iOS12 push Siri https://www.apple.com/jp/newsroom/2018/06/ios-12-introduces-new-features-to-reduce-interruptions-and- manage-screen-time/
https://www.apple.com/jp/newsroom/2018/06/ios-12-introduces-new-features-to-reduce-interruptions-and- manage-screen-time/ •
• Delivery Prominently • Delivery Quietly • Turn Off…
Provisional Authorization • • •
https://developer.apple.com/videos/play/wwdc2018/710
(+,0514-.% '% • Provisional Authorization #/-*2' "$% % • 35)5
/-*2 ' %#% 14-. '%(+,05 &!
PNIT#9QXINE • PNIT#9 • #B".A 8%09PNIT#4UXHX878B,/ 1')B8.A • NG :
CPVB -3:-' • OK : GXOK8GDWCNP-3<?(%B -3<?( • @!;89&ASNLXJB"A • UXHX*B.A:69*&A) • =23'A+5>@< 9&A+5) • =23'A+5B.A:6*$') • @!;87?7'MDRWF4PNIT#B"A
"+.)!3$02 /3#3"+.)!3$02 /3#3% ,2( &+2 '-*1
@_YTb+B[O]YOB • L_dK3.=B_YTb+ • chSh5L_dK 9I.K 80:B.)A _YTb9I>0"@VPUbhe_YTbFHDNh_gfh\ Ci;46@I •
_YTb+A K2JI • A'4K(>8@2%@`YWhUC&9I • $ B 5 <;`YWhUC8E92 • ,@Xa^e=`YWhUK*I • #0Rg[gZB!/0chShB @?4G,@ Xa^e=`YWhUK-9I7>=chShMgQhUB C15I
"%%$% 5 !' +"
*$ +" , %& #()$ %# !
Amazon Pinpoint
Amazon Pinpoint
Amazon Pinpoint 8>137#B: =B(B $*.9B
6B-4>"+;1 ,B) 0<5? (Mobile Push / SMS / E-mail) /"@%3;1,B) =B(B ,&;3 .B'2!A& 1 2 3
Pinpoint 2 2 2 2 •
N R b D • b B AWaA S EAC C B 2
Pinpoint ke T 01 D T 01
ic / n : http://docs.aws.amazon.com/ja_jp/pinpoint/latest/userguide/campaigns-message.html#campaigns-message- variables
O S a :{ u i e
A e rn m a 27 1 O s } 1 a 1
O S a :{ u i e
A e rn m a 27 1 O s } 1 a 1
• • Mobile Push • Email
• SMS • ( ) • • Standard • A/B test
O S a :{ u i e
A e rn m a 27 1 O s } 1 a 1
• • • A • O • A
• • • S • • 1 • 0
O S a :{ u i e
A e rn m a 27 1 O s } 1 a 1
• • Standard • Silent •
• {{Attribute.Name}} • OpenAction • Open App • Go to URL • Open deep link
O S a :{ u i e
A e rn m a 27 1 O s } 1 a 1
• • • •
Once/Hourly/Daily/ Weekly/Monthly • • Quiet Time
(1 ) 1. Delivery metrics 1. Open
rate 2. Delivery rate 3. Users messaged 2. Campaign session heat map 3. Campaign metrics 1. Sent 2. Delivered 3. Directly opened
(A/B ) • Delivery
rate • Open rate
SDK
SDK
2 2 1 1 :
8 2 0 1 8 " 2 2 1 9 9 2 1 E 9 2
-
! % % - 1 - 0
Pinpoint
AWS Lambda 48" • #ISMV8 • Lambda>12#ISMV> 0<-4+3,< • WebOJDT%Facebook
Messenger 65'6#+ • 6QJGYE8 • !7 Lambda *; DB >/7QJGYE>=< • DynamoDB7WCQXL8RKVKYH>=2),%Lambda *;0<-438?FFQ >Push0<65& • @SXPYXNJA • #7 Lambda >NJA0<-4+3,< • .47Lambda$3DB>/2! NUB> /%!/2:( 789!0<
• &* &* $(
• " # !')% $(
• 5 .: • 4 •
4 • • M • • 21 ,2 0 , 3
on SP t cp / g : At SP a
i A A t a / / t g 2 l l u3
Pinpoint
Amazon Pinpoint 1 -A4 F4 Wy rlnvh • g
ce / A ay rlnvPW f yu h f K / A o sM d t h f • /. vMn b - mM 1 -A4 hjy _ / A n kj v oMwh f : A D 3HD 3 3 A A 32 A 3 D A C F A4 D AD A : wm z v p y oMwh f K 1 -A4 F4 Wp y jy h S f iW f hN
)( import AWSPinpoint @UIApplicationMainclass AppDelegate:
UIResponder, UIApplicationDelegate { var pinpoint: AWSPinpoint? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { pinpoint = AWSPinpoint.init( configuration:AWSPinpointConfiguration. defaultPinpointConfigurationWithLaunchOptions(launchOptions)) return true }
)( func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken:
NSData) { pinpoint!.notificationManager. interceptDidRegisterForRemoteNotificationsWithDeviceToken(deviceToken) (snip) func application(application: UIApplication, didReceiveRemoteNotification u serInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { pinpoint!.notificationManager.interceptDidReceiveRemoteNotification( userInfo, fetchCompletionHandler: completionHandler) (snip)
)( let pinpointAnalyticsClient = pinpointClient.analyticsClient
let event = pinpointAnalyticsClient.createEvent(withEventType: "SearchButtonClick") event.addAttribute(" ", forKey: "Keyword") // event.addMetric(NSNumber(value: 123, forKey: "SomeMetric") pinpointAnalyticsClient.record(event) pinpointAnalyticsClient.submitEvents() )( let pinpointTargetingClient = pinpointClient.targetingClient pinpointTargetingClient.addAttribute(["Pinpoint"], forKey: "FavoriteServices") pinpointTargetingClient.updateEndpointProfile()
Pinpoint
Amazon S3, Amazon Kinesis Streams •
•
3G 3 3 3 3 3G ) D 3G 3
3G B 3G E .A B D AF 3G D 3B 3A 3G , 3 3 SI QM KRPH 3G , B B 3 F B 3G , B B A 3 B 3G , B B ( A B
O M P V l
/ 3 / O • S MM V l C A n • / NbMD AJ / 3 / K lNt C • e N V i W S No A V t N N tp Pinpoint
AI https://aws.amazon.com/jp/blogs/messaging-and-targeting/creating-an-ai-powered-marketing-solution-for- sentiment-analysis-and-engagement/
Amazon Pinpoint https://aws.amazon.com/jp/blogs/machine-learning/amazon-pinpoint-campaigns-driven-by-machine-learning- on-amazon-sagemaker/
Happy coding with Pinpoint! Amazon Pinpoint
Amazon Pinpoint