ProtectedSignalsManager

public class ProtectedSignalsManager
extends Object

java.lang.Object
   ↳ android.adservices.signals.ProtectedSignalsManager


ProtectedSignalsManager 可提供 API,讓應用程式和廣告 SDK 管理受保護信號。

摘要

公用方法

static ProtectedSignalsManager get(Context context)

用來建立 ProtectedSignalsManager 例項的工廠方法。

void updateSignals(UpdateSignalsRequest updateSignalsRequest, Executor executor, OutcomeReceiver<ObjectException> receiver)

updateSignals API 會從 URI 擷取 JSON,說明要新增或移除哪些信號。

繼承方法

公用方法

get

public static ProtectedSignalsManager get (Context context)

用來建立 ProtectedSignalsManager 例項的工廠方法。

參數
context Context:要使用的 Context。此值不能為 null

傳回
ProtectedSignalsManager ProtectedSignalsManager 執行個體 此值不能為 null

updateSignals

public void updateSignals (UpdateSignalsRequest updateSignalsRequest, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

updateSignals API 會從 URI 擷取 JSON,說明要新增或移除哪些信號。這個 API 也允許註冊編碼器端點。端點用於下載編碼邏輯,以便編碼信號。

JSON 的頂層鍵必須對應以下 5 個指令中的任一種:

「put」- 新增信號,以相同鍵覆寫任何現有信號。這個鍵的值是 JSON 物件,其中鍵會採用與放置目標鍵相對應的 base 64 字串,而值則採用與要放置的值相對應的 base 64 字串。

「append」:將新信號/多個信號附加到信號的時間序列,如果序列大小超過指定上限,則移除最舊的信號,為新信號釋出空間。這個鍵的值是 JSON 物件,其中鍵會採用與附加目標鍵相對應的 base 64 字串,而值則是含有「values」和「maxSignals」這兩個欄位的物件。「values」是與要附加至時間序列的信號值相對應的 base 64 字串清單。「maxSignals」是指此時間序列中可用值的數量上限。如果目前與鍵相關聯的信號數量超出 maxSignals,系統將會移除最舊的信號。提醒您,透過 put 新增的鍵也可以是附加目標。但請注意,如果附加數量超過值的上限,就會導致失敗。

「put_if_not_present」:只在現有信號沒有相同鍵時,才新增信號。這個鍵的值是 JSON 物件,其中鍵會採用與放置目標鍵相對應的 base 64 字串,而值則採用與要放置的值相對應的 base 64 字串。

「remove」:移除鍵的信號。這個鍵的值是與應刪除的信號鍵相對應的 base 64 字串清單。

「update_encoder」:提供用來更新端點的動作,以及可用於擷取編碼邏輯的 URI。提供更新動作的子鍵為「action」,目前支援的值如下:

  1. 「REGISTER」:如果編碼器端點首次提供,就會註冊該端點,或使用新提供的端點覆寫現有端點。如要執行「REGISTER」動作,就必須提供「endpoint」。

用於提供編碼器端點的子鍵為「endpoint」,值則為端點的 URI 字串。

每個 JSON 只能使用一個指令操作金鑰。如果兩個指令嘗試對同一個鍵運作,這個方法會透過 IllegalArgumentException

如果 SecurityException

  1. ownerPackageName 不會呼叫應用程式的套件名稱和/或
  2. 買方沒有使用該 API 的權限。

如果發生以下情況,這項呼叫會失敗,並顯示 IllegalArgumentException

  1. 從伺服器擷取的 JSON 無效。
  2. 提供的 URI 無效。

如果呼叫套件超過允許的頻率限制並受到限制,則這項呼叫會失敗,並顯示 LimitExceededException

如果發生內部服務錯誤,這項呼叫就會失敗,並傳回 IllegalStateException
需要 AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

參數
updateSignalsRequest UpdateSignalsRequest:此值不能為 null

executor Executor:此值不能為 null。回呼和事件監聽器會透過這個 Executor 分派,讓您輕鬆控制使用哪一個執行緒。如要透過應用程式的主要執行緒進行事件分派,可以使用 Context.getMainExecutor()。否則,請提供 Executor,將工作調度至適當的執行緒。

receiver OutcomeReceiver:此值不能為 null