iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
佛心分享-SideProject30

toui:一條短網址能做到哪些事——從轉址到 AI 工作流系列 第 23

Day 23|同一條短網址,讓 iPhone 開 App Store、Android 開 Google Play

  • 分享至 

  • xImage
  •  

你要推一個 App,想貼一條連結出去。iPhone 的人點了要進 App Store,Android 的人要進 Google Play,用電腦看到的那些人只能給他網頁版。

一個做法是貼三條,旁邊註明哪一條給誰。另一個做法是在中間擋一頁,上面放三顆按鈕,讓人自己認領「我用 iPhone」還是「我用 Android」,這種攔一道的頁面叫中間頁。前者會讓人點錯,後者多一次點擊,兩種都會掉人。

還有第三種做法,貼一條就好,讓它自動分流判斷。這是 Day 22〈後台設計大改版:用不順的地方,其實只有幾個原因〉 那一輪改版之後,我做的第一個新功能。

iPhone 去哪、Android 去哪、哪些國家去哪

後台新增或編輯連結的時候,把「分流」點開,裡面是三種欄位,加上底下鎖住的預設。

  • iOS 訪客 一個目標網址。欄位的提示字寫著 https://apps.apple.com/…,因為這一格十次有九次就是拿來填商店連結的。
  • Android 訪客 同上,提示字是 https://play.google.com/…
  • 國家規則 一條規則可以一次挑好幾個國家,共用一個目標網址,需要幾條就加幾條。讀不到訪客所在地的時候,這一層就當作沒命中。
  • 其他訪客 你原本填的那條,也就是預設。

https://ithelp.ithome.com.tw/upload/images/20260915/20178813C42NgoswXv.png

前面三格各自獨立,改其中一格不會動到另外兩格。

判斷的順序是固定的,iOS、Android、國家、預設,先中先走。每一位訪客只會命中其中一條,不會兩條疊在一起。

三種欄位怎麼填、順序怎麼判,toui 的常見問題裡有三則專門講這個,設定前可以先看一眼。

對點的人來說,這一切都不存在。沒有中間頁、沒有請他先選裝置的按鈕,他看到的還是一次普通的轉址。永遠是 302,那個選擇背後的理由 Day 4〈301 轉址和 302 差在哪〉 已經說完了。

裝置比國家先判斷,所以「台灣的 iPhone」要繞一下

因為裝置排在國家前面,只要你填了 iOS 那一格,全世界的 iPhone 都會去同一個地方,包括台灣的。你沒辦法在同一條連結上做出「台灣的 iPhone 去 A、美國的 iPhone 去 B」。

真的需要這種組合,可以把兩條連結串起來,iOS 那一格填的不是商店網址,而是另一條只設了國家規則的短連結。第二條連結沒有填 iOS 那一格,所以裝置那一層不會命中,它接手之後就直接判斷國家。點的人還是點一條,中間多轉一次,他不會察覺。

不過多數時候你不必這樣做。App Store 和 Google Play 本來就會照訪客帳號的所在地顯示當地的商店頁面,你把人帶到門口,剩下的它們自己會處理。

桌機模式的 iPad、搜尋引擎的爬蟲,都算認不出裝置

判斷裝置這件事,聽起來像是讀一下瀏覽器送過來的識別字串(也就是 User-Agent)就結束了。實際上有一種裝置是讀不出來的。

現在的 iPad 預設用「桌機級」的 Safari,它送出來的識別字串裡不會出現 iPad 這個詞,看起來就是一台 Mac。這不是 bug,是 Apple 刻意讓它這樣,為的是讓網站給 iPad 完整版的畫面而不是手機版。

於是設計的時候要做一個選擇,把這種看起來像 Mac 的請求猜成 iOS,還是不猜。

toui 不猜。程式只認明確帶著 iPad 的那一種,其餘一律當成認不出裝置,於是它不會命中 iOS 也不會命中 Android,繼續往下走國家規則,再往下就是預設。猜錯的代價是把一個坐在電腦前面的人丟進 App Store,而不猜的代價只是他看到網頁版,兩邊不對等。

搜尋引擎的爬蟲也歸在認不出這一類,就算識別字串裡帶著 Android 也一樣——Google 的手機版爬蟲正是這種。

我拿十種識別字串實際打了同一條連結,結果是這樣:

送出去的識別字串 結果
iPhone 命中 iOS
iPad(帶 iPad 字樣) 命中 iOS
桌機模式的 iPad/Mac 認不出裝置,往下走
Android 手機 命中 Android
Android 平板 命中 Android
桌機 Chrome 認不出裝置,往下走
沒有識別字串 認不出裝置,往下走
Google 手機版爬蟲 認不出裝置,往下走
Facebook 預覽爬蟲 不進分流,直接拿預設
LINE 預覽爬蟲 不進分流,直接拿預設

最後兩列跟上面八列不一樣,它們連分流都沒有進去。

貼到 LINE 的時候,預覽卡片是預設圖

社群平台來抓預覽的爬蟲,不會進入分流。這一關比前面那四層更早,它根本走不到判斷裝置那一步,拿到的一律是你填的預設網址。

這是刻意的。分享一條連結到 LINE 或 Facebook 的時候,跳出來的那張卡片是平台自己去抓的,如果讓爬蟲也走分流,卡片的標題和圖就會變成某一種裝置看到的那一版,而看到那張卡片的人裝置各不相同。讓卡片一律代表預設網址,是唯一講得通的做法。

分流管的是人點下去之後要去哪裡,不管這條連結被分享出去時長什麼模樣。那張卡片本身其實也能換,換成你自己指定的標題和圖,不過那是另一個功能,Day 10〈LINE 連結縮圖更改:顯示哪一張圖,可以由你決定〉 專門在講。

點擊數只算到連結身上,不分辨走了哪一條

你會知道這條被點了幾次、來自哪些國家、用什麼裝置,但不會有一欄告訴你「其中幾次走了 iOS 那條」。這是設計上的取捨,要拆開就建兩條連結,各自標各自的。

改了規則不是瞬間全球同步

通常幾秒之內就換過來,慢的時候要等一下。原因是這些規則同時放在世界各地的機房裡,好讓轉址在哪裡都快,而各地是各自更新的,你改完的那一刻不是每個地方同時看到新規則。實務上你不用重發連結,也不用重新產生 QR code,改完就是了。想確認換過來了沒有,最直接的方法是拿手機自己點一次,再用電腦點一次。

先想好預設網址,規則可以慢慢加

設分流的時候,最花時間的是規則本身,iPhone 去哪、台灣去哪、美國去哪。你想得到幾條規則,就能規劃流量往哪裡走。

但總有想不到的情況——桌機模式的 iPad、讀不到所在地的連線。它們最終還是要有個落地之處,它應該是不管誰落進來都說得通的那一頁,通常就是你的官網或產品頁。


上一篇
Day 22|後台設計大改版:用不順的地方,其實只有幾個原因
下一篇
Day 24|link in bio 是什麼?把你的連結統整起來,放進 IG、Threads 的個人檔案
系列文
toui:一條短網址能做到哪些事——從轉址到 AI 工作流24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言