GDD 2018@Shanghai 兩日遊記
來自專欄 lavas5 人贊了文章
內容分級
限於無法分身,我只參加了部分的演講。作為一個前端開發者,我把內容分為 3 個等級,分別是:
1. 核心:和 WEB 相關的核心內容,以後的工作會使用到的內容。
2. 擴展:和 WEB 有一些關係,或者至少和前端,大前端有一些關係的內容。就算平時工作不直接用到,也值得了解的內容。
3. 亂入:和 WEB 甚至技術都沒啥關係,純粹當了解一下,不看也無所謂的內容。(我是空檔期閑著沒事或者純粹興趣愛好亂入的)
長求總
因為兩天參加了大概十幾個講座,不管我聽得懂還是聽不懂,我都盡量記錄,因此每個講座的內容都不少。我先在這裡做一個高度的概括,下面的「詳細內容」再逐個記錄每個講座的實際內容。
WEB 相關
- 對比了 WEB 和 APP,強推 PWA。並且今年加入了桌面 PWA (支持 ChromeOS,之後會陸續支持 Windows, Linux, MacOS)
- 瀏覽器事件循環 整理後的內容
- 介紹了眾多瀏覽器的最新 API,例如人臉識別,藍牙,本地分享,多媒體等等
- 介紹了 Google 推出的 2 個好用的工具:lighthouse(提供網站評分 & 改進意見)和 puppeteer(輕量小型瀏覽器內核)。
- 介紹了 AMP 的大體結構和效果
Flutter
雖然和 WEB 無關,但安卓和 IOS 這些「端」也被稱為大前端,算是小有關係吧。
- 介紹了 Flutter:一套代碼,兩處運行。由 Flutter 來屏蔽安卓和 IOS 的區別。
- Flutter 的特點:美麗,快速(渲染和更新速度),高效(stateful hotreload),開放(open source)。
- 以閑魚作為線上示例進行安利
- Flutter 的內部繪製流程 (build -> render -> paint)
- Flutter 的詳細繪製結構:(widget tree -> element tree -> render tree -> layer)
- 內部使用 dart 作為編程語言。和 RN 最大的區別在於:RN 最終調用本地的介面進行繪製,而 Flutter 是自行繪製每個像素點,因此自由度更高。另外 dart:html 支持 WEB,因此和 React 相比在功能上並沒有缺失。
其他內容
其他內容和 WEB,或者說和技術關係不大,權當了解了解。
- 機器學習的 7 個步驟
- Google 統一廣告系統 UAC
- 電子商務網站的設計和性能要求
- Android Things:可以裝在設備上,讓它變成一個智能設備,從而實現 IoT。
詳細內容
主演講(擴展)
主要是介紹 GOOGLE 的各個技術和產品,為接下來 2 天這些方向的詳細講座做一個整體的了解。
tenserflow
機器學習和 AI 的開發平台,很多公司有使用,例如美團。 開設了機器學習入門課程,免費視頻。 (演講者是一個金髮外國萌妹子,全程中文。雖然發音有點奇怪,但兒化音非常有特點,例如「畫面上的【藍點兒】就是 tensorflow 的使用區域。可以看到它已經覆蓋了下至【南極圈兒】……)
android
推出新版本 android 9 pie,比較新的功能包括:
- 自適應電池 使用機器學習,根據用戶使用習慣把 APP 分為四類,如常用的,不常用的,後台運行的等等。給他們分配不同的運行資源,最終使得 CPU 喚醒時間下降30%,增加電池使用時間
- android jetpack
- kotlin 一種全新的安卓開發語言,有更好的錯誤處理,增加代碼的穩定性。目前已有40%的開發者在使用 kotlin 開發安卓,還有配套的 extensions (KTX)
- android bundle 為了解決 APK 越來越大的問題。一般的 APK 會把所有的內容打包,例如支持的各種語言,支持的各類手機底層環境等等。而通過這個技術,可以把 APK 中分解為不同的小單位。在 google play 下載時根據使用者手機的特性,只下載需要的包,大大縮小需要下載的 APK 的體積。
用前端的思路來理解,就是 bable 的 env preset 了。
wearOS
主要聚焦於手錶,內置了非常多的便捷功能,例如運動數據,天氣預報,微信,郵箱,支付寶的支付碼等等。有點類似於 apple watch。也給 APP 的開發人員提供了新的開發設備和入口。
firebase
是一個開發 APP 的應用平台,為了減少開發 APP 之前需要搭建環境的麻煩。它把本地伺服器移動到雲,即開發時直接請求雲端的數據。另外提供了 WEB 界面去修改或者監控雲上的數據。最核心的點在於這個數據的更新非常實時,所以才能成功取代本地伺服器。
也可以使用 API 訪問到雲端的數據,和訪問本地文件的複雜度和時間是類似的(據說)。
WEB 的形式 現在 & 未來 (核心)
算是對接下來 2 天 WEB 相關的課題的一個預告。闡述當前的問題,提出解決方案(主要是 PWA)
WEB 是可以通過鏈接訪問且可以在大多數設備上使用的內容集,網頁的內容可以自行更新,不需要安裝補丁或者更新軟體版本,因此是更優秀的形式。
體驗和用戶方面
對比全球前 1000 的手機 APP 和前 1000 的手機網頁,發現:
- 每個用戶的月均花費時間:APP 大幅領先網頁
- 每個月不同的用戶數量(UV):網頁 1140 萬,APP 400 萬。網頁大幅領先。
- 78% 的用戶時間放在了前五名的 APP
結論:
1. 沉浸式的 APP 體驗優於傳統網頁,因此更能吸引用戶留存
2. APP 吸引用戶的能力不如普通網頁,因為 APP 有需要安裝的先天問題。
3. 非 TOP APP 能分到的蛋糕其實不大
因此我們如果能把網頁的體驗做到和 APP 類似的話,PWA 應用就應運而生了。 PWA:快速,集成,可靠,有吸引力。
Google 的兩個比較有代表性的例子:
- Google Maps Go 谷歌最大的 PWA,已經被預裝在 Android Go 設備上,但本質只是一個常規的網站,非 APP。 https://google.com/maps/
- Offline GMail: 使用 Service Worker 來實現保存和閱讀離線郵件。
總體來看:
1. PWA 應用的各項指標(廣告點擊率,用戶花費時間等)均不輸給 APP
2. PWA 在更新時需要的流量大小也遠遠小於 APP。(因為僅僅需要更新網頁,而 APP 需要打補丁或者重新安裝)
3. 平均一天有 10 個 PWA APP 被安裝(瀏覽 OR 添加到桌面)。
未來的方向上,谷歌正在考慮桌面上的 PWA 應用(即不運行在瀏覽器內,而是直接運行在設備本身,和瀏覽器平級)。三星,微軟的EDGE 分別引入了桌面 PWA APP。CHROME OS 也引入了 PWA APP。打開網頁後會彈出提示是否添加 APP,添加後即可以快捷訪問,和APP基本是一致的。WINDOWS 7,8,10 CHROME 70 以後會包含這些功能。MAC & LINUX 在明年早些時間。
運行速度方面
高端和低端手機在運行相同的JS上時間相差非常非常大。 平均每個頁面運用 360K 的 JS 文件,和8年前相比基本是6倍大小。
解決方案: 1. 推薦兩個工具:puppeteer & lighthouse (具體在後面有轉場演講)
- 從 AMP 學到的 web packaging。把網頁內容存到離用戶更近的位置。把網頁內容類似鏡像的概念,從遠處的原伺服器複製到鏡像伺服器,由遊覽器識別出來。(國內可能沒戲?)
- web assembly 用來解決 JS 的性能問題,創造一個執行環境,提升處理性能,額外使用 30% - 40% 的CPU能力。例如網頁版的繪圖軟體,CAD。
網頁包含了越來越多的新功能,會解決網頁的性能就是不如 APP 這個問題。
瀏覽器的 event loop (核心)
已經整理到知乎
打造跨平台的 WEB 站點 (核心)
先強推 PWA,再強推桌面 PWA
PWA:能夠在瀏覽器和在桌面同時使用的站點。
一些優秀體驗的移動站的建議
- 在需要時才請求許可權,而不是在用戶打開應用程序的時候就請求。(這點和之前不一樣了,Chrome 已經支持了)
- 自動登錄,流暢的使用流程
- request payment API (W3C標準)能夠集成 GOOGLE PAY。(國內懸)
- 有 42% 的站點沒有為輸入框 (input) 指定類型 (type),因此體驗欠佳
- 谷歌列出了一些最佳實踐,來指導用戶如何去把自己的移動站點做得更好。
Service Worker 已經可以安裝在幾乎全部的瀏覽器上。 騰訊新聞接入了 Service Worker 之後,性能提升,瀏覽次數,轉化率均有提升
演示了 Starbucks PWA,通過 PWA 下達的訂單增長超過 12%,每日和每月的活躍用戶幾乎翻倍。桌面用戶無需使用移動設備即可下單。
53% 的用戶會放棄載入時間超過3秒的網站。
PWA 應用的特點
四個特點:速度快,可安裝,可依賴,體驗好。
- 速度快
- 使用 placeholder content 控制項(類似於 skeleton,也可以是低精度的站點陣圖片)
- 預緩存內容
- 可安裝
- 外觀和行為與其他本地 APP 類似。(添加到桌面並從桌面打開,沒有瀏覽器樣式)
- Web APK:PWA 可以像普通 APP 一樣出現在引用程序中。(例如使用某程序打開的列表,分享的列表等均可以出現。目前安卓已經實現)
- CHROME 顯示添加到主屏的條件,還包括 「必須包含一個監聽 fetch 事件的 Service Worker」
- 避免一進入 APP 就彈出添加到首屏的提示。
- 監聽
beforeinstallprompt
保存event
- 之後調用
event.prompt()
彈出添加到主屏的提示 - 安裝成功後有
appinstalled
事件發射出來 - 可信賴
- 使用 workbox (一個快速生成 Service Worker 的工具,也由 Google 開發)
- 預緩存內容 (precache)
- 運行時緩存 (runningCache)
- 使用 indexDB 緩存內容
- 體驗好
- 恰當的後退導航按鈕(不要一下子退到最外面,要一步一步)
- 使用 toast 最小化影響主體內容。
GOOGLE 的 PWA
- GOOGLE 搜索:
- 外部的 JS 請求減少 50%
- 由載入 JS 引起的用戶延遲減少 6%
- Bulletin
- 體積比 APP 更小
- 支持包括照片和視頻在內的多媒體捕獲(拍照,拍視頻)
- GOOGLE 地圖
- 從根本上改善低端設備或有限網路環境中的體驗
- 核心用戶應用場景:
- 找到自己的位置
- 尋找一個位置
- 尋找附近的位置
- 尋找路線&導航
- 頁面載入成功率提升 20%
- 緩存策略:(多種緩存配合)
- 瀏覽器緩存 maps tiles
- indexDB 記錄用戶搜索和 map files 版本等。
桌面 PWA
根據統計:白天10點到7點,desktop 的使用時間超過 phone 或者 tablet。
在桌面應用上,常規的做法是自定義構建一個簡易的瀏覽器內核,並使用它容納網頁。但實際上用戶的 PC 上可能已經有不止一個瀏覽器。因此我們實際上應該聚焦在應用的內容本身,而不需要那個瀏覽器外殼。
因此我們需要跨瀏覽器,跨操作系統的 PWA APP。(WINDOWS 和 MacOS 都可以運行的)
實現方面,同樣使用 manifest.json,重要的是 scope 屬性(和 Service Worker 的 scope 類似)
在桌面應用也需要使用響應式設計,根據寬度和大小的不同,顯示不同的內容。(例如天氣預報,可以分7天,5天,3天,小圖標等等)
更多詳情可以參閱
- Chromium Blog
- 網路應用安裝橫幅
- Progressive Web Apps on the Desktop
- Scope in Manifest.json
Google AMP (核心)
對 AMP 進行了大概的介紹
原因
需要使用 AMP 的原因主要是因為傳統網頁載入太慢,loading 時間太長。以下是一些統計數據:
- 53% 的用戶放棄載入用時超過3秒的網頁
- 3g 下的平均載入頁面用時 19 秒
- 60% 的全球移動網路用的是 2g
組成部分
AMP 是由幾個部分組成的:
- html (普通 HTML + AMP 組件)
- js (內聯的腳本或者綁定屬性)
- cache (Google AMP cache 自動抓取)
做法
AMP 的做法包括
- 阻止載入耗時的內容
- 待載入完後才顯示內容
- 嚴禁投放令用戶分神的廣告
- 直到用戶需要才載入相關內容 (lazy loading)
amp-bind
根據用戶的交互,使用數據綁定 (data binding) 和表達式 (expressions) 來動態變化頁面的顯示內容。
通過 3 個步驟實現這個過程:
- state (設定初始狀態,例子如下)
<amp-state id="team"> <script type="application/json"> {"star": "Yao Ming"} </script></amp-state>
- bind (在頁面某個位置將顯示和狀態關聯起來,如下)
<p [text]="team.star + is tall!">
- mutation (通過
AMP.setState
來更新狀態,如下)
<button on="tap:AMP.setState({team: {star: 姚明}})">
AliExpress 遷移到 AMP 的優缺點分析
AliExpress (海外的阿里) 使用了 AMP,因此 Google 以他們為範例,闡述了 AMP 的得失
- 劣勢
- 只能使用 AMP 組件
- 不能使用 cookies 和 localStorage
- 無法直接支持 touch 事件
- 優勢
- 重點關注在業務邏輯上,花更少的精力在性能方面,開發效率更高
- 能夠給開源項目輸出代碼 (例如
<amp-date-countdown>
組件) - 依靠 AMP 獲得了更好的性能
- SEO 效果更好
更多信息
最後是 3 個參考網站
- ampproject.org
- ampbyexample.com
- ampstart.com
Google 的兩款工具推薦:lighthouse & puppeteer (核心)
lighthouse & puppeteer,值得使用和學習
lighthouse
網站評分工具,目前是 3.0 版本。它能夠衡量一個移動戰的各類指標,並指出網站提升的方向。它的審查內容包括:
- PWA 功能
- 最佳範例
- 可訪問性
- SEO
- 性能
使用方法:(任選其一)
- Chrome Dev Tools (F12)
- Chrome Extensions
- npm (使用 nodejs 線下跑分)
- web (直接去 lighthouse 官網輸入網址在線測試)
- github + travis 可以作為 PR 的 task (類似於自動化測試那樣,每次發起 PR 都運行一下,給出分數變化趨勢)。具體使用方法可以參考 lighthouse-ci,可以設置及格線,站點 URL 等等。
衡量頁面的一些指標
- FP - 第一次頁面顯示
- FCP - 第一次有內容的頁面顯示
- FMP - 第一次有意義的頁面顯示
- TTI - 可以開始用戶交互
這部分還可以參閱一篇微博:以用戶為中心的性能指標
puppeteer
首先講一個概念,叫做 headless chrome。簡單來說就是沒有頭尾的瀏覽器,也就是瀏覽器內核。它的特點是:
- 內核與最新的 Chrome 保持一致
- 可以使用最新的功能和介面,例如 streams, cssgrid, service worker 等等
- 能夠通過代碼操作 Dev Tools 的功能和數據,例如模擬網路延時,模擬設備等等
puppeteer 基於這樣一個內核,給開發者提供一套介面,來做一些事情,簡單結構如下:
利用這個可以做哪些事情呢?下面舉幾個例子:
- 截屏
puppeteer.launch().then(async browser => { const page = await browser.newPage() await page.goto(https://example.com) await page.screenshot({path: example.png}) await browser.close()})
- 獲取頁面數據
const metrics = await page.metrics()// metrics.ScriptDuration// metrics.LayoutDuration// metrics.RecalcStyleDuration// metrics.JSHeapUsedSize// metrics.NodeCount
- 攔截網路請求
await page.setRequestInterception(true)page.on(request, req => { if (req.resourceType === image) { req.abort() } req.continue()})await page.goto(https://www.youtube.com/)
- 生成 PDF
const page = await browser.newPage()await page.setContent(` <!doctype html> <h1>Some Report in PDF</h1> ...`)await page.setViewPort({ width: 1280, height: 1024, deviceScaleFactor: 2})await page.pdf({ path: report.pdf, margin: {top: 16px, ...}})
- 驗證每個請求是否可以離線訪問
const resp = request.response().fromServiceWorker()console.log(url, resp ? √ : ×)
更多的例子可以參考 puppeteer-examples 和 pptraas.com
最後,還額外推薦了兩個開發工具: ndb - an improved debugging experience for Node.js, enabled by Chrome DevTools page speed insights
深入探討 WEB 上的新功能 (核心)
海量最新 API 正在襲來!
先介紹了 PWA 和 Service Worker。 OFO 把 PWA 應用於共享單車,在美國上線了。
隨後是一大堆最新的 API。這些 API 有些剛剛加入標準,有些尚未加入標準。但均已經在 Google Chrome 上實現了。
因為 API 和代碼太多,我也沒能全部記住 & 查閱,因此這裡僅列出大致內容和關鍵詞。
操作系統整合
- 其實就是添加到桌面,manifest.json,但是增加了安裝成功的事件。
window.addEventListener(appinstalled, e => app.logEvent(a2hs, installed))
<input type="file" accept="image/*">
像 APP 那樣選擇圖片。其中accept = image
是新增的選項navigator.share
分享功能
let result = await navigator.share({ title: Paul Rocks, text: He really does!, url: https://paul.kinlan.me/})
- Share Receiver。 能夠像本地 APP 一樣,在其他網頁分享時,顯示在分享程序的列表中。通過在 manifest.json 中增加
share_target
對象來實現這個功能。
// manifest.json"share_target": { "action": "compose/tweet", "params": { title, text, url }}
- download manager 後台下載,斷點續傳,完成後的通知等等。
navigator.mediaSession
控制媒體(視頻,音頻等)能夠控制播放的標題,圖片,進度,控制前進後退等等。document.pictureInPictureElement
允許瀏覽器退到後台時,畫面依然在設備的桌面上(類似懸浮窗口)。
高級多媒體
統計數據:有 70% 的網路流量來自視頻
navigator.mediaDevices.enumerateDevices
:獲取系統上可用的多媒體輸入和輸出設備的信息,如麥克風,攝像頭等new ImageCapture
:截圖navigator.mediaDevices.getUserMedia
:向用戶請求許可權獲取音頻或者視頻流等。
let stream = await navigator.mediaDevices.getUserMedia({video: true})let video = document.querySelector(video);video.srcObject = stream;video.onloadedmetadata = function(e) { video.play();};
canvas.captureStream(25)
:實時捕獲 canvas 畫布上的內容,輸出為流,參數為幀率。
識別相關
- 識別二維碼
let detector = new BarcodeDetector()let codes = await detctor.detect(image)
new FaceDetector()
識別人臉new TextDetector()
識別文字
硬體
- Web BlueTooth
const device = await navigator.bluetooth.requestDevice(...)
- Web USB
let device = await navigator.usb.requestDevice(...)
- Ambient Light Sensor (環境光感測器)
let als = new AmbientLightSensor({frequency: 10})
- Presentation API
const pr = new PresentationRequest(https://airhorner.com/)
http://developers.google.cn/web 有列出更多的信息
WEB 電子商務 (擴展)
列出一些優秀的電子商務網站,分析他們的共性和優化點
在全球在線購物中有 66% 的用戶通過 WEB 購物 (34% 通過 APP)。但是轉化率上 WEB 要比 APP 低得多。
現存 WEB 的劣勢:手動,繁瑣,速度慢,多次點擊
完善電子商務網站的幾種方式
性能目標
性能目標必須要和商業價值掛鉤,否則毫無意義。
性能目標可以包括: 網頁載入時間 首次有效呈現時間 可交互時間 可連續交互時間 * 頁面重量
有幾個簡單的原則:
1. 不要為了性能優化而刪減核心功能(正常的公司我覺得不太可能會這樣)
2. 要首先顯示重要的內容。例如側邊欄看可以放後面,確保主體內容先渲染。
產品展示
熱烈推薦 Google AMP
DHgate 一個來自中國的B2B電商網站,採用了 AMP。
圖片
圖片需要優化 1. 格式:png -> jpg。 2. 根據屏幕尺寸選擇正確的圖片尺寸 3. 盡量避免用戶等待圖片載入的時間(例如提前載入) 4. 使用低像素圖片佔位(和skeleton類似)
lighthouse 可以測試和提供優化建議
查找產品 - 瀏覽和搜索
多使用 prefetch 進行預載入
網站內部的搜索需要處理:
- 拼寫錯誤
- 同義詞
- 自動填充
- 縮寫
- 分面搜索。
購物車和結算
這是電子商務中最重要的環節。56%的美國消費者因為結算問題放棄在移動端的購物。可能因為速度慢,或者要填太多的信息等等。
chrome 自動填充功能可以幫助用戶登錄。每年幫助80億用戶登錄。
跨平台:例如手機上瀏覽商品,到PC上進行付款。 順暢的跨平台付款 payment request API 順暢的跨平台身份驗證 credential management API (這兩個都是瀏覽器包含的 API 功能)
可以利用 PWA 增加更好的體驗。
好的例子 ecer.com, m.jd.id ( JD 的印度尼西亞版本)
Flutter (擴展)
開發一套代碼,同時在安卓和 IOS 上運行,構建 APP 的簡便方式。
APP 的現狀
新的 APP 要儘快上市的重要性不言而喻,即便是已有的 APP 的更新速度其實也至關重要。數據顯示,僅有 3% 的移動 APP 新用戶在 30 天后仍然保持活躍狀態。因此,如何提升用戶粘性,如何通過持續的更新來吸引 & 留存用戶,是移動 APP 成功與否的關鍵。
移動 APP 目前面臨的最主要挑戰是:
- 業務挑戰方面
- 上市期 (越短越好)
- 碎片化
- 靈活性
- 招聘
- 互動
- 測試新想法/原型開發
- 高昂的開發費用
- 技術原因方面
- 同時面向 IOS 和安卓平台構建和發布應用
- 招聘人員拆分代碼庫
- 設計/開發協調方面的挑戰
- 同步版本
- 更新和刷新應用
- 快速發布和迭代
說到底,核心就是一句話:APP 需要開發 IOS 和安卓兩個版本,因此需要兩個代碼庫,需要兩套開發人員,需要兩批設計(適應不同的屏幕尺寸 OR 屏幕特點,例如 IOS 的劉海)。而這兩套又不能完全隔離,因為它們是同一個產品,因此還需要在保持特性的前提下擁有相當的一致性,例如體驗,樣式等等。
現有的技術也有致力於解決這方面問題的,比較著名(且早期的)的是 Phonegap, Adobe Air, Appcelerator 等 (React Native 後面再說),但都存在一個共同的缺點:比較簡陋,無論從樣式上,體驗上還是從功能上,全方位的不如原生開發。因此為了造就理想中的城堡,獲得最優的效果,公司和開發者依然不惜耗費巨大的成本走迷宮。
Flutter 的特點
主要有 4 個特點:美麗,快速,高效,開放。
- 美麗 可以畫頁面上的每個像素(這也是和 RN 最大的區別),以精美界面獲獎。可以理解為高性能的渲染引擎。
- 快速 能夠保證 60fps 的幀率,可以調用 GPU 加速。因為高層代碼被編譯為機器代碼,因此在低端手機上也能取得相當好的效果。
- 高效 高效指的更多的是開發體驗。其中最具特色的是 stateful hotreload (修改代碼熱載入時組件狀態能夠保持住,而不是從初始狀態重新開始)。
- 開放 Flutter 是開源 & 免費的,可以在 Github 上看到代碼並參與。另外還有中文官網和中國鏡像,訪問容易。
渲染機制方面,它總共有 3 個階段:
build -> render -> paint
而實際渲染,它通過構造以下幾個內容來進行:
widget tree -> element tree -> render tree -> layer
使用 Flutter 的四種方法
- 從無到有構建全新 APP 在 Flutter 中實現新偶像,並同時落實到 IOS 和安卓 APP 中。
- 針對新的 APP 構想進行原型設計 使用 Flutter 在前所未有的短時間內測試 APP 構思或者想法
- 針對另一個平台構建 APP 如果已經有了 IOS 和安卓 APP 的其中之一,使用 Flutter 針對另外一個平台構建 APP。驗證無誤後再擴展併合並代碼庫。
- 將 Flutter 用於 APP 的某一部分 (線上演示的閑魚就是這種) 在生產環境中使用 Flutter 測試現有 APP 中的一個或者幾個頁面
APP 營銷最佳實踐 (亂入)
主要聚焦在如何利用 google 的各條產品線和合作品牌來提升自身 APP 的廣告效果。但我覺得多數是針對出海的 APP,因為搜索,youtube,google play 等國內使用並不十分廣泛。
Google Play 是用戶獲取遊戲/應用的最主要渠道。廣告吸引的安裝次數超過60億次。
本次介紹主題:UAC 通用應用廣告系列
解決的問題
- 如果投放搜索廣告,要設置關鍵詞,並且為每個關鍵詞設置點擊成本。
- 如果投放到 YOUTUBE,要投放到特定的頻道。
- 等等。
UAC 可以免去這些設置工作,在搜索,play store, emails. web, youtube等,使用機器學習來投放廣告。 例如如果用戶看完遊戲視頻後下載遊戲的數量非常多,那 UAC 就會增加這條路徑的權重。
這裡又學到了兩個概念: CPI 單次安裝成本 安裝,推廣。主要目標是下載/激活。 CPA 單次事件成本 留存,活躍,營收。主要目標是用戶質量。
優秀的視頻廣告特點
- 15-30S
- 加入音樂和字幕
- 儘早的抓住眼球,顯示出品牌。最好在1/4時長之前更容易獲得更高的轉化率
- 結尾處(最後一幀)加入號召文字或者按鈕圖案。(馬上下載,馬上遊玩等等)
H5 廣告:
- 有清晰的號召按鈕
- 增加激勵性,如折扣優惠等。
谷歌擁有豐富多樣的用戶行為數據
- 瀏覽記錄
- 應用內的購買頻率
- 玩過的遊戲類型
- 搜索詞條
- 位置 (考慮時差)
- 時段 (例如工作日推遊戲就不是很有效)
- 設備類型 (例如有沒有買最新的 iphone)
- 從 youtube 看過什麼視頻(有73%的玩家喜歡看別人打遊戲,48%的玩家喜歡看別人打遊戲超過自己打遊戲,61%玩家會在購買遊戲之前看 youtube 視頻)
根據這些行為數據,能夠猜測用戶畫像,從而有針對性地去對這類用戶製作視頻,精準投放。舉了網易的荒野行動進軍日本的例子,有針對性的轉化率為4倍。
推薦閱讀:
TAG:Google開發者大會 | Web開發 | 前端開發 |