Engage SDK 常見問題

發布常見問題

誰負責管理內容發布工作?

應用程式開發人員會管理內容發布工作,並將要求傳送至 Engage Service。這樣一來,開發合作夥伴就能進一步控管向使用者發布內容的時機和方式,避免頻繁地喚醒合作夥伴應用程式進行內容發布。

開發人員需要發布所有叢集類型嗎?

雖然開發人員可以只發布一個叢集,但我們強烈建議加入更多叢集。否則,開發人員會錯失吸引使用者與內容互動的機會。強烈建議您發布每個類別的所有叢集類型。

應用程式執行期間,開發合作夥伴應多久透過工作管理員發布資料一次?

這由開發合作夥伴決定。Google 建議每天發布一到兩次一般推薦內容,並針對購物車、重新訂購和其他接續內容,採用事件導向方法 (例如,在使用者將商品加入購物車,或中途停止播放電影時,啟動工作站做為回呼)。如果是社群應用程式,請務必在每次使用應用程式後發布更新的推薦叢集。社交應用程式使用者對最新推薦內容較感興趣,且理想情況下,每則貼文最多只會看到一次。

開發人員何時應呼叫刪除 API?

只有在沒有可發布的內容時,才應呼叫刪除 API。請勿接連呼叫刪除 API 和發布 API 來取代內容;發布 API 會自動移除先前的內容。

廣播意圖常見問題

為什麼 Android 應用程式開發人員需要註冊廣播意圖?

為了向使用者提供最新內容,您應該使用廣播意圖,在使用者可能不會常使用應用程式時觸發資料同步作業。

無法測試廣播意圖

驗證應用程式不支援測試具有權限的廣播意圖。測試時必須移除權限,並在步驟 6 將 SDK 切換至正式版前,重新加入權限。

不允許背景執行作業

註冊廣播意圖時,可能會遇到以下錯誤:

Background execution not allowed: receiving Intent
{ act=com.google.android.engage.action.PUBLISH_RECOMMENDATION .. }

您需要以動態方式註冊廣播接收器。

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION,
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null));
...

}

工作流程常見問題

整合此 SDK 時,可能會遇到以下錯誤:

應用程式、叢集、實體層級的驗證錯誤

應用程式、叢集和實體層級的摘要會顯示驗證錯誤的數量。這些錯誤代表缺少必要欄位或提供的值無效。錯誤訊息會以紅色顯示在每個相關欄位下方。請先修正所有驗證錯誤,並檢查正確性,再分享 APK。

深層連結已與套件名稱建立關聯。使用 ADB 工具測試深層連結是不錯的方法。

adb shell am start -W -a android.intent.action.VIEW -d <DEEPLINK URI> <PACKAGE NAME>

深層連結是追蹤歸因的好方法。深層連結網址除了能將使用者導向應用程式外,也可納入其他追蹤參數,例如「http://xx/deeplink?source_tag=engage」。

開發人員可以自行新增追蹤參數,並提供歸因分析,評估影響程度。

Engage for TV 2.0 常見問題

一般問題

什麼是 Engage?

Engage 讓「從上次離開的地方繼續」體驗更上一層樓!這項重大升級可讓觀眾在更多裝置上流暢接續觀看內容。想像一下,您在 Google TV 上開始觀看電影,然後在通勤時輕鬆地在手機上繼續觀看,這就是 Engage 的強大功能。

這項新系統旨在提升觀眾參與度和留存率,在整個 Google 生態系統中提供流暢無阻的體驗。

Video Discovery API 是否與 Engage 相同?

是,兩者相同。Engage SDK 是一個程式庫,支援「繼續觀看」列。Engage 支援的內容實體類型不限於影片,因此這項整合功能不再稱為「影片探索」。

使用 Engage 有哪些好處?

