跳到主要內容

LINE Ads Platform 演進史,魔鬼藏在細節中

LINE Developer Day 2019 有一場 Session 讓自己一定要參加一下,LINE Ads platform revolution。

Ads Platform

對於大部分的人來說,這可能是一個最熟悉的陌生人,對於電商平台以及眾多需要曝光的使用者來說, Ads 的來臨讓各位迎來曙光。
最直接的例子莫過於 Facebook 廣告投遞,簡單來說,
投標 -> 快曝光 (給錢) -> 轉換 -> 達到目標

但是,最重要的就是這個 BUT , 投標與曝光之間有許多事情需要進行。
數位廣告已經脫離一刊 100 元的年代許久(雖然許多公司還是用這樣的概念在做事情),但實際上的概念是,
投標 -> 達到標地 -> 投遞 ->  投遞總量 * 投標金額 / 目標轉換
當此數字出來時,才會是大家所期待看到 100 元 / Click (或者任何轉換) 的計算金額。
聰明的各位肯定有想到了,這樣最簡單的方式,其實並不是告訴大家要投標多少,而是從使用者希望的轉換的預期金額,來進行回推投標金額。
因此還是一樣的概念,投標數字越高,就可以越快達到標,簡單來說就是,
如果有 100 元達不到的事情,那就 200 元,如果再不行就 ...

Ads Platform 驚奇之旅

對於廣告平台來說,有兩件事情,
  1. 讓使用者願意投錢
  2. 使用者投遞的錢,可以適當的放到正確位置,給正確的人
在所謂的 Realtime bidding 當中,最困難的部分莫過於, Realtime 的部分,以 LINE 的例子來說,如果台灣有 1900 萬的使用者,意味著如何在投遞的過程中做出 87% 相似,或盡量做到與實際狀況相同的推估,這要將 Data 在之前做大量的預先處理,以及對於版面的選擇做最優化處理,包含此群眾與版面之間互動關係推估等,會是
  • UI
  • API
  • DATA / Rules
  • AI / Preprocess
這幾個項目的結合,才可能可以做到很適當的配合與推估行為,讓使用者投遞金額時達到一定的信心程度,同時使用者在進行小量投遞的時候,也會參考 Ads Platform 的推估進行做實際數字比對,讓使用者進行交互比對,提高對於 Ads Platform 的信心程度。

Auto biding

能夠達到上述部分之後,擁有夠多的實際投遞結果,加上實際的數據,以及使用者喜好程度,素材,群眾類型,轉換行為等資訊後,才有辦法逐步做出 auto biding.
看似很簡單的投遞行為,實際上在 LINE Ads Platform 也提出幾個機制。
  • 即時監控機制(包含資料,投遞,使用者行為)
  • 可測試環境與資料 (進行實際狀況離線及線上驗證,進行小且多型的驗證 A/B testing)
  • 即時回饋機制(從投遞,到效益結果的表現)
而其中講者其實有輕描淡寫的講述了一部分,那就是在做 Prediction 的時候其實尤其困難,因為你不會知道使用者的投遞區間,假設 1week 的時間,其實你很難預測到 1week 後使用者行為會是怎麼轉變,會不會真的達到目標(轉換),並且這是要做整段時間的追蹤。
這段,雖然講述起來輕鬆,但實際過程實在煎熬,需要等待資料的累積,同時也需要同時修正預測模型和算法,需要不斷的與 AI 團隊溝通,同時又要背負著這個廣告平台怎麼這麼難用的煎熬 … (掩面哭泣)。
相信也是在這段時間才有辦法做出 Reach and frequency buying simulator,讓整體預估可以趨近於實際狀況。

後記

你說廣告系統好玩嗎?
很好玩,而且越是了解廣告系統行為之後,你就會更清楚 LINE / Google / Facebook 為什麼這樣下廣告,更可以了解數位廣告生態的模式,從投遞平台到實際測試投遞廣告,到廣告實際投放過程就可以體會到,目前這個廣告系統是到哪一個階段。
How LINE Ads Platform is Constantly Evolving 一場很輕鬆 40 多分鐘的演講,可能對於大部分的聽眾來說會是無感的,也會覺得只是在描述一個平台的成長過程,與自己所知道的名詞相差無幾。
實際上談笑風生之餘,底下藏了多少血淚,還有多少工程,數據,算法的結合,加上被需求與供給方追殺的血淚累積出來的成果。
就像是上面最後一張圖一樣,數位廣告方式實際上還在成長中,我們都也是在持續探索這個數位世界,當我們用 lookalike 探索出數位人格之後,能做的事情更大了。
但也表示需要對於使用者的隱私需要有更多的負責,也意味著 Ads Platform 需要做出一定的 filter, 讓真正的廣告可以被刊出,讓假廣告與擾亂人群的惡意擴散資訊退散,盡到平台該負責的責任。
雖然很久沒有接觸數位廣告,但能夠再次聽到 LINE Ads Platform 開發史這樣的歷程,可以讓我們思考一下,也許下個 5 年,數位廣告會是什麼樣子,我們可以怎麼進行整個架構規劃,一想起來就覺得『興奮啊』

