summaryrefslogtreecommitdiff
path: root/adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java')
-rw-r--r--adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java162
1 files changed, 145 insertions, 17 deletions
diff --git a/adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java b/adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java
index 937ed6ba2f..2454878e52 100644
--- a/adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java
+++ b/adservices/service-core/java/com/android/adservices/service/stats/StatsdAdServicesLogger.java
@@ -17,7 +17,16 @@
package com.android.adservices.service.stats;
import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_API_CALLED;
-import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_API_CALLED__API_CLASS__FLEDGE;
+import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_API_CALLED__API_CLASS__UNKNOWN;
+import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_GET_TOPICS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.BACKGROUND_FETCH_PROCESS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.RUN_AD_BIDDING_PROCESS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.RUN_AD_SCORING_PROCESS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.RUN_AD_SELECTION_PROCESS_REPORTED;
+import static com.android.adservices.service.stats.AdServicesStatsLog.UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED;
import javax.annotation.concurrent.ThreadSafe;
@@ -39,6 +48,7 @@ public class StatsdAdServicesLogger implements AdServicesLogger {
}
return sStatsdAdServicesLogger;
}
+
/** log method for measurement reporting. */
public void logMeasurementReports(MeasurementReportsStats measurementReportsStats) {
AdServicesStatsLog.write(
@@ -61,25 +71,19 @@ public class StatsdAdServicesLogger implements AdServicesLogger {
/** log method for UI stats. */
public void logUIStats(UIStats uiStats) {
- AdServicesStatsLog.write(
- uiStats.getCode(),
- uiStats.getRegion(),
- uiStats.getAction());
+ AdServicesStatsLog.write(uiStats.getCode(), uiStats.getRegion(), uiStats.getAction());
}
@Override
- public void logFledgeApiCallStats(int apiName, int resultCode) {
- // TODO(b/233628316): Implement latency measurement
- logApiCallStats(
- new ApiCallStats.Builder()
- .setCode(AD_SERVICES_API_CALLED)
- .setApiClass(AD_SERVICES_API_CALLED__API_CLASS__FLEDGE)
- .setApiName(apiName)
- .setResultCode(resultCode)
- // TODO(b/233629557): Implement app/SDK reporting
- .setSdkPackageName("")
- .setAppPackageName("")
- .build());
+ public void logFledgeApiCallStats(int apiName, int resultCode, int latencyMs) {
+ AdServicesStatsLog.write(
+ AD_SERVICES_API_CALLED,
+ AD_SERVICES_API_CALLED__API_CLASS__UNKNOWN,
+ apiName,
+ "",
+ "",
+ latencyMs,
+ resultCode);
}
@Override
@@ -91,4 +95,128 @@ public class StatsdAdServicesLogger implements AdServicesLogger {
stats.getResponseSize(),
stats.getAdTechDomain());
}
+
+ @Override
+ public void logRunAdSelectionProcessReportedStats(RunAdSelectionProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ RUN_AD_SELECTION_PROCESS_REPORTED,
+ stats.getIsRemarketingAdsWon(),
+ stats.getDBAdSelectionSizeInBytes(),
+ stats.getPersistAdSelectionLatencyInMillis(),
+ stats.getPersistAdSelectionResultCode(),
+ stats.getRunAdSelectionLatencyInMillis(),
+ stats.getRunAdSelectionResultCode());
+ }
+
+ @Override
+ public void logRunAdBiddingProcessReportedStats(RunAdBiddingProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ RUN_AD_BIDDING_PROCESS_REPORTED,
+ stats.getGetBuyersCustomAudienceLatencyInMills(),
+ stats.getGetBuyersCustomAudienceResultCode(),
+ stats.getNumBuyersRequested(),
+ stats.getNumBuyersFetched(),
+ stats.getNumOfAdsEnteringBidding(),
+ stats.getNumOfCasEnteringBidding(),
+ stats.getNumOfCasPostBidding(),
+ stats.getRatioOfCasSelectingRmktAds(),
+ stats.getRunAdBiddingLatencyInMillis(),
+ stats.getRunAdBiddingResultCode(),
+ stats.getTotalAdBiddingStageLatencyInMillis());
+ }
+
+ @Override
+ public void logRunAdScoringProcessReportedStats(RunAdScoringProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ RUN_AD_SCORING_PROCESS_REPORTED,
+ stats.getGetAdSelectionLogicLatencyInMillis(),
+ stats.getGetAdSelectionLogicResultCode(),
+ stats.getGetAdSelectionLogicScriptType(),
+ stats.getFetchedAdSelectionLogicScriptSizeInBytes(),
+ stats.getGetTrustedScoringSignalsLatencyInMillis(),
+ stats.getGetTrustedScoringSignalsResultCode(),
+ stats.getFetchedTrustedScoringSignalsDataSizeInBytes(),
+ stats.getScoreAdsLatencyInMillis(),
+ stats.getGetAdScoresLatencyInMillis(),
+ stats.getGetAdScoresResultCode(),
+ stats.getNumOfCasEnteringScoring(),
+ stats.getNumOfRemarketingAdsEnteringScoring(),
+ stats.getNumOfContextualAdsEnteringScoring(),
+ stats.getRunAdScoringLatencyInMillis(),
+ stats.getRunAdScoringResultCode());
+ }
+
+ @Override
+ public void logRunAdBiddingPerCAProcessReportedStats(
+ RunAdBiddingPerCAProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED,
+ stats.getNumOfAdsForBidding(),
+ stats.getRunAdBiddingPerCaLatencyInMillis(),
+ stats.getRunAdBiddingPerCaResultCode(),
+ stats.getGetBuyerDecisionLogicLatencyInMillis(),
+ stats.getGetBuyerDecisionLogicResultCode(),
+ stats.getBuyerDecisionLogicScriptType(),
+ stats.getFetchedBuyerDecisionLogicScriptSizeInBytes(),
+ stats.getNumOfKeysOfTrustedBiddingSignals(),
+ stats.getFetchedTrustedBiddingSignalsDataSizeInBytes(),
+ stats.getGetTrustedBiddingSignalsLatencyInMillis(),
+ stats.getGetTrustedBiddingSignalsResultCode(),
+ stats.getGenerateBidsLatencyInMillis(),
+ stats.getRunBiddingLatencyInMillis(),
+ stats.getRunBiddingResultCode());
+ }
+
+ @Override
+ public void logBackgroundFetchProcessReportedStats(BackgroundFetchProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ BACKGROUND_FETCH_PROCESS_REPORTED,
+ stats.getLatencyInMillis(),
+ stats.getNumOfEligibleToUpdateCas(),
+ stats.getResultCode());
+ }
+
+ @Override
+ public void logUpdateCustomAudienceProcessReportedStats(
+ UpdateCustomAudienceProcessReportedStats stats) {
+ AdServicesStatsLog.write(
+ UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED,
+ stats.getLatencyInMills(),
+ stats.getResultCode(),
+ stats.getDataSizeOfAdsInBytes(),
+ stats.getNumOfAds());
+ }
+
+ @Override
+ public void logGetTopicsReportedStats(GetTopicsReportedStats stats) {
+ AdServicesStatsLog.write(
+ AD_SERVICES_GET_TOPICS_REPORTED,
+ new int[] {}, // TODO(b/256649873): Log empty topic ids until the long term
+ // solution.
+ stats.getDuplicateTopicCount(),
+ stats.getFilteredBlockedTopicCount(),
+ stats.getTopicIdsCount());
+ }
+
+ @Override
+ public void logEpochComputationGetTopTopicsStats(EpochComputationGetTopTopicsStats stats) {
+ AdServicesStatsLog.write(
+ AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED,
+ stats.getTopTopicCount(),
+ stats.getPaddedRandomTopicsCount(),
+ stats.getAppsConsideredCount(),
+ stats.getSdksConsideredCount());
+ }
+
+ @Override
+ public void logEpochComputationClassifierStats(EpochComputationClassifierStats stats) {
+ AdServicesStatsLog.write(
+ AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED,
+ stats.getTopicIds().stream().mapToInt(Integer::intValue).toArray(),
+ stats.getBuildId(),
+ stats.getAssetVersion(),
+ stats.getClassifierType(),
+ stats.getOnDeviceClassifierStatus(),
+ stats.getPrecomputedClassifierStatus());
+ }
}