Add Discord APKTool decompilation (Smali source for modding)

- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

BIN
unknown/DebugProbesKt.bin Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
1.4.1

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
1.7.0

View File

@@ -0,0 +1 @@
task ':arch:core:core-runtime:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
1.1.0

View File

@@ -0,0 +1 @@
1.8.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.15.0

View File

@@ -0,0 +1 @@
1.15.0

View File

@@ -0,0 +1 @@
1.5.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.3.0

View File

@@ -0,0 +1 @@
1.3.0

View File

@@ -0,0 +1 @@
1.5.7

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-livedata-core:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-livedata:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-process:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-runtime:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-service:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-viewmodel-savedstate:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
task ':lifecycle:lifecycle-viewmodel:writeVersionFile' property 'version'

View File

@@ -0,0 +1 @@
1.1.0

View File

@@ -0,0 +1 @@
1.3.1

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.0.0-beta05

View File

@@ -0,0 +1 @@
1.0.0-beta05

View File

@@ -0,0 +1 @@
1.3.1

View File

@@ -0,0 +1 @@
1.2.1

View File

@@ -0,0 +1 @@
2.6.1

View File

@@ -0,0 +1 @@
2.6.1

View File

@@ -0,0 +1 @@
1.2.1

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
2.4.0

View File

@@ -0,0 +1 @@
2.4.0

View File

@@ -0,0 +1 @@
1.1.1

View File

@@ -0,0 +1 @@
1.2.0

View File

@@ -0,0 +1 @@
1.2.0

View File

@@ -0,0 +1 @@
1.1.0

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1 @@
1.11.0-alpha02

View File

@@ -0,0 +1 @@
2.10.0

View File

@@ -0,0 +1 @@
2.27

View File

@@ -0,0 +1,2 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.2.2

View File

@@ -0,0 +1 @@
1.7.3

View File

@@ -0,0 +1 @@
1.7.3

View File

@@ -0,0 +1 @@
1.7.3

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidExceptionPreHandler

View File

@@ -0,0 +1 @@
kotlinx.coroutines.android.AndroidDispatcherFactory

View File

@@ -0,0 +1 @@
git.version=a1f28028ba4e22c11cfaffe0e37ae27be1eea0c3

View File

@@ -0,0 +1,3 @@
version=6.0.1
client=billing
billing_client=6.0.1

View File

@@ -0,0 +1,9 @@
syntax = "proto3";
import "google/protobuf/timestamp.proto";
package com.unity3d.ads.datastore;
message ByteStringStore {
bytes data = 1;
}

View File

@@ -0,0 +1,95 @@
// Copyright 2021 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package firebase.transport;
option java_multiple_files = true;
// Top level metrics for all client analytics metrics.
// These metrics should be sent as a part of every request that is uploaded to
// FireLog server. In more detail, an additional LogRequest should be added to
// the BatchedLogRequest, where the LogSource of the LogRequest should be
// GDT_CLIENT_METRICS and the LogRequest should have a single LogEvent whose
// payload is a ClientMetrics message.
//
// See go/firelog-client-analytics for more details.
message ClientMetrics {
// The window of time over which the metrics are evaluated.
TimeWindow window = 1;
repeated LogSourceMetrics log_source_metrics = 2;
GlobalMetrics global_metrics = 3;
// The bundle ID on Apple platforms (e.g., iOS) or the package name on Android
string app_namespace = 4;
}
// Represents an arbitrary window of time.
message TimeWindow {
// The time that the window first starts.
// start_ms is the number of milliseconds since the UNIX epoch
// (January 1, 1970 00:00:00 UTC)
int64 start_ms = 1;
// The time that the window ends.
// end_ms is the number of milliseconds since the UNIX epoch
// (January 1, 1970 00:00:00 UTC)
int64 end_ms = 2;
}
// Metrics per app, not per log source
message GlobalMetrics {
StorageMetrics storage_metrics = 1;
}
message StorageMetrics {
// The number of bytes of storage the event cache was consuming on the client
// at the time the request was sent.
int64 current_cache_size_bytes = 1;
// The maximum number of bytes to which the event cache is allowed to grow.
int64 max_cache_size_bytes = 2;
}
// Metrics per log source.
message LogSourceMetrics {
// A LogSource uniquely identifies a logging configuration. log_source should
// contains a string value of the LogSource from
// google3/wireless/android/play/playlog/proto/clientanalytics.proto
string log_source = 1;
repeated LogEventDropped log_event_dropped = 2;
}
message LogEventDropped {
// A count of how many log event have been dropped on the client.
int64 events_dropped_count = 1;
// The reason why log events have been dropped on the client.
enum Reason {
REASON_UNKNOWN = 0;
MESSAGE_TOO_OLD = 1;
CACHE_FULL = 2;
PAYLOAD_TOO_BIG = 3;
MAX_RETRIES_REACHED = 4;
INVALID_PAYLOD = 5;
SERVER_ERROR = 6;
}
Reason reason = 3;
}

View File

@@ -0,0 +1,3 @@
fabric-identifier=com.amazonaws.aws-android-sdk-core
fabric-version=2.22.6
fabric-build-type=binary

View File

@@ -0,0 +1,3 @@
version=22.0.1
client=firebase-analytics
firebase-analytics_client=22.0.1

View File

@@ -0,0 +1,3 @@
version=16.2.0
client=firebase-annotations
firebase-annotations_client=16.2.0

View File

@@ -0,0 +1,3 @@
version=16.0.0
client=firebase-encoders-proto
firebase-encoders-proto_client=16.0.0

View File

@@ -0,0 +1,3 @@
version=17.0.0
client=firebase-encoders
firebase-encoders_client=17.0.0

View File