留言

這個網誌中的熱門文章

Vibe Coding:到底?氛圍驅動程式開發必殺技?

Vibe Coding(氛圍編程) 是由 OpenAI 共同創辦人 Andrej Karpathy 在 2025 年提出的革命性程式開發方式,它讓開發者透過自然語言與 AI 對話來生成程式碼,徹底改變了傳統的編程模式。 這種開發方式的核心理念是 「順著感覺走」 ,讓 AI 處理技術細節,開發者專注於創意和需求描述。 Vibe Coding 需要基本上的規劃和執行,但並沒有強制規範,從日常經驗來說可分為三個階段, 前期準備、開發過程、和後期維護 三個關鍵階段。每個階段都有其特定的任務和注意事項,正確執行這些步驟將大幅提升開發效率和程式品質。 將靈感與需求透過 AI 快速轉化成產品功能或原型。以下幫你分成 「前、中、後」 三階段要做的事情,適合你自己做、或帶團隊做 前期:設定 vibe & 準備素材 這個階段的重點是 「建立開發語境」 ,因為 AI 的生成表現高度依賴前期提供的上下文與資料。 明確目標 :釐清要解決的問題、預期要做的功能與核心價值。例如在筆記軟體的情境中,可能是:「我要做一款讓使用者能用 Markdown 記錄筆記,並提供標籤與全文搜尋功能的簡單 App。」 收集靈感 :觀察同類產品(如 Obsidian、Notion)、蒐集市場痛點(例如太多筆記軟體無法脫機使用,或同步效能差)。 建立語境 :準備初步 prompt、背景知識、產品定位、品牌調性、目標使用者輪廓等。 確認資源 :決定用哪些工具(Gemini、ChatGPT、設計軟體、流程管理工具等)。 確認完上述內容之後,就可以先開始進行準備規格,進行第一次的 Vibe Coding 方向驗證 提示詞模板準備 很多人會跳過這步驟,但一份 「好的 AI 提示詞模板」 將決定接下來每一次 AI 對話的品質。有效的提示詞模板需具備: 描述具體且無歧義 包含技術要求和約束條件 提供範例資料和測試案例 指定程式碼風格和慣例 例如針對筆記軟體的案例:   「建立一個支援 AI 功能純文字筆記,輸入內容可即時渲染;需支援儲存到本地檔案,提供標籤欄位做分類;以 React 架構,程式風格採用 Tailwind style components 並使用 hooks。」 開發工具選擇 開發工具的選擇 同樣重要,目前市場上主要的 ...

Claude Code Hooks:自動化與安全的最佳實踐

寫在最前頭,這份文章主要寫起來是給自己看, 同時內容是比較適合開發者,工程師們可以做些自動化處理的簡單筆記。 Claude Code hooks Claude Code hooks 是一種強大的自動化機制,允許用戶在 Claude Code 的不同生命週期階段,自定義執行 shell 指令。這種設計讓開發者能夠將規則和自動化行為嵌入到應用層級,確保每次都能可靠執行,而不必依賴 LLM(大型語言模型)是否會選擇執行某項操作。 Hooks 的核心用途 通知 :自訂收到 Claude Code 等待用戶輸入或執行權限時的提醒方式。 自動格式化 :如在每次檔案編輯後自動執行 prettier (針對 .ts 檔)、 gofmt (針對 .go 檔)等。 日誌記錄 :追蹤所有執行過的命令,便於合規或除錯。 自動反饋 :當 Claude Code 產生不符合團隊規範的程式碼時,自動給出反饋。 自訂權限 :阻擋對生產環境檔案或敏感目錄的修改[^1]。 配置與結構 Hooks 透過設定檔進行配置,分為全域( ~/.claude/settings.json )、專案( .claude/settings.json )、本地專案( .claude/settings.local.json )以及企業級策略設定。每個 hook 由「事件名稱」和「匹配器」組成: "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "jq -r '...'" } ] } ] } matcher :用於匹配工具名稱(支援正則表達式),如 Write 、 Edit|Write 、 Notebook.* 。 hooks :當匹配時要執行的命令陣列。 type :目前僅支援 "command" 。 ...

[CSS] z-index 在不同瀏覽器繼承問題

今天會討論到這個課題,是因為要實做一個Popup dialog,所以我們希望的結果如下圖。 可是在IE7 卻發生了這樣的情況。 Popup不論怎麼設定z-index都無法浮在最上層,我們看一下html架構發生什麼事情。