答案:無論觀眾使用何種裝置,都能透過 Engage 輕鬆接續觀看內容。運作方式如下:

  • 跨 Google 服務的流暢體驗:在 Google TV 上開始觀看,並在 Android 手機、iPhone 或 Android 平板電腦上流暢接續觀看。即使裝置尚未安裝應用程式,也能正常運作!
  • 提高參與度和留存率:Engage 可協助吸引使用者回訪應用程式,即使在新裝置上也不例外。讓使用者繼續觀看喜愛的節目,可提高他們繼續觀看的機率。
  • 觸及更廣:除了 Google TV 之外,Engage 還能與其他 Android 媒體體驗搭配使用,例如 Play 收藏和其他 Google 媒體應用程式。
  • 回溯相容:如果您已使用舊版「接著看」功能,請放心!Engage 具備回溯相容性,因此現有的整合功能仍可運作。

重要事項:所有新的「繼續觀看」整合項目都必須使用 Engage。舊版「跨裝置接著播放」系統將逐步淘汰。

哪些平台支援 Engage?

  1. Google TV
  2. Android TV (僅限裝置端,但支援 Engage SDK)
  3. Google TV Android 行動應用程式
  4. Google TV iOS 行動應用程式
  5. Play 收藏
  6. Google 娛樂空間
  7. iOS 裝置 (整合 REST API)。

Engage SDK 是否用於「繼續觀看」?

是,Engage SDK 支援「繼續觀看」列的內容。必須與 Engage 整合。

所有人都能使用 Engage 嗎?

Engage 將分階段推出。

  • 搶先體驗:我們一開始會透過搶先體驗計畫 (EAP),向特定合作夥伴開放存取權。
  • 擴大開放:我們正努力盡快向所有開發人員開放 Engage。

為確保推出過程順利成功,我們採取了相關防護措施。這包括 Engage 端的許可清單,以及 Engage SDK 內的獨立檢查。無論您是 EAP 合作夥伴,還是想盡快加入,請與我們聯絡,以便我們在您開始整合 Engage SDK 之前設定存取權限。

「建立實體」一節中的圖片規定已更新。

有了這份新的 API 說明文件,Google 伺服器是否會從用戶端提取「繼續觀看」資料,並反映在所有裝置上?

新版 API 大幅改善「繼續觀看」列的內容,包括:

  • 在 Google TV 裝置間順暢切換:使用者可以在一部 Google TV 上開始觀看,然後在登入相同帳戶的其他 Google TV 上繼續觀看。這項功能也適用於舊版 Android TV。

  • 行動應用程式整合:Engage 的內容會顯示在 Android 和 iOS 版 Google TV 行動應用程式中,讓使用者在電視和行動裝置之間流暢切換。

  • 提高使用者留存率:即使裝置未安裝應用程式或使用者未登入,繼續觀看列中的內容仍可鼓勵使用者重新與應用程式互動,進而提高留存率。

  • 擴展至其他平台:Engage 擴展至其他 Google 媒體平台,例如 Android、Play 收藏、平板電腦,以及 Android 上的其他 Google 媒體應用程式和介面,盡可能提高跨裝置的使用者參與度。

我可以發布至 Continuation 叢集的實體數量上限為何?

每個開發人員合作夥伴在接續叢集中最多只能有 5 個實體。這項限制是為了在 Google TV 的「繼續觀看」列上公平分配內容,該列是多個媒體供應商共用的空間。

如果嘗試發布超過 5 個實體,會發生什麼事?

如果超過 5 個實體的限制,Engage SDK 會拒絕發布要求。您必須減少要求中的實體數量,才能成功發布。您只需加入使用者未看完的實體,因此在大多數情況下,這類實體只會有幾個。如果這類實體超過 5 個,可以選擇發布較新的實體。

為什麼實體數量有限制?

Google TV 的「繼續觀看」列會顯示各種媒體供應商的內容。限制每個供應商的實體數量,讓使用者能看到來自所有喜愛來源的多樣化內容,促進公平且平衡的使用者體驗。

驗證應用程式問題

提交應用程式前,是否一定要先使用驗證應用程式進行測試?

是的,提交 APK 前,請務必使用驗證應用程式測試應用程式。

