diff options
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.java | 162 |
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()); + } } |