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<Object, Exception> receiver)
updateSignals API 将从 URI 中检索一个 JSON,该 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<Object, Exception> 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”,当前支持的值为
- "REGISTER" : 如果首次提供,则注册编码器端点;或者使用新提供的端点覆盖现有端点。对于“REGISTER”操作,必须提供“endpoint”。
提供编码器端点的子键是“endpoint”,其值是端点的 URI 字符串。
每个 JSON 中的键只能由一个命令进行操作。如果两个命令尝试操作同一个键,此方法将抛出 IllegalArgumentException
。
如果出现以下情况,此调用将失败并抛出 SecurityException
:
ownerPackageName
不是调用应用的软件包名称,并且/或- 买方无权使用此 API。
如果出现以下情况,此调用将失败并抛出 IllegalArgumentException
:
- 从服务器检索到的 JSON 无效。
- 提供的 URI 无效。
如果调用软件包超出允许的速率限制并受到限制,则此调用将失败并抛出 LimitExceededException
。
如果遇到内部服务错误,则此调用将失败并抛出 IllegalStateException
。
需要 AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
参数 | |
---|---|
updateSignalsRequest |
UpdateSignalsRequest :此值不能为 null 。 |
executor |
Executor :此值不能为 null 。回调和监听器事件通过此 Executor 分派,这提供了一种轻松控制使用哪个线程的方法。要通过应用的主线程分派事件,可以使用 Context.getMainExecutor() 。否则,提供一个分派到相应线程的 Executor 。 |
receiver |
OutcomeReceiver :此值不能为 null 。 |