ProtectedSignalsManager

public class ProtectedSignalsManager
extends Object

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


ProtectedSignalsManager 为应用和广告 SDK 提供用于管理其受保护信号的 API。

摘要

公共方法

static ProtectedSignalsManager get(Context context)

用于创建 ProtectedSignalsManager 实例的工厂方法。

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

updateSignals API 将从 URI 中检索一个 JSON,该 JSON 说明了需要添加或移除哪些信号。

继承的方法

公共方法

get

public static ProtectedSignalsManager get (Context context)

用于创建 ProtectedSignalsManager 实例的工厂方法。

参数
context Context:要使用的 Context。此值不能为 null

返回
ProtectedSignalsManager ProtectedSignalsManager 实例。此值不能为 null

更新信号

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

updateSignals API 将从 URI 中检索一个 JSON,该 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