雖然我們瞭解您可能對自己的實作有信心,但 Engage 整合包含許多複雜的元件。驗證應用程式就像安全網,能及早發現潛在問題,長期下來可節省寶貴的時間和精力。

這項程序就像快速檢查,可確保應用程式順利推出,並提供優質的使用者體驗。

事先找出並解決問題,就能避免因遭拒而必須重新提交的麻煩。

提交 APK 時,請附上螢幕截圖,證明應用程式已通過驗證程序。

整合期間應注意哪些常見錯誤?

驗證應用程式旨在找出 Engage 整合的潛在問題。以下是開發人員常犯的錯誤:

所有內容類型 (電影、電視節目、直播、短片):

  • 缺少連結:請務必為內容提供有效的平台專屬 URI (連結)。這些連結會告訴系統,在各平台何處可以找到您的內容。
  • 缺少標題:請務必為所有內容加上標題。這有助於使用者辨識正在觀看的內容。
  • 圖片顯示比例:確認與內容相關的所有圖片,顯示比例都接近 16:9。這樣可確保圖片在不同螢幕上正確顯示。

電視劇集:

  • 完整劇集資訊:請務必提供節目名稱、集數和季別。這有助於整理集數,並讓使用者在系列中瀏覽。
  • 準確的播放位置:請仔細檢查上次播放位置是否小於或等於該集總長度。確保使用者從正確的位置繼續播放。

電影:

  • 準確的播放位置:與電視節目類似,請確認上次播放位置是否準確。

直播影片:

  • 播送者資訊:加入直播播送者的名稱。

短片:

  • 創作者資訊:指定短片的創作者。

請注意,驗證應用程式會標記這些問題,讓您在提交應用程式前修正,節省時間並確保使用者享有更流暢的體驗。

帳戶和個人資料問題

我的應用程式使用匿名使用者登入。Engage 仍需要 AccountProfile 嗎?

AccountProfile 適用於使用個別使用者帳戶的應用程式。不過,我們瞭解有些應用程式 (例如您的應用程式) 可能會依賴匿名登入。 在這種情況下,Engage 的運作方式如下:

  • AccountProfile 是技術上的必要條件,但即使應用程式沒有使用者帳戶系統,您仍可整合 Engage。
  • 僅限在裝置端使用:Engage 的跨裝置功能仰賴辨識不同裝置上的使用者。由於匿名登入無法提供這項資訊,因此這項功能僅限於使用者目前的裝置。
  • 設定方式:如要設定這項功能,請先停用跨裝置同步功能。這樣一來,接續播放項目只會顯示在開始播放內容的特定裝置上。

總結:雖然您可以將 Engage 與匿名登入整合,但使用者只能在同一部裝置上繼續觀看內容。

如果應用程式同時支援 accountId 和 profileId,我是否可以只使用 accountId,而不使用 profileId 建立 AccountProfile?

AccountProfile 需要 accountId 和 profileId 才能正常運作。原因如下:

  • 一致的識別資訊:accountId 用於識別使用者,profileId 則用於區分該使用者帳戶中的不同設定檔 (如適用)。提供這兩項資訊,可確保 Engage 準確追蹤及顯示每個個人資料的內容。
  • 避免錯誤:在不同的 API 呼叫中不一致地使用 accountId 和 profileId,可能會導致非預期的行為和錯誤。舉例來說,如果您在新增內容至 Engage 時同時加入這兩者,但在刪除內容時只使用 accountId,系統可能無法正確識別並移除預定項目。

Engage 是否需要 profileId?

  • 必須提供「accountId」。這項資訊可用於跨裝置識別使用者。
  • profileId對於提供良好的使用者體驗至關重要。雖然 profileId 在技術上為選用,但如果您的服務支援多個設定檔 (例如許多影視串流服務),強烈建議您使用。為什麼這點很重要? 因為如果沒有 profileId,繼續觀看列可能會顯示同一帳戶中其他設定檔的內容。這可能會讓使用者感到困惑和挫折。
  • 簡而言之,提供 profileId 可確保「繼續觀看」列中提供的內容,能準確反映每個人的觀看記錄。除非應用程式不支援帳戶內設定檔的概念,否則應提供這項資訊。