@@ -0,0 +1,3 @@
version=17.1.0
client=firebase-iid-interop
firebase-iid-interop_client=17.1.0

View File

@@ -0,0 +1,3 @@
version=20.0.1
client=firebase-measurement-connector
firebase-measurement-connector_client=20.0.1

View File

@@ -0,0 +1,442 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
//
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Protos for logging firebase performance monitoring metrics collected by the
// Firebase performance sdk and transmitted to the backend using Firebase data transport.
//
// PRD: go/fireperf-prd
// SDK Data Model: go/fireperf-data-model
syntax = "proto2";
package firebase.perf.v1;
option java_multiple_files = true;
option java_outer_classname = "FirebasePerfMetricProto";
option java_package = "com.google.firebase.perf.v1";
// Firebase Perf Reporting Message
option objc_class_prefix = "FPRMSG";
// Single unit of performance data collected from firebase integrated 3P apps by the firebase
// performance sdk. This will be an an extension to GWSLogEntryProto and will correspond to one
// record in the RecordIO logs generated by firebase data transport. Every firebase performance
// related event logged to firebase data transport by the sdk will encapsulate one instance of this
// object.
//
// Next tag: 6
message PerfMetric {
// Additional metadata about an application and its state (including state of
// the device at runtime) that is not provided by firebase data transport.
optional ApplicationInfo application_info = 1;
// A metric which represents the performance statistics collected within an
// instrumented trace.
optional TraceMetric trace_metric = 2;
// A metric which represents the network latency, bandwidth and network
// connection info about a network request captured by the firebase sdk.
optional NetworkRequestMetric network_request_metric = 3;
// A metric which represents session gauges, such as cpu, memory, battery,
// within a session.
optional GaugeMetric gauge_metric = 4;
// A metric which represents the transport related information.
// When transport_info field is empty, it means the message is from Cct.
optional TransportInfo transport_info = 5;
}
// Metric which represents everything collected in the span of a trace. A trace
// may be further divided into subtraces.
// The trace can either be a default out of the box trace which is a
// part of the default instrumentation provided by the firebase performance sdk
// or a custom trace instrumented by the app developer using the sdk apis.
//
// Next tag: 10
message TraceMetric {
// The name of the trace. This could either be a user defined name for the
// developer instrumented custom traces or a default for traces automatically
// instrumented by the Firebase Performance SDK. The max length of 64
// characters will be enforced by the sdk.
optional string name = 1; // required.
// If true, then this is considered to be a trace automatically instrumented
// by the performance sdk. Otherwise, it is considered to be a custom trace
// instrumented by the developer using firebase perf sdk apis.
optional bool is_auto = 2;
// The timestamp in microseconds since epoch when the trace was started. This
// time is recorded using the device clock.
optional int64 client_start_time_us = 4; // required.
// The duration of the trace in microseconds.
optional int64 duration_us = 5; // required.
// A map of custom or default counter names to values.
map<string, int64> counters = 6;
// The metrics for subtraces within the trace.
// The following restrictions are currently enforced by the sdk on subtraces:
// Subtraces should only have 1 level of nesting.
// Subtraces should be non overlapping.
// Subtraces should be continuous, i.e no gaps between consecutive subtraces.
repeated TraceMetric subtraces = 7;
// A map of trace-level custom attribute names to values.
map<string, string> custom_attributes = 8;
// Sessions across which the trace spanned. A session lasts from one
// change in the app state (foreground/background) to the next. Basically
// every foreground and background session gets it's own session id. A trace
// may span across multiple such sessions. So we need a list to identify which
// sessions it spanned across.
repeated PerfSession perf_sessions = 9;
}
// Metric which represents the latency, bandwidth consumption and other details
// about a network request captured by the firebase sdk.
//
// Next tag: 14
message NetworkRequestMetric {
// The parameterless url to which the network request was made. The sdk will
// redact the unnecessary components of the URL and only log the components
// which are useful. For a url of the form
// scheme://host[:port]/path[?params][#fragment], the sdk should only log
// scheme://host[:port]/path
// Example:
// Captured Url: https://wwww.google.com/maps/cities#seattle?id=123
// Logged Url: https://wwww.google.com/maps/cities
optional string url = 1; // required.
// Supported HTTP methods for aggregating network requests. All network
// requests that can not be classified into the 9 methods below should be set
// to HTTP_METHOD_UNKNOWN.
enum HttpMethod {
HTTP_METHOD_UNKNOWN = 0;
GET = 1;
PUT = 2;
POST = 3;
DELETE = 4;
HEAD = 5;
PATCH = 6;
OPTIONS = 7;
TRACE = 8;
CONNECT = 9;
}
// The HTTP verb for the network request. Common values include GET,
// PUT, POST and DELETE
optional HttpMethod http_method = 2; // required.
// The size of the payload in the request.
optional int64 request_payload_bytes = 3;
// The size of the payload in the response.
optional int64 response_payload_bytes = 4;
// Info about the type of client error during network call.
enum NetworkClientErrorReason {
// Unspecified Network Client Error Reason.
NETWORK_CLIENT_ERROR_REASON_UNKNOWN = 0;
// No attempt made to classify the error.
GENERIC_CLIENT_ERROR = 1;
// Add the specific client error types below.
}
// The client error received from the networking library.
// Do not record a client error if we have HTTP response code available.
optional NetworkClientErrorReason network_client_error_reason = 11;
// The Http response code received from the server.
optional int32 http_response_code = 5; // required.
// The value of the content type header in the response.
optional string response_content_type = 6;
// The timestamp in microseconds since epoch when the network request was
// initiated. This time is recorded using the device clock.
optional int64 client_start_time_us = 7; // required.
// The time in microseconds since the start of the network request and the
// upload of the last request byte.
optional int64 time_to_request_completed_us = 8;
// The time in microseconds between the start of the network request and the
// receipt of the first byte of the response headers.
optional int64 time_to_response_initiated_us = 9;
// The time in microseconds between the start of the network request and the
// receipt of the last response byte.
optional int64 time_to_response_completed_us = 10; // required.
// A map of network-level custom attribute names to values.
map<string, string> custom_attributes = 12;
// Sessions across which the network request spanned. A session lasts
// from one change in the app state (foreground/background) to the next.
// Basically every foreground and background session gets it's own session id.
// A network request may span across multiple such sessions. So we need a list
// to identify which sessions it spanned across.
repeated PerfSession perf_sessions = 13;
}
// Metadata about a session and the amount of detail information it contains.
// See go/what-is-a-perf-session
message PerfSession {
// The id of a session.
optional string session_id = 1;
// The level of amount of detailed information that this session captures.
repeated SessionVerbosity session_verbosity = 2;
}
// Metric which represents gauges collected during the span of a session,
// including cpu, memory, battery, etc.
// The gauges will be collected by our own sdk and be purely numeric readings,
// user cannot pass any information here, so cannot contain PIIs.
//
// Next tag: 6
message GaugeMetric {
// Identifier of the session in which this gauge reading takes place.
// A session_id is specific to a device instance, and is used to tie gauge
// metrics to other peer traces and network requests that occurs during
// the session.
optional string session_id = 1;
// Metadata of gauge metrics whose value stay constant throughout the session.
optional GaugeMetadata gauge_metadata = 3;
// List of cpu gauge readings recorded in the session.
repeated CpuMetricReading cpu_metric_readings = 2;
// List of Android memory readings recorded, absent for iOS apps.
repeated AndroidMemoryReading android_memory_readings = 4;
}
// One reading of cpu gauge metric.
// See go/fireperf-cpu-gauge-metric.
//
// Next tag: 4
message CpuMetricReading {
// The timestamp in microseconds since epoch when this snapshot took place.
// This time is recorded using the device clock.
optional int64 client_time_us = 1;
// The total user cpu time since process started in microseconds.
optional int64 user_time_us = 2;
// The total system cpu time since process started in microseconds.
optional int64 system_time_us = 3;
}
// One reading of Android memory gauge metric.
// Note that this is cheap-to-capture memory reading, which is different from
// application's summary of memory usage (expensive to capture). Summary of
// memory usage will be captured at a much lower frequency in a different proto.
// See go/fireperf-sessions-memory.
//
// Next tag: 3
message AndroidMemoryReading {
// The timestamp in microseconds since epoch when this snapshot took place.
// This time is recorded using the device clock.
optional int64 client_time_us = 1;
// The amount of java heap memory that the app is using, in kilobytes.
optional int32 used_app_java_heap_memory_kb = 2;
}
// Metadata about gauges of a session.
// These are the gauge values that stay constant throughout the entire session.
// Examples include maxAppJavaHeapMemory (max memory allowed for the app) and
// cpuFrequency (frequency of cpu of the device that the app is running on).
// As long as one GaugeMetadata is sent for a session, these metadata will be
// available for all elements of the session. If multiple GaugeMetadata are sent
// for the same session, they are expected to be identical.
//
// Next tag: 7
message GaugeMetadata {
// Deprecated on 09/2022.
optional string process_name = 1 [deprecated = true];
// Clock rate of the cpu of the device, in kHz.
optional int32 cpu_clock_rate_khz = 2;
// The number of cpu cores that the device has.
optional int32 cpu_processor_count = 6;
// Size of RAM of the device, in kilobytes.
optional int32 device_ram_size_kb = 3;
// Maximum amount of memory the app can use before an OutOfMemoryException
// is triggered, in kilobytes.
// Only present for Android apps.
optional int32 max_app_java_heap_memory_kb = 4;
// The maximum amount of memory the app is encouraged to use to be properly
// respectful of the limits of the client device.
// Only present for Android apps.
optional int32 max_encouraged_app_java_heap_memory_kb = 5;
}
// Additional metadata about an application and its state (including state of
// the device at runtime) that is not provided by firebase data transport.
//
// Next tag: 8
message ApplicationInfo {
// Identifier for the application that has been registered with firebase.
// Contains pantheon project number, platform and the hash of the (package
// name or bundle id) fields in hex.
// [Version]:[Project Number]:[Platform]:[Hash(package_name/bundle_id)]
// The app id contains Pantheon project number which is a GAIA ID that
// identifies a particular organization or a customer.
optional string google_app_id = 1; // required.
// The App Instance Id which is used to compute the distinct users for which
// the metrics are recorded.
// Look at go/iid-features for more details about the instance id.
optional string app_instance_id = 2; // required.
// One of android_app_info, ios_app_info, and web_app_info is required.
// Additional information specific to an android app.
optional AndroidApplicationInfo android_app_info = 3;
// State of the application process during metric collection.
optional ApplicationProcessState application_process_state = 5; // required.
// A map of global-level custom attribute names to values.
map<string, string> custom_attributes = 6;
}
// Additional metadata about an android application that is not provided by
// firebase data transport.
//
// Next tag: 4
message AndroidApplicationInfo {
// The package name of the android application.
// e.g com.google.android.apps.maps
optional string package_name = 1; // required.
// The sdk version of the firebase perf android sdk.
optional string sdk_version = 2; // required.
// The versionName of the android application as shown on the play store.
// Firebase data transport logs the versionCode in the GWSLogEntryProto field:
// PlayExtension.client_info.android_client_info.application_build
// This field is necessary till the data transport supports logging version_name by
// default: b/32584283
optional string version_name = 3;
}
// To describe the network connectivity of the client.
// Copied from go/clientanalytics.proto
// Next tag: 3
message NetworkConnectionInfo {
enum NetworkType {
NONE = -1;
MOBILE = 0;
WIFI = 1;
MOBILE_MMS = 2;
MOBILE_SUPL = 3;
MOBILE_DUN = 4;
MOBILE_HIPRI = 5;
WIMAX = 6;
BLUETOOTH = 7;
DUMMY = 8;
ETHERNET = 9;
MOBILE_FOTA = 10;
MOBILE_IMS = 11;
MOBILE_CBS = 12;
WIFI_P2P = 13;
MOBILE_IA = 14;
MOBILE_EMERGENCY = 15;
PROXY = 16;
VPN = 17;
}
enum MobileSubtype {
UNKNOWN_MOBILE_SUBTYPE = 0;
GPRS = 1;
EDGE = 2;
UMTS = 3;
CDMA = 4;
EVDO_0 = 5;
EVDO_A = 6;
RTT = 7;
HSDPA = 8;
HSUPA = 9;
HSPA = 10;
IDEN = 11;
EVDO_B = 12;
LTE = 13;
EHRPD = 14;
HSPAP = 15;
GSM = 16;
TD_SCDMA = 17;
IWLAN = 18;
LTE_CA = 19;
// COMBINED has value -1 in NetworkIdentity.java, but is given the value
// 100 here to save (disk) space. The value -1 takes up the full 10 bytes in
// a varint for enums, but the value 100 only takes up 1 byte.
COMBINED = 100;
}
// The current network connectivity type when the event was logged in the
// client
optional NetworkType network_type = 1 [default = NONE];
// The current mobile connectivity subtype when the event was logged in the
// client
optional MobileSubtype mobile_subtype = 2 [default = UNKNOWN_MOBILE_SUBTYPE];
}
// Transport related metadata info.
// Next tag: 2
message TransportInfo {
// Dispatch destination for the event.
enum DispatchDestination {
SOURCE_UNKNOWN = 0; // Reserved
FL_LEGACY_V1 = 1; // Flg legacy endpoint
}
// Destination to which the events are sent.
optional DispatchDestination dispatch_destination = 1;
}
// Metadata about the state of application process during metrics collection.
//
enum ApplicationProcessState {
// Unspecified application process state.
APPLICATION_PROCESS_STATE_UNKNOWN = 0;
// Application process was in foreground
FOREGROUND = 1;
// Application process was in background
BACKGROUND = 2;
// Application process was both in foreground and background for the duration
// of metrics collection.
FOREGROUND_BACKGROUND = 3;
}
// The level of detailed information that is captured in a Perf Session, known
// as a session's verbosity. For different session we collect different levels
// of detailed information (or none at all) to avoid penalizing the same device
// constantly.
enum SessionVerbosity {
// Session doesn't have detailed information.
SESSION_VERBOSITY_NONE = 0;
// Session has gauges and system events information.
// See go/fireperf-samples-metrics-all for the list of gauges and
// system events that are captured within a session.
GAUGES_AND_SYSTEM_EVENTS = 1;
}

