// niantic_platform_analytics_telemetry.proto // Reconstructed from com.nianticlabs.pokemongo 0.431.0 (versionCode 2026092402, arm64-v8a). // Field numbers were recovered from the compiled parsers; names come from the C# types, // so some may differ from Niantic's originals. Study material, not an official API. syntax = "proto3"; package niantic.platform.analytics.telemetry; message ASPermissionFlowTelemetry { bool initial_prompt = 1; repeated ASServiceTelemetryIds service_telemetry = 2; ASPermissionTelemetryIds permission_telemetry = 3; ASPermissionStatusTelemetryIds permission_status_telemetry = 4; bool success = 5; } enum ASPermissionStatusTelemetryIds { AS_PERMISSION_STATUS_TELEMETRY_IDS_UNKNOWN = 0; AS_PERMISSION_STATUS_TELEMETRY_IDS_REQUESTED = 1; AS_PERMISSION_STATUS_TELEMETRY_IDS_GRANTED_IN_USE = 2; AS_PERMISSION_STATUS_TELEMETRY_IDS_GRANTED_ALWAYS = 3; AS_PERMISSION_STATUS_TELEMETRY_IDS_DENIED = 4; } enum ASPermissionTelemetryIds { AS_PERMISSION_TELEMETRY_IDS_UNSET_PERMISSION = 0; AS_PERMISSION_TELEMETRY_IDS_LOCATION = 1; AS_PERMISSION_TELEMETRY_IDS_BACKGROUND_LOCATION = 2; AS_PERMISSION_TELEMETRY_IDS_ACTIVITY = 3; AS_PERMISSION_TELEMETRY_IDS_PRECISE_LOCATION = 4; AS_PERMISSION_TELEMETRY_IDS_FITNESS_PERMISSION = 5; } enum ASServiceTelemetryIds { AS_SERVICE_TELEMETRY_IDS_UNSET_SERVICE = 0; AS_SERVICE_TELEMETRY_IDS_FITNESS = 1; AS_SERVICE_TELEMETRY_IDS_AWARENESS = 2; AS_SERVICE_TELEMETRY_IDS_BREADCRUMB = 3; } message AgeGateResult { string method_name = 1; } message AgeGateStartup { string method_name = 1; } message ApprovedCommonTelemetryProto { ServerRecordMetadata server_data = 1002; ClientTelemetryCommonFilterProto common_filters = 1003; oneof telemetry_data { CommonTelemetryBootTime boot_time = 1; CommonTelemetryShopClick shop_click = 2; CommonTelemetryShopView shop_view = 3; PoiSubmissionTelemetry poi_submission_telemetry = 4; PoiSubmissionPhotoUploadErrorTelemetry poi_submission_photo_upload_error_telemetry = 5; CommonTelemetryLogIn log_in = 6; PoiCategorizationEntryTelemetry poi_categorization_entry_telemetry = 9; PoiCategorizationOperationTelemetry poi_categorization_operation_telemetry = 10; PoiCategorySelectedTelemetry poi_categorization_selected_telemetry = 11; PoiCategoryRemovedTelemetry poi_categorization_removed_telemetry = 12; WayfarerOnboardingFlowTelemetry wayfarer_onboarding_flow_telemetry = 13; ASPermissionFlowTelemetry as_permission_flow_telemetry = 14; CommonTelemetryLogOut log_out = 15; } } message ClientEnvironmentProto { string language_code = 1; string timezone = 2; string device_country_code = 3; string ip_country_code = 4; string client_version = 5; string device_type = 6; string device_os = 7; string graphics_device_vendor = 8; string graphics_device_name = 9; string graphics_device_type = 10; string graphics_shader_level = 11; } message ClientTelemetryBatchProto { TelemetryScopeId telemetry_scope_id = 1; repeated ClientTelemetryRecordProto events = 2; repeated ClientTelemetryRecordProto metrics = 3; string api_version = 4; string message_version = 5; enum TelemetryScopeId { TELEMETRY_SCOPE_ID_UNSET = 0; TELEMETRY_SCOPE_ID_CORE = 1; TELEMETRY_SCOPE_ID_GAME = 2; TELEMETRY_SCOPE_ID_TITAN = 3; TELEMETRY_SCOPE_ID_COMMON = 4; TELEMETRY_SCOPE_ID_PRE_AGE_GATE = 5; TELEMETRY_SCOPE_ID_PRE_LOGIN = 6; TELEMETRY_SCOPE_ID_ARDK = 7; TELEMETRY_SCOPE_ID_MARKETING = 8; TELEMETRY_SCOPE_ID_GAME_TRIGGERED = 9; } } message ClientTelemetryClientSettingsProto { bool is_upload_enabled = 1; int64 max_upload_size_in_bytes = 2; int64 update_interval_in_sec = 3; int64 settings_update_interval_in_sec = 4; int64 max_envelope_queue_size = 5; double sampling_probability = 6; bool use_player_based_sampling = 7; double player_hash = 8; string player_external_omni_id = 9; bool disable_omni_sending = 10; map special_sampling_probability_map = 11; string player_external_ua_id = 12; string player_external_in_app_survey_id = 13; bool enable_experimental_features = 14; string player_external_ardk_id = 15; } message ClientTelemetryCommonFilterProto { string application_identifier = 1; string operating_system_name = 2; string device_model = 3; string locale_country_code = 4; string locale_language_code = 5; double sampling_probability = 6; string quality_level = 7; string network_connectivity_type = 8; string game_context = 9; string language_code = 10; string timezone = 11; string ip_country_code = 12; string client_version = 14; string graphics_device_vendor = 17; string graphics_device_name = 18; string graphics_device_type = 19; string graphics_shader_level = 20; } message ClientTelemetryRecordProto { string record_id = 1; bytes encoded_message = 2; int64 client_timestamp_ms = 3; int64 metric_id = 4; string event_name = 5; ClientTelemetryCommonFilterProto common_filters = 10; } message ClientTelemetryRecordResult { string record_id = 1; Status status = 2; string telemetry_type_name = 3; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 20; STATUS_ERROR_FAMILY_UNSET = 21; STATUS_ERROR_FAMILY_INVALID = 22; STATUS_ERROR_ENCODING_INVALID = 23; STATUS_ERROR_UNSET_METRIC_ID = 24; STATUS_ERROR_EVENT_TELEMETRY_UNDEFINED = 25; } } message ClientTelemetryResponseProto { Status status = 1; int32 rows_written = 2; int32 nonretryable_failures = 3; repeated ClientTelemetryRecordResult retryable_failures = 4; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_FAILURE = 2; STATUS_PARTIAL_FAILURE = 3; STATUS_INVALID_REQUEST = 4; } } message ClientTelemetrySettingsRequestProto { } message CommonMarketingTelemetryMetadata { int64 event_timestamp_ms = 1; string environment_id = 2; string environment_project_id = 3; int64 campaign_experiment_id = 4; string treatment_group = 5; string local_send_time = 6; repeated int64 campaign_experiment_ids = 7; } message CommonTelemetryBootTime { string boot_phase = 1; int64 duration_ms = 2; } message CommonTelemetryLogIn { int64 timestamp_ms = 1; string pre_login_user_id = 2; } message CommonTelemetryLogOut { int64 timestamp_ms = 1; } message CommonTelemetryShopClick { string shopping_page_click_id = 1; string sku_id = 2; string item_id = 3; string consolidated_item_id = 4; string currency = 5; int64 fiat_price = 6; repeated InGamePurchaseDetails in_game_purchase_details = 7; bool is_item_free_fiat = 8; bool is_item_free_ingame = 9; int64 time_elapsed_since_enter_page = 10; string root_store_page_session_id = 11; int64 pair_id = 12; string store_page_name = 13; string root_store_page_name = 14; AccessType access_type = 15; string fiat_formatted_price = 16; enum AccessType { ACCESS_TYPE_UNSPECIFIED = 0; ACCESS_TYPE_PASSIVE = 1; ACCESS_TYPE_ACTIVE = 2; } } message CommonTelemetryShopView { string shopping_page_view_type_id = 1; int64 view_start_timestamp_ms = 2; int64 view_end_timestamp_ms = 3; repeated string consolidated_item_id = 4; string root_store_page_session_id = 5; } message InGamePurchaseDetails { string ingame_type = 1; int64 ingame_price = 2; int64 remaining_ingame_balance = 3; } message InternalMarketingTelemetry { InternalMarketingTelemetryMetadata metadata = 1000; ServerRecordMetadata server_data = 1001; ClientTelemetryCommonFilterProto common_filters = 1002; oneof event { MarketingTelemetryNewsfeedEvent newsfeed_event = 1; MarketingTelemetryPushNotificationEvent push_notification_event = 2; } } message InternalMarketingTelemetryMetadata { CommonMarketingTelemetryMetadata common_metadata = 1; string user_id = 2; } message InternalMarketingTelemetryWrapper { InternalMarketingTelemetry internal_marketing_telemetry = 1; } message LoginNewPlayer { string method_name = 1; } message LoginNewPlayerCreateAccount { string method_name = 1; } message LoginReturningPlayer { string method_name = 1; } message LoginReturningPlayerSignIn { string method_name = 1; } message LoginStartup { string method_name = 1; } message MarketingTelemetryNewsfeedEvent { NewsfeedEventType event_type = 1; NewsfeedAttributionSourceType attribution_source_type = 2; enum NewsfeedAttributionSourceType { NEWSFEED_ATTRIBUTION_SOURCE_TYPE_UNKNOWN = 0; NEWSFEED_ATTRIBUTION_SOURCE_TYPE_ORGANIC_VIEW = 1; NEWSFEED_ATTRIBUTION_SOURCE_TYPE_ARTICLE_LINK = 2; NEWSFEED_ATTRIBUTION_SOURCE_TYPE_EMAIL_LINK = 3; NEWSFEED_ATTRIBUTION_SOURCE_TYPE_PUSH_NOTIFICATION = 4; NEWSFEED_ATTRIBUTION_SOURCE_TYPE_IN_GAME_NOTIFICATION = 5; } enum NewsfeedEventType { NEWSFEED_EVENT_TYPE_UNSET = 0; NEWSFEED_EVENT_TYPE_RECEIVED = 1; NEWSFEED_EVENT_TYPE_READ = 2; } } message MarketingTelemetryPushNotificationEvent { PushNotificationEventType event_type = 1; string push_id = 2; string reason = 3; enum PushNotificationEventType { PUSH_NOTIFICATION_EVENT_TYPE_UNSET = 0; PUSH_NOTIFICATION_EVENT_TYPE_PROCESSED = 1; PUSH_NOTIFICATION_EVENT_TYPE_RECEIVED = 2; PUSH_NOTIFICATION_EVENT_TYPE_OPENED = 3; PUSH_NOTIFICATION_EVENT_TYPE_DISMISSED = 4; PUSH_NOTIFICATION_EVENT_TYPE_BOUNCED = 5; PUSH_NOTIFICATION_EVENT_TYPE_SENT = 6; PUSH_NOTIFICATION_EVENT_TYPE_FAILED_SEND = 7; PUSH_NOTIFICATION_EVENT_TYPE_BAD_REGISTRATION = 8; PUSH_NOTIFICATION_EVENT_TYPE_SENT_REQUESTED = 9; PUSH_NOTIFICATION_EVENT_TYPE_REQUEST_FAILED = 10; PUSH_NOTIFICATION_EVENT_TYPE_PROCESS_FAILED = 11; } } message PlatformPlayerInfo { string identity_provider = 1; int64 profile_creation_timestamp_ms = 2; int32 player_level = 3; int32 team_id = 4; double lifetime_km_walked = 5; int64 lifetime_steps_walked = 6; } message PlatformPreAgeGateTrackingOmniproto { PreAgeGateMetadata pre_age_gate_metadata = 1000; ClientTelemetryCommonFilterProto common_filters = 1002; oneof platform_pre_age_gate_event { AgeGateStartup age_gate_startup = 1; AgeGateResult age_gate_result = 2; } } message PlatformPreLoginTrackingOmniproto { PreLoginMetadata pre_login_metadata = 1001; ClientTelemetryCommonFilterProto common_filters = 1002; oneof platform_pre_login_event { LoginStartup login_startup = 1; LoginNewPlayer login_new_player = 2; LoginReturningPlayer login_returning_player = 3; LoginNewPlayerCreateAccount login_new_player_create_account = 4; LoginReturningPlayerSignIn login_returning_player_sign_in = 5; } } message PoiCategorizationEntryTelemetry { EntryType entry_type = 1; int64 session_start_time = 2; string lang_country_code = 3; enum EntryType { ENTRY_TYPE_UNSET = 0; ENTRY_TYPE_EDIT = 1; ENTRY_TYPE_NOMINATION = 2; } } message PoiCategorizationOperationTelemetry { OperationType operation_type = 1; int64 session_start_time = 2; repeated string selected_ids = 3; string lang_country_code = 4; enum OperationType { OPERATION_TYPE_UNSET = 0; OPERATION_TYPE_EDIT_SUBMITTED = 1; OPERATION_TYPE_EDIT_CANCELLED = 2; OPERATION_TYPE_NOMINATION_EXIT_FORWARD = 3; OPERATION_TYPE_NOMINATION_EXIT_BACKWARD = 4; } } message PoiCategoryRemovedTelemetry { int64 session_start_time = 1; string removed_id = 2; repeated string remaining_ids = 3; string lang_country_code = 4; } message PoiCategorySelectedTelemetry { int64 session_start_time = 1; string selected_id = 2; int32 selected_index = 3; bool search_entered = 4; bool parent_selected = 5; string lang_country_code = 6; } enum PoiImageType { POI_IMAGE_TYPE_UNSET = 0; POI_IMAGE_TYPE_MAIN = 1; POI_IMAGE_TYPE_SURROUNDING = 2; } message PoiSubmissionPhotoUploadErrorTelemetry { PoiSubmissionPhotoUploadErrorIds error_id = 1; PoiImageType image_type = 2; string error_message = 3; enum PoiSubmissionPhotoUploadErrorIds { POI_SUBMISSION_PHOTO_UPLOAD_ERROR_IDS_UNSET = 0; POI_SUBMISSION_PHOTO_UPLOAD_ERROR_IDS_POI_PHOTO_UPLOAD_ERROR = 1; POI_SUBMISSION_PHOTO_UPLOAD_ERROR_IDS_POI_PHOTO_UPLOAD_TIMEOUT = 2; } } message PoiSubmissionTelemetry { PoiSubmissionGuiEventId gui_event_id = 1; PoiImageType image_type = 2; PoiCameraStepIds camera_step_id = 3; string poi_id = 4; enum PoiCameraStepIds { POI_CAMERA_STEP_IDS_UNSET = 0; POI_CAMERA_STEP_IDS_ENTER = 1; POI_CAMERA_STEP_IDS_RETAKE = 2; POI_CAMERA_STEP_IDS_CONFIRM = 3; POI_CAMERA_STEP_IDS_EXIT = 4; } enum PoiSubmissionGuiEventId { POI_SUBMISSION_GUI_EVENT_ID_UNKNOWN = 0; POI_SUBMISSION_GUI_EVENT_ID_POI_NOMINATION_ENTER = 1; POI_SUBMISSION_GUI_EVENT_ID_POI_TUTORIAL_COMPLETE = 2; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_CHANGEDVIEW_MAP = 3; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_CHANGEDVIEW_SATELLITE = 4; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_CENTER_LOCATION = 5; POI_SUBMISSION_GUI_EVENT_ID_POI_LOCATION_SET = 6; POI_SUBMISSION_GUI_EVENT_ID_POI_PHOTO_CAMERA_ENTER = 7; POI_SUBMISSION_GUI_EVENT_ID_POI_PHOTO_CAMERA_EXIT = 8; POI_SUBMISSION_GUI_EVENT_ID_POI_TITLE_ENTERED = 9; POI_SUBMISSION_GUI_EVENT_ID_POI_DESCRIPTION_ENTER = 10; POI_SUBMISSION_GUI_EVENT_ID_POI_DETAILS_CONFIRM = 11; POI_SUBMISSION_GUI_EVENT_ID_POI_SUPPORTINGINFO_ENTER = 12; POI_SUBMISSION_GUI_EVENT_ID_POI_SUBMIT_BUTTON_HIT = 13; POI_SUBMISSION_GUI_EVENT_ID_POI_EXIT_BUTTON_HIT = 14; POI_SUBMISSION_GUI_EVENT_ID_POI_NOMINATION_GUIDELINES_HIT = 15; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_TOGGLE_POIS_OFF = 16; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_TOGGLE_POIS_ON = 17; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_WAYSPOTS_LOADED = 18; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_SELECT_POI = 19; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_SELECT_POI_ABANDON = 20; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_SELECT_POI_COMPLETED = 21; POI_SUBMISSION_GUI_EVENT_ID_POI_MAP_TUTORIAL_SELECTED = 22; } } message PreAgeGateMetadata { int64 timestamp_ms = 2; int64 client_timestamp_ms = 3; repeated int32 experiment_ids = 6; string pre_login_user_id = 10; bool minor = 11; int64 num_starts = 12; ClientEnvironmentProto client_environment = 20; StartupMeasurementProto startup_measurement = 21; } message PreLoginMetadata { string user_id = 1; int64 timestamp_ms = 2; int64 client_timestamp_ms = 3; repeated int32 experiment_ids = 6; string pre_login_user_id = 10; int64 num_starts = 11; } message ServerRecordMetadata { string user_id = 1; string telemetry_name = 2; string session_id = 3; repeated int32 experiment_ids = 4; string request_id = 5; int64 server_timestamp_ms = 6; repeated string analytics_experiment_ids = 7; string client_request_id = 8; repeated string user_population_group_ids = 9; } message StartupMeasurementProto { int64 num_starts = 1; int64 load_to_tos_login_duration_ms = 2; int64 load_to_map_duration_ms = 3; repeated ComponentLoadDurations load_durations = 10; message ComponentLoadDurations { string component_name = 1; int64 load_duration_ms = 2; int64 absolute_duration_ms = 3; } } message TelemetryAttribute { TelemetryField field = 1; TelemetryValue value = 2; int64 timestamp = 3; repeated Label labels = 4; message Label { TelemetryField field = 1; repeated TelemetryValue values = 2; } } message TelemetryAttributeRecordProto { TelemetryAttribute attribute = 2; TelemetryAttributeV2 attribute_v2 = 4; repeated TelemetryAttributeV2 batched_attribute_v2 = 5; oneof metadata { TelemetryMetadataProto common = 1; bytes compressed_common = 3; } } message TelemetryAttributeV2 { string attribute_name = 1; TelemetryValue value = 2; } message TelemetryBatchProto { string environment_id = 1; repeated TelemetryEventRecordProto events = 2; repeated TelemetryAttributeRecordProto attributes = 4; } message TelemetryEventRecordProto { string event_name = 2; string facet_detail_name = 4; oneof metadata { TelemetryMetadataProto common = 1; bytes compressed_common = 6; } oneof message { bytes encoded_message = 3; bytes compressed_message = 5; } } message TelemetryField { string entity_name = 1; string field_path = 2; repeated TelemetryKey keys = 3; } message TelemetryKey { string key_name = 1; TelemetryValue value = 2; } message TelemetryMetadataProto { string user_id = 1; int64 session_id = 2; repeated int64 experiment_ids = 3; string record_id = 4; TelemetryScopeId telemetry_scope_id = 5; bool is_queryable = 6; string keyvalue_column = 7; uint32 processing_attempts_count = 8; string pub_sub_message_id = 9; repeated string population_group_ids = 10; int64 source_published_timestamp_millis = 11; int64 anfe_published_timestamp_millis = 12; PlatformPlayerInfo platform_player_info = 13; ClientTelemetryCommonFilterProto device_info = 14; enum TelemetryScopeId { TELEMETRY_SCOPE_ID_UNSET = 0; TELEMETRY_SCOPE_ID_PLATFORM_SERVER = 1; TELEMETRY_SCOPE_ID_PLATFORM_CLIENT = 2; TELEMETRY_SCOPE_ID_GAME_SERVER = 3; TELEMETRY_SCOPE_ID_GAME_CLIENT = 4; } } message TelemetryRequestProto { string api_version = 1; string message_version = 2; bytes telemetry_batch = 3; } message TelemetryValue { oneof value { int64 int_value = 1; double double_value = 2; string string_value = 3; bool bool_value = 4; } } message WayfarerOnboardingFlowTelemetry { EventType event_type = 1; enum EventType { EVENT_TYPE_UNSET = 0; EVENT_TYPE_ENTER_WAYFARER_WEBSITE = 1; EVENT_TYPE_DEFER_WAYFARER_ONBOARDING = 2; EVENT_TYPE_SIMPLIFIED_ONBOARDING_OK = 3; } }