Google 如何使用他們那邊的profileId?

如果服務提供不同的觀看內容設定檔,系統會使用 accountId 和 profileId,將裝置上觀看的內容與裝置上登入的 Google 帳戶建立關聯。Google 會根據 accountId 和 profileId 的組合記錄 ContinueWatching 資料。只要登入同一個 Google 帳戶,任何 Google 裝置都會在「繼續觀看」列中,取得與同一個 accountId 和 profileId 相關聯的最新資料。

是否需要連結帳戶才能導入 Engage?

不需要連結帳戶。這項功能已不再優先使用,所有相關用途將由新的 Device Entitlements API 涵蓋。

跨裝置同步問題

使用者同意「跨裝置同步」後,觀看的內容就會儲存到 Google TV 伺服器,方便他們在任何已登入帳戶的裝置上,順暢接續觀看。如果未取得同意,觀看記錄會保留在目前裝置的本機。

可以將「跨裝置同步」設為 false 嗎?

setUserConsentToSyncAcrossDevices 旗標可控制是否要在使用者的裝置 (電視、手機、平板電腦等) 之間同步處理 ContinuationCluster 資料。如果這個旗標設為 false,則只會在同一部裝置上顯示繼續觀看內容。

為充分發揮跨裝置功能,強烈建議您在應用程式中取得使用者同意,並將 SyncAcrossDevices 設為 true。

裝置?非 Android 裝置會與第三方伺服器分享哪些資料點?

同意聲明是在使用者層級 (設定檔或帳戶層級) 收集。取得同意聲明後,系統就能將根據參與度產生的繼續觀看酬載傳送至任何位置,讓 Google 能夠在任何裝置上,反映使用者在所有部分或後續參與實體中的普遍恢復狀態,而不必在每部裝置或平台上重新要求同意聲明。合作夥伴會根據規格,傳送與設定檔 ID (儲存在 Android 上) 相關聯的最新繼續觀看狀態。

REST API 問題

是否有 REST API 說明文件?

REST API 預計於 2025 年 3 月推出,詳情請參閱 Engage 開發人員文件。

舊版「接著看」問題

Engage 是否會取代「接著看」API?

Engage 可回溯相容於所有支援「接著看」API 的 Android TV 裝置。如要在 Google TV 和其他支援 Engage 的途徑上整合,開發人員應使用 Engage SDK。

測試與整合問題

LastPlayBackPositionTimeMillis 和 duration 有何差異?

LastPlayBackPositionTimeMillis 應反映使用者停止觀看時的播放時間長度 (以毫秒為單位,例如 10 分 5 秒為 605000 毫秒)。不得大於實體的總時間長度。

LastEngagementTime 則是使用者上次與內容互動的時間戳記。

我們應該執行哪些測試案例?