View File

@@ -0,0 +1,25 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/campaign_state.proto";
import "gatewayprotocol/v1/dynamic_device_info.proto";
import "gatewayprotocol/v1/session_counters.proto";
import "gatewayprotocol/v1/static_device_info.proto";
option swift_prefix = "Gateway";
message AdDataRefreshRequest {
// Session Counters tracked by the SDK
SessionCounters session_counters = 1;
// Static Device Info collected during SDK initialization. Information collected here doesn't change during session.
StaticDeviceInfo static_device_info = 2;
// Dynamic Device Info collected at request time. Information collected here can change during session.
DynamicDeviceInfo dynamic_device_info = 3;
// List of campaigns currently loaded
CampaignState campaign_state = 4;
// Impression Opportunity ID
bytes impression_opportunity_id = 5;
// Ad Data Refresh Token
bytes ad_data_refresh_token = 6;
}

View File

@@ -0,0 +1,20 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/error.proto";
option swift_prefix = "Gateway";
message AdDataRefreshResponse {
// non empty if fill otherwise empty
bytes ad_data = 1;
// version of the ad markup. Use to determine which parser to use.
int32 ad_data_version = 2;
// non empty if fill otherwise empty
bytes tracking_token = 3;
// Ad Data Refresh Token to be used to refresh ad markup
bytes ad_data_refresh_token = 4;
// If set, there was an error processing the request.
optional Error error = 5;
}

