AdSelectionManager
public
class
AdSelectionManager
extends Object
java.lang.Object | |
↳ | android.adservices.adselection.AdSelectionManager |
AdSelection Manager cung cấp các API cho ứng dụng và SDK quảng cáo để chạy quy trình lựa chọn quảng cáo cũng như báo cáo số lần hiển thị.
Tóm tắt
Phương thức công khai | |
---|---|
static
AdSelectionManager
|
get(Context context)
Phương thức ban đầu để tạo một thực thể của AdSelectionManager. |
void
|
getAdSelectionData(GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Thu thập dữ liệu đối tượng tuỳ chỉnh từ thiết bị. |
TestAdSelectionManager
|
getTestAdSelectionManager()
|
void
|
persistAdSelectionResult(PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Duy trì kết quả lựa chọn quảng cáo từ phía máy chủ. |
void
|
reportEvent(ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Thông báo cho dịch vụ rằng có một sự kiện quảng cáo mới cần báo cáo cho quảng cáo do
ad-selection chạy do |
void
|
reportImpression(ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Thông báo cho dịch vụ rằng có một lượt hiển thị mới cần báo cáo cho quảng cáo do
ad-selection chạy do |
void
|
selectAds(AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Chọn một quảng cáo từ kết quả của các lựa chọn quảng cáo đã chạy trước đây. |
void
|
selectAds(AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Chạy quy trình lựa chọn quảng cáo trên thiết bị để chọn quảng cáo tái tiếp thị cho phương thức gọi . |
void
|
updateAdCounterHistogram(UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Cập nhật biểu đồ bộ đếm cho một quảng cáo đã được chọn trước đó bằng lệnh gọi đến |
Các phương thức kế thừa | |
---|---|
Phương thức công khai
get
public static AdSelectionManager get (Context context)
Phương thức ban đầu để tạo một thực thể của AdSelectionManager.
Tham số | |
---|---|
context |
Context : Context để sử dụng
Giá trị này không được là null . |
Giá trị trả về | |
---|---|
AdSelectionManager |
Một thực thể AdSelectionManager
Giá trị này không được là null . |
getAdSelectionData
public void getAdSelectionData (GetAdSelectionDataRequest request, Executor executor, OutcomeReceiver<GetAdSelectionDataOutcome, Exception> receiver)
Thu thập dữ liệu đối tượng tuỳ chỉnh từ thiết bị. Trả về blob đã nén và mã hóa để gửi đến máy chủ đấu giá để lựa chọn quảng cáo. Để biết thêm chi tiết, vui lòng truy cập vào phần Đặt giá thầu và Công cụ giải thích về dịch vụ đấu giá.
Quảng cáo đối tượng tuỳ chỉnh phải có ad_render_id
để đủ điều kiện được thu thập.
Vui lòng xem AdSelectionManager#persistAdSelectionResult
để biết cách xử lý kết quả của
lựa chọn quảng cáo chạy ở phía máy chủ với blob do API này tạo.
Đầu ra được truyền bởi trình thu nhận, sẽ trả về GetAdSelectionDataOutcome
để chạy thành công hoặc Exception
bao gồm loại
trường hợp ngoại lệ được gửi và thông báo lỗi tương ứng.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để chạy lựa chọn quảng cáo.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu TimeoutException
được gửi, thì lỗi này sẽ xảy ra khi hết thời gian chờ
trong quá trình đặt giá thầu, tính điểm hoặc lựa chọn tổng thể để tìm Quảng cáo giành chiến thắng.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
request |
GetAdSelectionDataRequest : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi thông qua
Executor , giúp bạn dễ dàng kiểm soát luồng nào
đã sử dụng. Để gửi sự kiện thông qua chuỗi chính của
ứng dụng, bạn có thể sử dụng
Context.getMainExecutor() .
Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp. |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
getTestAdSelectionManager
public TestAdSelectionManager getTestAdSelectionManager ()
Giá trị trả về | |
---|---|
TestAdSelectionManager |
Giá trị này không được là null . |
kiên trìAdSelectionResult
public void persistAdSelectionResult (PersistAdSelectionResultRequest request, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Duy trì kết quả lựa chọn quảng cáo từ phía máy chủ. Để biết thêm chi tiết, vui lòng truy cập vào phần Đặt giá thầu và Công cụ giải thích về dịch vụ đấu giá
Vui lòng xem AdSelectionManager#getAdSelectionData
để biết cách tạo blob đã mã hoá để
chạy lựa chọn quảng cáo ở phía máy chủ.
Đầu ra được truyền bởi trình nhận và sẽ trả về một AdSelectionOutcome
để chạy thành công hoặc một Exception
bao gồm loại ngoại lệ được gửi và
thông báo lỗi tương ứng.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để chạy lựa chọn quảng cáo.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu TimeoutException
được gửi, thì lỗi này sẽ xảy ra khi hết thời gian chờ
trong quá trình đặt giá thầu, tính điểm hoặc lựa chọn tổng thể để tìm Quảng cáo giành chiến thắng.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
request |
PersistAdSelectionResultRequest : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi thông qua
Executor , giúp bạn dễ dàng kiểm soát luồng nào
đã sử dụng. Để gửi sự kiện thông qua chuỗi chính của
ứng dụng, bạn có thể sử dụng
Context.getMainExecutor() .
Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp. |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
reportEvent
public void reportEvent (ReportEventRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Thông báo cho dịch vụ rằng có một sự kiện quảng cáo mới cần báo cáo cho quảng cáo do
ad-selection chạy do adSelectionId
xác định. Sự kiện quảng cáo là bất kỳ lần xuất hiện nào
xảy ra với quảng cáo liên kết với adSelectionId
đã cho. Google không đảm bảo về
thời điểm sự kiện quảng cáo được báo cáo. Quá trình báo cáo sự kiện có thể bị chậm trễ và quá trình báo cáo có thể
theo lô.
Khi sử dụng ReportEventRequest#getKey()
, dịch vụ sẽ tìm nạp reportingUri
đã được đăng ký tại registerAdBeacon
. Xem tài liệu của reportImpression(ReportImpressionRequest, Executor, OutcomeReceiver)
để biết thêm thông tin về registerAdBeacon
. Sau đó, dịch vụ
sẽ đính kèm ReportEventRequest#getData()
vào nội dung yêu cầu của yêu cầu POST và
gửi yêu cầu. Phần nội dung của yêu cầu POST sẽ có content-type
là text/plain
và dữ liệu sẽ được truyền trong charset=UTF-8
.
Đầu ra được truyền bởi trình nhận, sẽ trả về một Object
trống cho một
chạy thành công hoặc một Exception
bao gồm loại ngoại lệ được gửi và loại
thông báo lỗi tương ứng.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để báo cáo sự kiện quảng cáo.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Hệ thống sẽ báo cáo sự kiện tối đa một lần là nỗ lực tối đa.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
request |
ReportEventRequest : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null . |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
lượt hiển thị báo cáo
public void reportImpression (ReportImpressionRequest request, Executor executor, OutcomeReceiver<Object, Exception> receiver)
Thông báo cho dịch vụ rằng có một lượt hiển thị mới cần báo cáo cho quảng cáo do
ad-selection chạy do adSelectionId
xác định. Không thể đảm bảo về thời điểm
sẽ được báo cáo. Việc báo cáo lượt hiển thị có thể bị chậm trễ và quá trình báo cáo có thể
theo lô.
Để tính URL báo cáo của người bán giành chiến thắng, dịch vụ sẽ tìm nạp JavaScript của người bán
logic từ AdSelectionConfig#getDecisionLogicUri()
được tìm thấy tại ReportImpressionRequest.getAdSelectionConfig()
. Sau đó, dịch vụ thực thi một trong những
các hàm được tìm thấy trong JS của người bán có tên là reportResult
. Các hàm này cung cấp các tín hiệu trên thiết bị như
cũng như ReportImpressionRequest#getAdSelectionConfig()
làm tham số đầu vào.
Định nghĩa hàm của reportResult
là:
function reportResult(ad_selection_config, render_url, bid, contextual_signals) {
return { 'status': status, 'results': {'signals_for_buyer': signals_for_buyer,
'reporting_url': reporting_url } }; }
Để tính toán URL báo cáo của người mua giành chiến thắng, dịch vụ này tìm nạp URL của người mua giành chiến thắng
Logic JavaScript được tìm nạp qua CustomAudience.getBiddingLogicUri()
của người mua. Sau đó, dịch vụ
thực thi một trong các hàm có trong JS của người mua có tên là reportWin
, cung cấp
tín hiệu trên thiết bị, signals_for_buyer
do reportResult
tính toán và chỉ số cụ thể
từ ReportImpressionRequest#getAdSelectionConfig()
làm tham số đầu vào.
Định nghĩa hàm của reportWin
là:
function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer,
contextual_signals, custom_audience_reporting_signals) { return {'status': 0, 'results':
{'reporting_url': reporting_url } }; }
Ngoài ra, người mua và người bán có tuỳ chọn đăng ký để nhận báo cáo về
sự kiện quảng cáo. Để làm vậy, chúng có thể gọi hàm registerAdBeacon
do nền tảng cung cấp
bên trong reportWin
và reportResult
cho người mua và người bán.
Định nghĩa hàm của registerBeacon
là:
function registerAdBeacon(beacons)
, trong đó beacons
là ký tự của chuỗi
cặp chuỗi
Đối với mỗi sự kiện quảng cáo mà người mua/người bán quan tâm đến báo cáo, họ sẽ thêm cặp event_key
: event_reporting_uri
vào lệnh chính beacons
, trong đó event_key
là giá trị nhận dạng cho sự kiện cụ thể đó. event_key
này phải khớp với
ReportEventRequest#getKey()
khi SDK gọi reportEvent(ReportEventRequest, Executor, OutcomeReceiver)
. Ngoài ra,
mỗi event_reporting_uri
phải được phân tích cú pháp chính xác thành Uri
. Chiến dịch này
sẽ là Uri
được báo cáo khi SDK gọi reportEvent(ReportEventRequest, Executor, OutcomeReceiver)
.
Khi người mua/người bán đã thêm tất cả các cặp mà họ muốn nhận sự kiện, họ có thể
gọi registerAdBeacon(beacons)
, trong đó beacons
là tên của lệnh chính
đã thêm cặp vào.
registerAdBeacon
sẽ gửi TypeError
trong các trường hợp sau:
registerAdBeacon
được gọi nhiều lần. Nếu lỗi này được phát hiện trong reportWin/reportResult, thì tập hợp ghép nối ban đầu sẽ được đăng kýregisterAdBeacon
không có đúng 1 đối số chính tả.- Nội dung của đối số chính tả 1 không phải là toàn bộ các cặp
String: String
.
Đầu ra được receiver
truyền vào và trả về một Object
trống
để chạy thành công hoặc Exception
bao gồm loại ngoại lệ được gửi và
thông báo lỗi tương ứng.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để báo cáo lượt hiển thị.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Lượt hiển thị sẽ được báo cáo tối đa một lần là nỗ lực tối đa.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
request |
ReportImpressionRequest : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null . |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
ChọnQuảng cáo
public void selectAds (AdSelectionFromOutcomesConfig adSelectionFromOutcomesConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Chọn một quảng cáo từ kết quả của các lựa chọn quảng cáo đã chạy trước đây.
Dữ liệu đầu vào adSelectionFromOutcomesConfig
do SDK quảng cáo cung cấp và đối tượng AdSelectionFromOutcomesConfig
được chuyển thông qua lệnh gọi Binder. Vì lý do này,
tổng kích thước của các đối tượng này bị ràng buộc với các giới hạn IPC của Android. Không thể chuyển
AdSelectionFromOutcomesConfig
sẽ gửi một TransactionTooLargeException
.
Đầu ra được truyền bởi trình nhận và sẽ trả về một AdSelectionOutcome
để chạy thành công hoặc một Exception
bao gồm loại ngoại lệ được gửi và
thông báo lỗi tương ứng.
Dữ liệu đầu vào adSelectionFromOutcomesConfig
chứa:
Seller
phải làAdTechIdentifier
đã đăng ký. Nếu không,IllegalStateException
sẽ được gửi.List of ad selection ids
phải tồn tại và xuất phát từ các lệnh gọiselectAds(AdSelectionConfig, Executor, OutcomeReceiver)
đến từ cùng một ứng dụng. Nếu không,IllegalArgumentException
để xác thực dữ liệu đầu vào sẽ tăng trang thông tin vi phạm các mã lựa chọn.Selection logic URI
có thể tuân theo HTTPS hoặc Giao thức tạo sẵn Lựa chọn quảng cáo giản đồ.Nếu URI tuân theo giản đồ HTTPS, thì máy chủ lưu trữ phải khớp với
seller
. Nếu không, hệ thống sẽ gửiIllegalArgumentException
.URI dựng sẵn là một cách thay thế logic dựng sẵn chung cho yêu cầu JavaScript cho
selectOutcome
. URI dựng sẵn cho điểm cuối này sẽ tuân theo;ad-selection-prebuilt://ad-selection-from-outcomes/<name>?<script-generation-parameters>
Nếu bạn truyền một URI dựng sẵn không được hỗ trợ hoặc tính năng URI dựng sẵn bị tắt thì
IllegalArgumentException
sẽ được gửi.Hãy xem
AdSelectionFromOutcomesConfig.Builder#setSelectionLogicUri
để biết các địa chỉ được hỗ trợ<name>
và bắt buộc phải có<script-generation-parameters>
.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để chạy lựa chọn quảng cáo.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu TimeoutException
được gửi, thì lỗi này sẽ xảy ra khi hết thời gian chờ
trong quá trình đặt giá thầu, tính điểm hoặc lựa chọn tổng thể để tìm Quảng cáo giành chiến thắng.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
adSelectionFromOutcomesConfig |
AdSelectionFromOutcomesConfig : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi thông qua
Executor , giúp bạn dễ dàng kiểm soát luồng nào
đã sử dụng. Để gửi sự kiện thông qua chuỗi chính của
ứng dụng, bạn có thể sử dụng
Context.getMainExecutor() .
Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp. |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
ChọnQuảng cáo
public void selectAds (AdSelectionConfig adSelectionConfig, Executor executor, OutcomeReceiver<AdSelectionOutcome, Exception> receiver)
Chạy quy trình lựa chọn quảng cáo trên thiết bị để chọn quảng cáo tái tiếp thị cho phương thức gọi .
Dữ liệu đầu vào adSelectionConfig
do SDK quảng cáo cung cấp và đối tượng AdSelectionConfig
được chuyển thông qua lệnh gọi Binder. Vì lý do này, tổng kích thước
trong số các đối tượng này bị ràng buộc với các giới hạn IPC của Android. Nếu không chuyển được AdSelectionConfig
, bạn sẽ gửi một TransactionTooLargeException
.
Dữ liệu đầu vào adSelectionConfig
chứa Decision Logic Uri
có thể theo sau
giản đồ HTTPS hoặc giản đồ Lựa chọn quảng cáo được tạo sẵn.
Nếu URI tuân theo giản đồ HTTPS, thì máy chủ lưu trữ phải khớp với seller
. Nếu không,
Hệ thống sẽ gửi IllegalArgumentException
.
URI dựng sẵn là một cách thay thế logic dựng sẵn chung cho yêu cầu
JavaScript cho scoreAds
. URI dựng sẵn cho điểm cuối này sẽ tuân theo;
ad-selection-prebuilt://ad-selection/<name>?<script-generation-parameters>
Nếu bạn truyền một URI dựng sẵn không được hỗ trợ hoặc tính năng URI dựng sẵn bị tắt
thì IllegalArgumentException
sẽ được gửi.
Hãy xem AdSelectionConfig.Builder#setDecisionLogicUri
để biết <name>
được hỗ trợ và
bắt buộc phải có <script-generation-parameters>
.
Đầu ra được truyền bởi trình nhận và sẽ trả về một AdSelectionOutcome
để chạy thành công hoặc một Exception
bao gồm loại ngoại lệ được gửi và
thông báo lỗi tương ứng.
Nếu IllegalArgumentException
được gửi, thì đó là do đối số đầu vào không hợp lệ
API nhận được để chạy lựa chọn quảng cáo.
Nếu IllegalStateException
nhận được thông báo lỗi "Không thành công của AdSelection
dịch vụ.", vấn đề này là do lỗi nội bộ của dịch vụ lựa chọn quảng cáo.
Nếu TimeoutException
được gửi, thì lỗi này sẽ xảy ra khi hết thời gian chờ
trong quá trình đặt giá thầu, tính điểm hoặc lựa chọn tổng thể để tìm Quảng cáo giành chiến thắng.
Nếu LimitExceededException
được gửi, thì lỗi này sẽ xảy ra khi gói gọi
vượt quá giới hạn tốc độ cho phép và được điều tiết.
Nếu SecurityException
được gửi, thì lỗi này sẽ xảy ra khi phương thức gọi không được uỷ quyền
hoặc chưa yêu cầu quyền.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
adSelectionConfig |
AdSelectionConfig : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi thông qua
Executor , giúp bạn dễ dàng kiểm soát luồng nào
đã sử dụng. Để gửi sự kiện thông qua chuỗi chính của
ứng dụng, bạn có thể sử dụng
Context.getMainExecutor() .
Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp. |
receiver |
OutcomeReceiver : Giá trị này không được là null . |
updateAdCounterHistogram
public void updateAdCounterHistogram (UpdateAdCounterHistogramRequest updateAdCounterHistogramRequest, Executor executor, OutcomeReceiver<Object, Exception> outcomeReceiver)
Cập nhật biểu đồ bộ đếm cho một quảng cáo đã được chọn trước đó bằng lệnh gọi đến selectAds(android.adservices.adselection.AdSelectionConfig, java.util.concurrent.Executor, android.os.OutcomeReceiver)
.
Biểu đồ bộ đếm được dùng trong quá trình lựa chọn quảng cáo để thông báo cho tính năng lọc giới hạn tần suất quảng cáo đề xuất, trong đó quảng cáo có giới hạn tần suất đáp ứng hoặc vượt quá sẽ bị xóa khỏi đặt giá thầu trong quá trình lựa chọn quảng cáo.
Bạn chỉ có thể cập nhật biểu đồ bộ đếm cho các quảng cáo được chỉ định bởi adSelectionId
nhất định được trả về bằng một lệnh gọi lựa chọn quảng cáo FLEDGE gần đây từ cùng một ứng dụng gọi.
SecurityException
được trả về qua outcomeReceiver
nếu:
- ứng dụng chưa khai báo đúng quyền trong tệp kê khai, hoặc
- ứng dụng hoặc pháp nhân do
callerAdTechIdentifier
xác định là không được uỷ quyền để sử dụng API.
IllegalStateException
được trả về qua outcomeReceiver
nếu lệnh gọi có
không đến từ một ứng dụng
có hoạt động trên nền trước.
LimitExceededException
được trả về qua outcomeReceiver
nếu lệnh gọi
vượt quá hạn chế điều tiết API của ứng dụng gọi.
Trong tất cả các trường hợp lỗi khác, outcomeReceiver
sẽ trả về một Object
trống. Xin lưu ý rằng để bảo vệ quyền riêng tư của người dùng, lỗi nội bộ sẽ không được gửi lại thông qua
ngoại lệ.
Cần có AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
Tham số | |
---|---|
updateAdCounterHistogramRequest |
UpdateAdCounterHistogramRequest : Giá trị này không được là null . |
executor |
Executor : Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi thông qua
Executor , giúp bạn dễ dàng kiểm soát luồng nào
đã sử dụng. Để gửi sự kiện thông qua chuỗi chính của
ứng dụng, bạn có thể sử dụng
Context.getMainExecutor() .
Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp. |
outcomeReceiver |
OutcomeReceiver : Giá trị này không được là null . |