以下是品質確保團隊執行的 Google TV 測試案例。其他介面也可以執行類似的測試案例。

  1. 觀看長度超過 20 分鐘的影片,時間約 5 分鐘。退出應用程式。影片資訊卡應會顯示在「繼續觀看」列中。注意: 在 CW 中,每個第三方應用程式只會顯示 5 張資訊卡
  2. 在「繼續觀看」列中選取新顯示的資訊卡,應會從影片中的正確位置繼續播放。注意:無論是新內容或舊內容,都應從上次中斷的位置繼續播放
  3. 在 GTV 裝置上變更帳戶後,「繼續觀看」列中的卡片應會隨之變更。系統只會顯示目前帳戶的影片。依近期順序排序。第三方應用程式設定檔 CW 將混合。注意:GoogleAccount2 的「繼續觀看」會顯示 GoogleAccount2 觀看過的第三方內容
  4. 按下「返回」按鈕退出應用程式 > 確認資訊卡顯示在「繼續觀看」列中
  5. 隱藏「繼續觀看」列中的影片,該影片不應再次顯示。測試隱藏的內容是否在 24 小時後仍保持隱藏狀態,即使在 24 小時後開啟應用程式也一樣。確認隱藏一個項目不會隱藏多個項目。
  6. 「繼續觀看」列中顯示的內容,附有完整中繼資料:資訊卡圖片、應用程式名稱、標題、電視內容的季別和集數
  7. 進度列會顯示「查看進度」
  8. 使用者觀看內容直到片尾字幕,內容不會顯示在「繼續觀看」列
  9. 確認「繼續觀看」列中沒有未觀看的項目
  10. 確認 CW 項目是按照觀看活動發生的時間排序,而不是按照上次開啟應用程式的時間或最後一天排序
  11. 確認「繼續觀看」資訊卡上的集數和季別詳細資料,與觀看的劇集內容相符
  12. 確認已看完的項目 (播放到片尾字幕或之後) 不會顯示在「繼續觀看」列中
  13. 在觀看劇集/電影/節目時,中途關閉裝置。「在觀看劇集/電影/節目時,中途關閉裝置。開啟裝置和其他電視,確認 CW 顯示正確的資訊卡、位置和進度列」
  14. 看完第 1 集後關閉裝置,確認
  15. 第 1 集消失,且不會重新出現在「繼續觀看」列中 [在第二部裝置上,以及開啟測試裝置時]
    1. 第 2 集 (如有) 應顯示在「繼續觀看」列中 [在第二部裝置上,以及開啟測試裝置時]
  16. 情境 1:電視 1:Google 帳戶:媽媽,第三方帳戶/設定檔:帳戶 1/設定檔 1。觀看內容,並確認 CW 資料顯示第三方帳戶 1/設定檔 1 觀看的內容
  17. TV2:Google 帳戶:媽媽。驗證第一個情境的 CW 資料。現在,請以其他帳戶登入第三方應用程式。第三方帳戶/設定檔:account_2/profile_2。觀看內容,並確認 CW 資料顯示 3p account_2/profile_2 觀看的內容

  18. Google 帳戶:mom. 新裝置/未安裝第三方應用程式。在新的裝置上 (恢復原廠設定),確認 CW 顯示 Google 帳戶上次使用的第三方應用程式資料。注意:如果 GAIA 尚未與其他裝置上的第三方設定檔建立關聯,CW 列不應顯示第三方內容

    1. Google 帳戶:mom. 新裝置/已安裝第三方應用程式,但未登入。 在新裝置上 (恢復原廠設定),確認 CW 顯示 Google 帳戶上次使用的第三方應用程式資料。
    1. 注意:如果 Google 帳戶尚未與第三方設定檔建立關聯,「繼續觀看」列不應顯示第三方內容

Google TV iOS 應用程式未顯示接續觀看內容,這是什麼原因?

您必須傳送 iOS 深層連結,內容才會顯示在 iOS 裝置的「繼續觀看」列中。

我應該多久更新一次「繼續觀看」列的內容資訊?我應該頻繁更新嗎?例如每 15 秒更新一次?

不建議頻繁更新。原因如下:

  • 效能影響:持續傳送更新會對伺服器造成不必要的負擔,可能導致所有使用者的系統速度變慢。
  • 不必要的資料:使用者觀看影片時,播放位置會不斷變更。每隔幾秒傳送一次更新會產生大量多餘資料,對恢復播放沒有幫助。

何時更新「繼續觀看」列的內容資訊:

請著重於擷取使用者觀看進度的重大變化。主要情境如下:

  • 暫停或停止播放:使用者暫停或停止觀看時,請傳送更新內容,儲存目前的位置。
  • 應用程式關閉或在背景執行:如果使用者在觀看影片時退出應用程式或切換至其他應用程式,請傳送更新來儲存進度。
  • 使用者從應用程式的「繼續觀看」列中移除項目時

如何有效率地更新:

請改用影片播放器或應用程式生命週期中的事件來觸發更新,例如:

  • onPause、onStop:影片播放暫停或停止時。
  • onAppClose、onAppBackgrounded:應用程式關閉或移至背景時。

只要遵循這些規範,就能確保有效運用資源,同時在「繼續觀看」列中為使用者提供流暢體驗。