View File

@@ -0,0 +1,17 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
message AdPlayerConfigRequest {
// A configuration token which can be exchanged for a ad player configuration and tracking token.
// Retrieved from Header Bidding Ad Markup
bytes configuration_token = 1;
// The Placement ID for which Ad Markup is being loaded.
string placement_id = 2;
// Locally cached WebView version
optional int32 webview_version = 9;
// Impression Opportunity ID
bytes impression_opportunity_id = 4;
}

View File

@@ -0,0 +1,23 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/error.proto";
import "gatewayprotocol/v1/webview_configuration.proto";
option swift_prefix = "Gateway";
message AdPlayerConfigResponse {
// Tracking Token is used to track operative events during impression opportunity.
bytes tracking_token = 1;
// Impression Configuration is used by Ad Player(WebView) to render the ad.
bytes impression_configuration = 2;
// A version of the impression configuration.
int32 impression_configuration_version = 3;
// WebView configuration which should be used by Native to start Ad Player.
optional WebViewConfiguration webview_configuration = 4;
// Ad Data Refresh Token is used to refresh the ad if impression occurred.
bytes ad_data_refresh_token = 5;
// If set, there was an error processing the request.
optional Error error = 6;
}

View File

@@ -0,0 +1,50 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/campaign_state.proto";
import "gatewayprotocol/v1/dynamic_device_info.proto";
import "gatewayprotocol/v1/session_counters.proto";
import "gatewayprotocol/v1/static_device_info.proto";
option swift_prefix = "Gateway";
enum AdRequestType {
AD_REQUEST_TYPE_UNSPECIFIED = 0;
AD_REQUEST_TYPE_FULLSCREEN = 1;
AD_REQUEST_TYPE_BANNER = 2;
}
message BannerSize {
int32 width = 1;
int32 height = 2;
}
// AdRequest is the request sent from the SDK to the Gateway
// It contains all the information needed to make a decision on what ad to return
message AdRequest {
// Session Counters tracked by the SDK
SessionCounters session_counters = 1;
// Static Device Info collected during SDK initialization. Information collected here doesn't change during session.
StaticDeviceInfo static_device_info = 2;
// Dynamic Device Info collected at request time. Information collected here can change during session.
DynamicDeviceInfo dynamic_device_info = 3;
// Current campaign state in the SDK, will be populated only for full screen video ads and contain information about them
CampaignState campaign_state = 4;
// Impression Opportunity ID
bytes impression_opportunity_id = 5;
// Placement ID which is requested to be loaded
string placement_id = 6;
// Flag which indicates if Impression Configuration should be returned in the ad response on fill
bool request_impression_configuration = 7;
// SCAR Signal
bytes scar_signal = 8;
// Locally cached WebView version
optional int32 webview_version = 9;
// TCF String provided by Publisher
optional bytes tcf = 10;
// Ad Request Type
optional AdRequestType ad_request_type = 11;
// Banner Size
optional BannerSize banner_size = 12;
}

