• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.adservices.service.stats;
18 
19 import android.annotation.Nullable;
20 
21 import com.android.adservices.service.common.AppManifestConfigCall;
22 import com.android.adservices.service.common.AppManifestConfigHelper;
23 import com.android.adservices.service.stats.kanon.KAnonBackgroundJobStatusStats;
24 import com.android.adservices.service.stats.kanon.KAnonGetChallengeStatusStats;
25 import com.android.adservices.service.stats.kanon.KAnonImmediateSignJoinStatusStats;
26 import com.android.adservices.service.stats.kanon.KAnonInitializeStatusStats;
27 import com.android.adservices.service.stats.kanon.KAnonJoinStatusStats;
28 import com.android.adservices.service.stats.kanon.KAnonSignStatusStats;
29 import com.android.adservices.service.stats.pas.EncodingFetchStats;
30 import com.android.adservices.service.stats.pas.EncodingJobRunStats;
31 import com.android.adservices.service.stats.pas.EncodingJsExecutionStats;
32 import com.android.adservices.service.stats.pas.PersistAdSelectionResultCalledStats;
33 import com.android.adservices.service.stats.pas.UpdateSignalsApiCalledStats;
34 import com.android.adservices.service.stats.pas.UpdateSignalsProcessReportedStats;
35 
36 /** Interface for Adservices logger. */
37 public interface AdServicesLogger {
38     /** log method for MeasurementReportsStats. */
logMeasurementReports( MeasurementReportsStats measurementReportsStats, @Nullable String enrollmentId)39     void logMeasurementReports(
40             MeasurementReportsStats measurementReportsStats, @Nullable String enrollmentId);
41 
42     /** log ApiCallStats which has stats about the API call such as the status. */
logApiCallStats(ApiCallStats apiCallStats)43     void logApiCallStats(ApiCallStats apiCallStats);
44 
45     /** log UIStats which has stats about UI events. */
logUIStats(UIStats uiStats)46     void logUIStats(UIStats uiStats);
47 
48     /**
49      * Logs API call stats specific to the FLEDGE APIs as an {@link ApiCallStats} object with app
50      * package name, if enabled.
51      */
logFledgeApiCallStats(int apiName, String appPackageName, int resultCode, int latencyMs)52     void logFledgeApiCallStats(int apiName, String appPackageName, int resultCode, int latencyMs);
53 
54     /** Logs API call stats specific to the FLEDGE APIs as an {@link ApiCallStats} object. */
logFledgeApiCallStats(int apiName, int resultCode, int latencyMs)55     void logFledgeApiCallStats(int apiName, int resultCode, int latencyMs);
56 
57     /** Logs measurement registrations response size. */
logMeasurementRegistrationsResponseSize( MeasurementRegistrationResponseStats stats, @Nullable String enrollmentId)58     void logMeasurementRegistrationsResponseSize(
59             MeasurementRegistrationResponseStats stats, @Nullable String enrollmentId);
60 
61     /**
62      * Logs the runAdSelection process stats as an {@link RunAdSelectionProcessReportedStats}
63      * object.
64      */
logRunAdSelectionProcessReportedStats(RunAdSelectionProcessReportedStats stats)65     void logRunAdSelectionProcessReportedStats(RunAdSelectionProcessReportedStats stats);
66 
67     /**
68      * Logs the runAdBidding process stats as an {@link RunAdBiddingProcessReportedStats} object.
69      */
logRunAdBiddingProcessReportedStats(RunAdBiddingProcessReportedStats stats)70     void logRunAdBiddingProcessReportedStats(RunAdBiddingProcessReportedStats stats);
71 
72     /**
73      * Logs the runAdScoring process stats as an {@link RunAdScoringProcessReportedStats} object.
74      */
logRunAdScoringProcessReportedStats(RunAdScoringProcessReportedStats stats)75     void logRunAdScoringProcessReportedStats(RunAdScoringProcessReportedStats stats);
76 
77     /**
78      * Logs the runAdBiddingPerCA process stats as an {@link RunAdBiddingPerCAProcessReportedStats}
79      * object.
80      */
logRunAdBiddingPerCAProcessReportedStats(RunAdBiddingPerCAProcessReportedStats stats)81     void logRunAdBiddingPerCAProcessReportedStats(RunAdBiddingPerCAProcessReportedStats stats);
82 
83     /**
84      * Logs the backgroundFetch process stats as an {@link BackgroundFetchProcessReportedStats}
85      * object.
86      */
logBackgroundFetchProcessReportedStats(BackgroundFetchProcessReportedStats stats)87     void logBackgroundFetchProcessReportedStats(BackgroundFetchProcessReportedStats stats);
88 
89     /**
90      * Logs the updateCustomAudience process stats as an {@link
91      * com.android.adservices.service.stats.UpdateCustomAudienceProcessReportedStats} objects.
92      */
logUpdateCustomAudienceProcessReportedStats( UpdateCustomAudienceProcessReportedStats stats)93     void logUpdateCustomAudienceProcessReportedStats(
94             UpdateCustomAudienceProcessReportedStats stats);
95 
96     /**
97      * Logs GetTopics API call stats as an {@link
98      * com.android.adservices.service.stats.GetTopicsReportedStats} object.
99      */
logGetTopicsReportedStats(GetTopicsReportedStats stats)100     void logGetTopicsReportedStats(GetTopicsReportedStats stats);
101 
102     /**
103      * Logs stats for getTopTopics as an {@link
104      * com.android.adservices.service.stats.EpochComputationGetTopTopicsStats} object.
105      */
logEpochComputationGetTopTopicsStats(EpochComputationGetTopTopicsStats stats)106     void logEpochComputationGetTopTopicsStats(EpochComputationGetTopTopicsStats stats);
107 
108     /**
109      * Logs classifier stats during epoch computation as an {@link
110      * com.android.adservices.service.stats.EpochComputationClassifierStats} object.
111      */
logEpochComputationClassifierStats(EpochComputationClassifierStats stats)112     void logEpochComputationClassifierStats(EpochComputationClassifierStats stats);
113 
114     /** Logs measurement debug keys stats. */
logMeasurementDebugKeysMatch(MsmtDebugKeysMatchStats stats)115     void logMeasurementDebugKeysMatch(MsmtDebugKeysMatchStats stats);
116 
117     /** Logs measurement AdID match for debug keys stats. */
logMeasurementAdIdMatchForDebugKeysStats(MsmtAdIdMatchForDebugKeysStats stats)118     void logMeasurementAdIdMatchForDebugKeysStats(MsmtAdIdMatchForDebugKeysStats stats);
119 
120     /** Logs measurement attribution stats. */
logMeasurementAttributionStats( MeasurementAttributionStats measurementAttributionStats, @Nullable String enrollmentId)121     void logMeasurementAttributionStats(
122             MeasurementAttributionStats measurementAttributionStats, @Nullable String enrollmentId);
123 
124     /** Logs measurement wipeout stats. */
logMeasurementWipeoutStats(MeasurementWipeoutStats measurementWipeoutStats)125     void logMeasurementWipeoutStats(MeasurementWipeoutStats measurementWipeoutStats);
126 
127     /** Logs measurement delayed source registration stats. */
logMeasurementDelayedSourceRegistrationStats( MeasurementDelayedSourceRegistrationStats measurementDelayedSourceRegistrationStats)128     void logMeasurementDelayedSourceRegistrationStats(
129             MeasurementDelayedSourceRegistrationStats measurementDelayedSourceRegistrationStats);
130 
131     /** Logs measurement click verification stats. */
logMeasurementClickVerificationStats( MeasurementClickVerificationStats measurementClickVerificationStats)132     void logMeasurementClickVerificationStats(
133             MeasurementClickVerificationStats measurementClickVerificationStats);
134 
135     /** Logs measurement ODP registrations. */
logMeasurementOdpRegistrations(MeasurementOdpRegistrationStats stats)136     void logMeasurementOdpRegistrations(MeasurementOdpRegistrationStats stats);
137 
138     /** Logs measurement ODP API calls. */
logMeasurementOdpApiCall(MeasurementOdpApiCallStats stats)139     void logMeasurementOdpApiCall(MeasurementOdpApiCallStats stats);
140 
141     /** Logs enrollment data stats. */
logEnrollmentDataStats(int mType, boolean mIsSuccessful, int mBuildId)142     void logEnrollmentDataStats(int mType, boolean mIsSuccessful, int mBuildId);
143 
144     /** Logs enrollment matching stats. */
logEnrollmentMatchStats(boolean mIsSuccessful, int mBuildId)145     void logEnrollmentMatchStats(boolean mIsSuccessful, int mBuildId);
146 
147     /** Logs enrollment file download stats. */
logEnrollmentFileDownloadStats(boolean mIsSuccessful, int mBuildId)148     void logEnrollmentFileDownloadStats(boolean mIsSuccessful, int mBuildId);
149 
150     /** Logs enrollment failure stats. */
logEnrollmentFailedStats( int mBuildId, int mDataFileGroupStatus, int mEnrollmentRecordCountInTable, String mQueryParameter, int mErrorCause)151     void logEnrollmentFailedStats(
152             int mBuildId,
153             int mDataFileGroupStatus,
154             int mEnrollmentRecordCountInTable,
155             String mQueryParameter,
156             int mErrorCause);
157 
158     /** Logs enrollment transaction stats. */
logEnrollmentTransactionStats(AdServicesEnrollmentTransactionStats stats)159     void logEnrollmentTransactionStats(AdServicesEnrollmentTransactionStats stats);
160 
161     /** Logs encryption key fetch stats. */
logEncryptionKeyFetchedStats(AdServicesEncryptionKeyFetchedStats stats)162     void logEncryptionKeyFetchedStats(AdServicesEncryptionKeyFetchedStats stats);
163 
164     /** Logs encryption key datastore transaction ended stats. */
logEncryptionKeyDbTransactionEndedStats( AdServicesEncryptionKeyDbTransactionEndedStats stats)165     void logEncryptionKeyDbTransactionEndedStats(
166             AdServicesEncryptionKeyDbTransactionEndedStats stats);
167 
168     /** Logs destinationRegisteredBeacon reported stats. */
logDestinationRegisteredBeaconsReportedStats( DestinationRegisteredBeaconsReportedStats stats)169     void logDestinationRegisteredBeaconsReportedStats(
170             DestinationRegisteredBeaconsReportedStats stats);
171 
172     /** Logs beacon level reporting for ReportInteraction API called stats. */
logReportInteractionApiCalledStats(ReportInteractionApiCalledStats stats)173     void logReportInteractionApiCalledStats(ReportInteractionApiCalledStats stats);
174 
175     /** Logs beacon level reporting for clearing interaction reporting table stats. */
logInteractionReportingTableClearedStats(InteractionReportingTableClearedStats stats)176     void logInteractionReportingTableClearedStats(InteractionReportingTableClearedStats stats);
177 
178     /** Logs call to {@link AppManifestConfigHelper} to check if app is allowed to access an API. */
logAppManifestConfigCall(AppManifestConfigCall call)179     void logAppManifestConfigCall(AppManifestConfigCall call);
180 
181     /** Logs status for {@link com.android.adservices.service.kanon.KAnonSignJoinManager}. */
logKAnonSignJoinStatus()182     void logKAnonSignJoinStatus();
183 
184     /**
185      * Logs status for initialize method for {@link
186      * com.android.adservices.service.kanon.KAnonCaller}.
187      */
logKAnonInitializeStats(KAnonInitializeStatusStats kAnonInitializeStatusStats)188     void logKAnonInitializeStats(KAnonInitializeStatusStats kAnonInitializeStatusStats);
189 
190     /** Logs status for sign method for {@link com.android.adservices.service.kanon.KAnonCaller */
logKAnonSignStats(KAnonSignStatusStats kAnonSignStatusStats)191     void logKAnonSignStats(KAnonSignStatusStats kAnonSignStatusStats);
192 
193     /** Logs status for join method for {@link com.android.adservices.service.kanon.KAnonCaller} */
logKAnonJoinStats(KAnonJoinStatusStats kAnonJoinStatusStats)194     void logKAnonJoinStats(KAnonJoinStatusStats kAnonJoinStatusStats);
195 
196     /**
197      * Logs status for {@link
198      * com.android.adservices.service.kanon.KAnonSignJoinBackgroundJobService}
199      */
logKAnonBackgroundJobStats(KAnonBackgroundJobStatusStats kAnonBackgroundJobStatusStats)200     void logKAnonBackgroundJobStats(KAnonBackgroundJobStatusStats kAnonBackgroundJobStatusStats);
201 
202     /**
203      * Logs status for immediate sign join in {@link
204      * com.android.adservices.service.kanon.KAnonSignJoinManager}
205      */
logKAnonImmediateSignJoinStats( KAnonImmediateSignJoinStatusStats kAnonImmediateSignJoinStatusStats)206     void logKAnonImmediateSignJoinStats(
207             KAnonImmediateSignJoinStatusStats kAnonImmediateSignJoinStatusStats);
208 
209     /** Logs status for get challenge method during kAnon sign join process. */
logKAnonGetChallengeJobStats(KAnonGetChallengeStatusStats kAnonGetChallengeStatusStats)210     void logKAnonGetChallengeJobStats(KAnonGetChallengeStatusStats kAnonGetChallengeStatusStats);
211 
212     /** Logs stats for GetAdSelectionDataApiCalled */
logGetAdSelectionDataApiCalledStats(GetAdSelectionDataApiCalledStats stats)213     void logGetAdSelectionDataApiCalledStats(GetAdSelectionDataApiCalledStats stats);
214 
215     /** Logs stats for GetAdSelectionDataBuyerInputGenerated */
logGetAdSelectionDataBuyerInputGeneratedStats( GetAdSelectionDataBuyerInputGeneratedStats stats)216     void logGetAdSelectionDataBuyerInputGeneratedStats(
217             GetAdSelectionDataBuyerInputGeneratedStats stats);
218 
219     /** Logs AdFilteringProcessJoinCAReported stats. */
logAdFilteringProcessJoinCAReportedStats(AdFilteringProcessJoinCAReportedStats stats)220     void logAdFilteringProcessJoinCAReportedStats(AdFilteringProcessJoinCAReportedStats stats);
221 
222     /** Logs AdFilteringProcessAdSelectionReported stats. */
logAdFilteringProcessAdSelectionReportedStats( AdFilteringProcessAdSelectionReportedStats stats)223     void logAdFilteringProcessAdSelectionReportedStats(
224             AdFilteringProcessAdSelectionReportedStats stats);
225 
226     /** Logs AdCounterHistogramUpdaterReported stats. */
logAdCounterHistogramUpdaterReportedStats(AdCounterHistogramUpdaterReportedStats stats)227     void logAdCounterHistogramUpdaterReportedStats(AdCounterHistogramUpdaterReportedStats stats);
228 
229     /** Logs TopicsEncryptionEpochComputationReported stats. */
logTopicsEncryptionEpochComputationReportedStats( TopicsEncryptionEpochComputationReportedStats stats)230     void logTopicsEncryptionEpochComputationReportedStats(
231             TopicsEncryptionEpochComputationReportedStats stats);
232 
233     /** Logs TopicsEncryptionGetTopicsReported stats */
logTopicsEncryptionGetTopicsReportedStats( TopicsEncryptionGetTopicsReportedStats stats)234     void logTopicsEncryptionGetTopicsReportedStats(
235             TopicsEncryptionGetTopicsReportedStats stats);
236 
237     /** Logs stats for shell command indicating success/failure, latency. */
logShellCommandStats(ShellCommandStats stats)238     void logShellCommandStats(ShellCommandStats stats);
239 
240     /**
241      * Logs stats for signature verification for {@link
242      * android.adservices.adselection.SignedContextualAds} during on-device ad selection auction
243      */
logSignatureVerificationStats(SignatureVerificationStats stats)244     void logSignatureVerificationStats(SignatureVerificationStats stats);
245 
246     /** Logs stats for EncodingFetchStats */
logEncodingJsFetchStats(EncodingFetchStats stats)247     void logEncodingJsFetchStats(EncodingFetchStats stats);
248 
249     /** Logs stats for ServerAuctionBackgroundKeyFetchScheduled */
logServerAuctionBackgroundKeyFetchScheduledStats( ServerAuctionBackgroundKeyFetchScheduledStats stats)250     void logServerAuctionBackgroundKeyFetchScheduledStats(
251             ServerAuctionBackgroundKeyFetchScheduledStats stats);
252 
253     /** Logs stats for UpdateSignalsApiCalledStats */
logEncodingJsExecutionStats(EncodingJsExecutionStats stats)254     void logEncodingJsExecutionStats(EncodingJsExecutionStats stats);
255 
256     /** Logs stats for ServerAuctionKeyFetchCalled */
logServerAuctionKeyFetchCalledStats(ServerAuctionKeyFetchCalledStats stats)257     void logServerAuctionKeyFetchCalledStats(ServerAuctionKeyFetchCalledStats stats);
258 
259     /** Logs stats for EncodingJobRunStats */
logEncodingJobRunStats(EncodingJobRunStats stats)260     void logEncodingJobRunStats(EncodingJobRunStats stats);
261 
262     /** Logs stats for UpdateSignalsProcessReportedStats. */
logUpdateSignalsProcessReportedStats(UpdateSignalsProcessReportedStats stats)263     void logUpdateSignalsProcessReportedStats(UpdateSignalsProcessReportedStats stats);
264 
265     /** Logs stats for PersistAdSelectionResultCalledStats */
logPersistAdSelectionResultCalledStats(PersistAdSelectionResultCalledStats stats)266     void logPersistAdSelectionResultCalledStats(PersistAdSelectionResultCalledStats stats);
267 
268     /** Logs stats for SelectAdsFromOutcomesApiCalledStats */
logSelectAdsFromOutcomesApiCalledStats(SelectAdsFromOutcomesApiCalledStats stats)269     void logSelectAdsFromOutcomesApiCalledStats(SelectAdsFromOutcomesApiCalledStats stats);
270 
271     /** Logs stats for ReportImpressionApiCalledStats */
logReportImpressionApiCalledStats(ReportImpressionApiCalledStats stats)272     void logReportImpressionApiCalledStats(ReportImpressionApiCalledStats stats);
273 
274     /** Logs stats for UpdateSignalsApiCalledStats */
logUpdateSignalsApiCalledStats(UpdateSignalsApiCalledStats stats)275     void logUpdateSignalsApiCalledStats(UpdateSignalsApiCalledStats stats);
276 
277     /** Logs stats for TopicsScheduleEpochJobSettingReportedStats */
logTopicsScheduleEpochJobSettingReportedStats( TopicsScheduleEpochJobSettingReportedStats stats)278     void logTopicsScheduleEpochJobSettingReportedStats(
279             TopicsScheduleEpochJobSettingReportedStats stats);
280 
281     /** Logs stats for ScheduledCustomAudienceUpdatePerformedStats */
logScheduledCustomAudienceUpdatePerformedStats( ScheduledCustomAudienceUpdatePerformedStats stats)282     void logScheduledCustomAudienceUpdatePerformedStats(
283             ScheduledCustomAudienceUpdatePerformedStats stats);
284 
285     /** Logs stats for ScheduledCustomAudienceUpdateBackgroundJobStats */
logScheduledCustomAudienceUpdateBackgroundJobStats( ScheduledCustomAudienceUpdateBackgroundJobStats stats)286     void logScheduledCustomAudienceUpdateBackgroundJobStats(
287             ScheduledCustomAudienceUpdateBackgroundJobStats stats);
288 
289     /** Logs stats for ScheduledCustomAudienceUpdateScheduleAttemptedStats */
logScheduledCustomAudienceUpdateScheduleAttemptedStats( ScheduledCustomAudienceUpdateScheduleAttemptedStats stats)290     void logScheduledCustomAudienceUpdateScheduleAttemptedStats(
291             ScheduledCustomAudienceUpdateScheduleAttemptedStats stats);
292 
293     /** Logs stats for ScheduledCustomAudienceUpdatePerformedFailure */
logScheduledCustomAudienceUpdatePerformedFailureStats( ScheduledCustomAudienceUpdatePerformedFailureStats stats)294     void logScheduledCustomAudienceUpdatePerformedFailureStats(
295             ScheduledCustomAudienceUpdatePerformedFailureStats stats);
296 
297     /** Logs stats for NumberOfTypesOfReportingUrlsReceivedStats */
logNumberOfTypesOfReportingUrlsReceivedStats( NumberOfTypesOfReportingUrlsReceivedStats stats)298     void logNumberOfTypesOfReportingUrlsReceivedStats(
299             NumberOfTypesOfReportingUrlsReceivedStats stats);
300 
301     /** Logs stats for ReportingWithDestinationPerformedStats */
logReportingWithDestinationPerformedStats(ReportingWithDestinationPerformedStats stats)302     void logReportingWithDestinationPerformedStats(ReportingWithDestinationPerformedStats stats);
303 }
304