View File

@@ -0,0 +1,32 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/error.proto";
import "gatewayprotocol/v1/webview_configuration.proto";
option swift_prefix = "Gateway";
// This is the response from the Gateway when requesting an ad
message AdResponse {
// Tracking Token is used to track operative events during impression opportunity.
bytes tracking_token = 1;
// Impression Configuration is used by Ad Player(WebView) to render the ad.
bytes impression_configuration = 2;
// A version of the impression configuration.
int32 impression_configuration_version = 3;
// WebView configuration which should be used by Native to start Ad Player.
optional gatewayprotocol.v1.WebViewConfiguration webview_configuration = 4;
// Ad Data Refresh Token is used to refresh the ad if impression occurred.
bytes ad_data_refresh_token = 5;
// A blob of data which contains an ad to show.
// This blob should be provided to Ad Player to parse and cache the ad.
// Currently it is a Auction V6 response.
bytes ad_data = 6;
// A version of the ad data. Can be used to determine which parser to use.
int32 ad_data_version = 7;
// If set, there was an error processing the request.
optional Error error = 8;
}

View File

@@ -0,0 +1,10 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
message AllowedPii {
bool idfa = 1;
bool idfv = 2;
}

View File

@@ -0,0 +1,109 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "google/protobuf/timestamp.proto";
import "gatewayprotocol/v1/header_bidding_token.proto";
option swift_prefix = "Gateway";
message BidRequestEvent {
string mediation_auction_id = 1;
optional string mediation_server = 2;
optional int64 tmax = 3;
optional string game_id = 4;
optional string placement_id = 5;
optional string ad_type = 6;
optional float bid_floor = 7;
optional string bid_floor_currency = 8;
optional bool test = 9;
optional int32 test_id = 10;
optional string bundle = 11;
optional string sdk_version = 12;
optional TokenInfo token_info = 13;
optional string display_manager = 14;
repeated string blocked_apps = 15;
repeated string blocked_categories = 16;
repeated string blocked_domains = 17;
optional App app = 18;
optional User user = 19;
optional Publisher publisher = 20;
optional Device device = 21;
optional Geo geo = 22;
optional GatewayStatus status = 23;
optional string raw_bid_request = 24;
google.protobuf.Timestamp timestamp = 25;
}
message TokenInfo {
optional TokenType token_type = 1;
optional bool is_bold_sdk = 2;
optional HeaderBiddingToken header_bidding_token = 3;
}
message App {
optional string name = 1;
optional string bundle = 2;
repeated string cat = 3;
optional string store_url = 4;
}
message Publisher {
optional string id = 1;
optional string name = 2;
optional string domain = 3;
}
message User {
optional string id = 1;
optional string consent = 2;
}
message Device{
optional string ua = 1;
optional string ip = 2;
optional int32 device_type = 3;
optional string make = 4;
optional string model = 5;
optional string os = 6;
optional string osv = 7;
}
message Geo {
optional float lat = 1;
optional float lon = 2;
optional int32 type = 3;
optional string country = 4;
optional string region = 5;
optional string city = 6;
optional string zip = 7;
}
enum TokenType {
TOKEN_TYPE_UNSPECIFIED = 0;
TOKEN_TYPE_NATIVE = 1;
TOKEN_TYPE_HB = 2;
TOKEN_TYPE_HB_SCAR = 3;
}
message GatewayStatus {
optional bool is_error = 1;
optional GatewayError error = 2;
repeated string message = 3;
}
enum GatewayError {
GATEWAY_ERROR_UNSPECIFIED = 0;
GATEWAY_ERROR_PARSE_REQUEST = 1;
GATEWAY_ERROR_NIL_USER = 2;
GATEWAY_ERROR_NIL_DEVICE = 3;
GATEWAY_ERROR_NIL_TOKEN = 4;
GATEWAY_ERROR_INVALID_IMPRESSION_COUNT = 5;
GATEWAY_ERROR_MISSING_PLACEMENT_ID = 6;
GATEWAY_ERROR_NATIVE_TOKEN_RESOLUTION = 7;
GATEWAY_ERROR_UA_TOKEN_DECRYPTION = 8;
GATEWAY_ERROR_HB_TOKEN_DECODE = 9;
GATEWAY_ERROR_HB_TOKEN_UNMARSHAL = 10;
GATEWAY_ERROR_BANNER_GEO_THROTTLED = 11;
}

View File

@@ -0,0 +1,30 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/timestamps.proto";
option swift_prefix = "Gateway";
message Campaign {
// Version of the campaign token
int32 data_version = 1;
// Defined in tracking/v1/loaded_campaign_token.proto
bytes data = 2;
// Placement ID for which this campaign is loaded
string placement_id = 3;
// Impression opportunity ID for which this campaign is loaded
bytes impression_opportunity_id = 4;
// Timestamps for when the campaign was loaded (when Ad Loaded event was fired)
Timestamps load_timestamp = 5;
// Timestamps for when the campaign was shown (when Show call was made and it was moved from loaded_campaigns to shown_campaigns)
optional Timestamps show_timestamp = 6;
}
// This structure will be converted to Loaded Campaigns required by exchange.
message CampaignState {
// List of campaigns currently loaded and ready to be shown by SDK
repeated Campaign loaded_campaigns = 1;
// Last N campaigns shown by SDK in current session
repeated Campaign shown_campaigns = 2;
}

View File

@@ -0,0 +1,51 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
enum Platform {
PLATFORM_UNSPECIFIED = 0;
PLATFORM_ANDROID = 1;
PLATFORM_IOS = 2;
}
enum MediationProvider {
MEDIATION_PROVIDER_UNSPECIFIED = 0;
// Non well-known mediation provider, custom_mediation_name field should contain full mediation name from SDK
MEDIATION_PROVIDER_CUSTOM = 1;
// AdMob Mediation. Should match following values set in mediation.name: AdMob
MEDIATION_PROVIDER_ADMOB = 2;
// MAX Mediation. Should match following values set in mediation.name: MAX, AppLovinSdk_*, max
MEDIATION_PROVIDER_MAX = 3;
// Level Play Mediation. Should match following values set in mediation.name: ironSource, ironsource, IronSource
MEDIATION_PROVIDER_LEVELPLAY = 4;
}
// Information about the client who is making request
message ClientInfo {
// SDK Version represented as integer for example 4710
uint32 sdk_version = 1;
// SDK Version represented as string for example 4.7.1
string sdk_version_name = 2;
// Game ID used to initialize the SDK
string game_id = 3;
// Test Mode flag provided during initialization
bool test = 4;
// Platform of the client
Platform platform = 5;
// The well-known mediation provider used by the client
MediationProvider mediation_provider = 6;
// Non well-known mediation provider name, filled only if mediation_provider equals to MEDIATION_PROVIDER_CUSTOM
optional string custom_mediation_name = 7;
// The mediation provider version
optional string mediation_version = 8;
// The Omid partner version
optional string omid_partner_version = 9;
// The Omid version
optional string omid_version = 10;
// Check SDK development platform (e.g. Unity, Xamarin, Adobe Air, etc.)
optional string sdk_development_platform = 11;
// Admob SDK version if exists
optional string scar_version_name = 12;
}

View File

@@ -0,0 +1,38 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
enum DeveloperConsentType {
DEVELOPER_CONSENT_TYPE_UNSPECIFIED = 0;
DEVELOPER_CONSENT_TYPE_CUSTOM = 1;
DEVELOPER_CONSENT_TYPE_NON_BEHAVIORAL = 2; // "user.nonBehavioral.value"
DEVELOPER_CONSENT_TYPE_PIPL_CONSENT = 3; // "pipl.consent.value"
DEVELOPER_CONSENT_TYPE_PRIVACY_CONSENT = 4; // "privacy.consent.value"
DEVELOPER_CONSENT_TYPE_GDPR_CONSENT = 5; // "gdpr.consent.value"
DEVELOPER_CONSENT_TYPE_USER_OVER_AGE_LIMIT = 6; // "privacy.useroveragelimit.value"
}
enum DeveloperConsentChoice {
DEVELOPER_CONSENT_CHOICE_UNSPECIFIED = 0;
DEVELOPER_CONSENT_CHOICE_TRUE = 1;
DEVELOPER_CONSENT_CHOICE_FALSE = 2;
}
// A consent option provided by the developer stored in Public storage via Metadata API.
message DeveloperConsentOption {
// A Consent Type provided by the developer
DeveloperConsentType type = 1;
// A custom consent type provided by the developer, if there is not a defined consent type.
optional string custom_type = 2;
// The developer's choice for this consent type.
DeveloperConsentChoice value = 3;
}
// A developer's consent.
// Because we need to be able to send a list of consent options to the server.
message DeveloperConsent {
// The developer's consent options.
repeated DeveloperConsentOption options = 1;
}

View File

@@ -0,0 +1,83 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/timestamps.proto";
option swift_prefix = "Gateway";
enum DiagnosticEventType {
DIAGNOSTIC_EVENT_TYPE_UNSPECIFIED = 0;
DIAGNOSTIC_EVENT_TYPE_CUSTOM = 1;
}
enum DiagnosticTagType {
DIAGNOSTIC_TAG_TYPE_UNSPECIFIED = 0;
DIAGNOSTIC_TAG_TYPE_CUSTOM = 1;
}
// Severity of diagnostic events which are allowed to be sent
enum DiagnosticEventsSeverity {
DIAGNOSTIC_EVENTS_SEVERITY_UNSPECIFIED = 0;
DIAGNOSTIC_EVENTS_SEVERITY_DEBUG = 1;
DIAGNOSTIC_EVENTS_SEVERITY_INFO = 2;
DIAGNOSTIC_EVENTS_SEVERITY_WARNING = 3;
DIAGNOSTIC_EVENTS_SEVERITY_ERROR = 4;
DIAGNOSTIC_EVENTS_SEVERITY_ALWAYS = 5;
}
enum DiagnosticAdType {
DIAGNOSTIC_AD_TYPE_UNSPECIFIED = 0;
DIAGNOSTIC_AD_TYPE_FULLSCREEN = 1;
DIAGNOSTIC_AD_TYPE_BANNER = 2;
}
// A tag attached to a diagnostic event
message DiagnosticTag {
// Tag type using predefined integer representation
repeated DiagnosticTagType tag_type = 1;
// Tag type represented as string (event_type must be set to
// DIAGNOSTIC_TAG_TYPE_CUSTOM)
optional string custom_tag_type = 2;
// A value attached to a tag
oneof value {
string string_value = 3;
int32 int_value = 4;
}
}
// A diagnostic event
message DiagnosticEvent {
// Event type using predefined integer representation
DiagnosticEventType event_type = 1;
// Event type represented as string (event_type must be set to
// DIAGNOSTIC_EVENT_TYPE_CUSTOM)
optional string custom_event_type = 2;
// Device state when event was created
Timestamps timestamps = 3;
// Optional time value associated with event, in milliseconds
optional double time_value = 4;
// An alternative approach to handle tags
map<string, string> string_tags = 5;
map<string, uint32> int_tags = 6;
// The unique auto-incrementing event id for each event - replaces the batch
// ID to allow for retries to add to batches
int32 event_id = 7;
// Impression Opportunity ID of associated AdObject
optional bytes impression_opportunity_id = 8;
// Placement ID of associated AdObject
optional string placement_id = 9;
// Ad type of associated AdObject
optional DiagnosticAdType ad_type = 10;
// AdObject loaded with header bidding ad markup
optional bool is_header_bidding = 11;
}
message DiagnosticEventRequest {
// A batch of diagnostic events
repeated DiagnosticEvent batch = 1;
}

View File

@@ -0,0 +1,100 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/network_capability_transports.proto";
option swift_prefix = "Gateway";
enum ConnectionType {
CONNECTION_TYPE_UNSPECIFIED = 0;
CONNECTION_TYPE_WIFI = 1;
CONNECTION_TYPE_CELLULAR = 2;
}
message DynamicDeviceInfo {
reserved 4;
message Android {
optional bool network_connected = 1;
optional int32 network_type = 2;
optional bool network_metered = 3;
optional int32 telephony_manager_network_type = 4;
optional bool adb_enabled = 5;
optional bool usb_connected = 6;
optional double volume = 7;
optional double max_volume = 8;
optional int64 device_up_time = 9;
optional int64 device_elapsed_realtime = 10;
optional bool airplane_mode = 11;
optional bool stay_on_while_plugged_in = 12;
optional bool sd_card_present = 13;
// Network capabilities provided by Android API from https://developer.android.com/reference/android/net/NetworkCapabilities
NetworkCapabilityTransports network_capability_transports = 14;
optional int32 charging_type = 15;
}
message Ios {
optional string current_radio_access_technology = 1;
optional uint32 network_reachability_flags = 2;
repeated string nw_path_interfaces = 3;
repeated string locale_list = 4;
optional int32 current_ui_theme = 5;
optional string device_name = 6;
optional double volume = 7;
optional int32 tracking_auth_status = 8;
optional int64 device_up_time_with_sleep = 9;
optional int64 device_up_time_without_sleep = 10;
}
// Language used for UI on the phone
optional string language = 1;
// Network Operator Code if available
optional string network_operator = 2;
// Network Operator Name if available
optional string network_operator_name = 3;
// Total free disk space in kilobytes
optional int64 free_disk_space = 5;
// Total free RAM memory in kilobytes
optional int64 free_ram_memory = 6;
// Is a wired headset connected
optional bool wired_headset = 7;
// Time zone of the device
optional string time_zone = 8;
// Time zone offset of the device
optional int64 time_zone_offset = 9;
// Limited Tracking provided by Apple and Google Play
optional bool limited_tracking = 10;
// Limited Open Advertising Tracking provided by HUAWEI
optional bool limited_open_ad_tracking = 11;
// Battery level
optional double battery_level = 14;
// Battery status
optional int32 battery_status = 15;
// Connection type of the device
optional ConnectionType connection_type = 16;
// Is Application active
optional bool app_active = 17;
// Low power mode status
optional bool low_power_mode = 18;
// The user id used for Iron Source
optional string user_id = 19;
// Screen width in pixels which takes into account the device orientation
optional uint32 screen_width = 20;
// Screen height in pixels which takes into account the device orientation
optional uint32 screen_height = 21;
oneof platform_specific {
// Android specific information
Android android = 12;
// iOS specific information
Ios ios = 13;
}
}

View File

@@ -0,0 +1,13 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
// Error is a general error returned from a service. It can be returned via the payload
// to indicate that an error occurred within the service itself, or alongside the response
// to indicate failure to communicate with that service (reachability, timeout, etc.)
message Error {
// The text of the error.
string error_text = 2;
}

View File

@@ -0,0 +1,17 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
// The request to upload SCAR signals.
message GetTokenEventRequest {
// SCAR signal for rewarded ads.
optional bytes rewarded = 1;
// SCAR signal for interstitial ads.
optional bytes interstitial = 2;
// SCAR signal for banner ads.
optional bytes banner = 3;
// Token UUID associated with this signals
bytes token_id = 4;
}

View File

@@ -0,0 +1,18 @@
syntax = "proto3";
package gatewayprotocol.v1;
option swift_prefix = "Gateway";
// Ad Markup used in a header bidding integration
message HeaderBiddingAdMarkup {
// A blob of data which contains an ad to show.
// This blob should be provided to Ad Player to parse and cache the ad.
// Currently it is a Auction V6 response.
bytes ad_data = 1;
// A version of the ad data. Can be used to determine which parser to use.
int32 ad_data_version = 2;
// Configuration Token which can be used to fetch Ad Player Configuration.
bytes configuration_token = 3;
}

View File

@@ -0,0 +1,34 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/campaign_state.proto";
import "gatewayprotocol/v1/client_info.proto";
import "gatewayprotocol/v1/dynamic_device_info.proto";
import "gatewayprotocol/v1/pii.proto";
import "gatewayprotocol/v1/session_counters.proto";
import "gatewayprotocol/v1/static_device_info.proto";
import "gatewayprotocol/v1/timestamps.proto";
import "gatewayprotocol/v1/universal_request.proto";
import "gatewayprotocol/v1/initialization_data.proto";
option swift_prefix = "Gateway";
message HeaderBiddingToken {
bytes token_id = 1;
int32 token_number = 2;
bytes session_token = 3;
ClientInfo client_info = 4;
Timestamps timestamps = 5;
SessionCounters session_counters = 6;
StaticDeviceInfo static_device_info = 7;
DynamicDeviceInfo dynamic_device_info = 8;
optional Pii pii = 9;
CampaignState campaign_state = 10;
optional bytes tcf = 11;
optional bool scar_signals_collected = 12;
// Should be set if request is made without session token
optional LimitedSessionToken limited_session_token = 13;
// Should be set if request is made without session token and the SDK is initializing
optional InitializationData initialization_data = 14;
}

View File

@@ -0,0 +1,16 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/dynamic_device_info.proto";
import "gatewayprotocol/v1/static_device_info.proto";
option swift_prefix = "Gateway";
// An event which should be sent as soon as SDK completed initialization.
message InitializationCompletedEventRequest {
// Static Device Info properties
StaticDeviceInfo static_device_info = 1;
// Dynamic Device Info properties
DynamicDeviceInfo dynamic_device_info = 2;
}

View File

@@ -0,0 +1,13 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/initialization_request.proto";
import "gatewayprotocol/v1/universal_request.proto";
option swift_prefix = "Gateway";
message InitializationData {
optional InitializationRequest initialization_request = 1;
optional UniversalRequest.SharedData shared_data = 2;
}

View File

@@ -0,0 +1,60 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/client_info.proto";
option swift_prefix = "Gateway";
// InitializationRequest is the request sent by the SDK to the gateway.
// This information is also required to generate Install Event.
message InitializationDeviceInfo {
string bundle_id = 1;
string device_make = 2;
string device_model = 3;
string os_version = 4;
optional int32 tracking_auth_status = 5;
int64 total_disk_space = 6;
int64 total_ram_memory = 7;
string hashed_device_name = 8;
int64 current_ui_theme = 9;
string network_operator = 10;
double battery_level = 11;
int32 battery_status = 12;
int64 system_boot_time = 13;
string language = 14;
string local_list = 15;
string connection_type = 16;
}
// InitializationRequest is the request sent by the SDK to the gateway
message InitializationRequest {
ClientInfo client_info = 1;
// User Consent and privacy context stored on the device
optional bytes privacy = 2;
// Install Identifier stored on the device
string idfi = 3;
// Session ID generated on the device. This can be shared across multiple SDK/products.
bytes session_id = 4;
// Optional cache that can be provided by the gateway and stored locally on
// the SDK this allows for a reduction in cross cluster traffic + latency
// controlled by the gateway
optional bytes cache = 5;
// Optional legacy flow user consent. This structure is locally stored in Storage API
// Stored in private storage with keys `privacy.*`, `pipl.*` and `unity.privacy.permissions.*`; contains JSON with flatten tree
optional string legacy_flow_user_consent = 6;
// AUID provided by Level Play SDK
optional bytes auid = 7;
// Unity Analytics User ID
// from Unity engine Modules/UnityAnalytics/CoreStats/UnityConnectService.cpp
// stored using 'unity.cloud_userid' key
optional string analytics_user_id = 8;
// Device Info which is requried by initialization request
InitializationDeviceInfo device_info = 9;
// Flag which indicates if it is first initialization after install
// Should be backward compatible with legacy flow
// store using Storage API under key configuration.hasInitialized
bool is_first_init = 10;
// AUID provided by Level Play SDK in string format
optional string auid_string = 11;
}

View File

@@ -0,0 +1,42 @@
syntax = "proto3";
package gatewayprotocol.v1;
import "gatewayprotocol/v1/error.proto";
import "gatewayprotocol/v1/native_configuration.proto";
option swift_prefix = "Gateway";
enum AdFormat {
AD_FORMAT_UNSPECIFIED = 0;
AD_FORMAT_INTERSTITIAL = 1;
AD_FORMAT_REWARDED = 2;
AD_FORMAT_BANNER = 3;
}
message Placement {
AdFormat ad_format = 1;
}
message InitializationResponse {
// Native Configuration contains feature flags and settings to be consumed by Native SDK
NativeConfiguration native_configuration = 1;
// Can be used to override URL to be used for accessing the gateway
optional string universal_request_url = 2;
// If set, there was an error processing the request.
optional Error error = 3;
// If set, Native SDK must send initialization completed request to the gateway
bool trigger_initialization_completed_request = 4;
// Count of last show campaigns to be tracked and be sent to the gateway in CampaignState
int32 count_of_last_shown_campaigns = 5;
// Placements to be used for SCAR signal collection for waterfall
map<string, Placement> scar_placements = 6;
// AdFormats eligible for SCAR signal collection for header bidding
repeated AdFormat scar_eligible_formats = 7;
}

Some files were not shown because too many files have changed in this diff Show More