// Copyright 2019 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 google.ads.admob.v1; import "google/ads/admob/v1/admob_resources.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; option go_package = "google.golang.org/genproto/googleapis/ads/admob/v1;admob"; option java_outer_classname = "AdMobApiProto"; option java_package = "com.google.ads.admob.v1"; // The AdMob API allows AdMob publishers to access their account settings and // generate reports. service AdMobApi { option (google.api.default_host) = "admob.googleapis.com"; // Gets information about the specified AdMob publisher account. rpc GetPublisherAccount(GetPublisherAccountRequest) returns (PublisherAccount) { option (google.api.http) = { get: "/v1/{name=accounts/*}" }; } // Lists the AdMob publisher account accessible with the client credential. // Currently, all credentials have access to at most one AdMob account. rpc ListPublisherAccounts(ListPublisherAccountsRequest) returns (ListPublisherAccountsResponse) { option (google.api.http) = { get: "/v1/accounts" }; } // Generates an AdMob Network report based on the provided report // specification. rpc GenerateNetworkReport(GenerateNetworkReportRequest) returns (stream GenerateNetworkReportResponse) { option (google.api.http) = { post: "/v1/{parent=accounts/*}/networkReport:generate" body: "*" }; } // Generates an AdMob Mediation report based on the provided report // specification. rpc GenerateMediationReport(GenerateMediationReportRequest) returns (stream GenerateMediationReportResponse) { option (google.api.http) = { post: "/v1/{parent=accounts/*}/mediationReport:generate" body: "*" }; } } // Request to retrieve the specified publisher account. message GetPublisherAccountRequest { // Resource name of the publisher account to retrieve. // Example: accounts/pub-9876543210987654 string name = 1; } // Request to retrieve the AdMob publisher account accessible with the client // credential. Currently all credentials have access to at most 1 account. message ListPublisherAccountsRequest { // Maximum number of accounts to return. int32 page_size = 1; // The value returned by the last `ListPublisherAccountsResponse`; indicates // that this is a continuation of a prior `ListPublisherAccounts` call, and // that the system should return the next page of data. string page_token = 2; } // Response for the publisher account list request. message ListPublisherAccountsResponse { // Publisher that the client credentials can access. repeated PublisherAccount account = 1; // If not empty, indicates that there might be more accounts for the request; // you must pass this value in a new `ListPublisherAccountsRequest`. string next_page_token = 2; } // Request to generate an AdMob Mediation report. message GenerateMediationReportRequest { // Resource name of the account to generate the report for. // Example: accounts/pub-9876543210987654 string parent = 1; // Network report specification. MediationReportSpec report_spec = 2; } // The streaming response for the AdMob Mediation report where the first // response contains the report header, then a stream of row responses, and // finally a footer as the last response message. // // For example: // // [{ // "header": { // "date_range": { // "start_date": {"year": 2018, "month": 9, "day": 1}, // "end_date": {"year": 2018, "month": 9, "day": 30} // } // "localization_settings": { // "currency_code": "USD", // "language_code": "en-US" // } // } // }, // { // "row": { // "dimension_values": { // "DATE": {"value": "20180918"}, // "APP": { // "value": "ca-app-pub-8123415297019784~1001342552", // "display_label": "My app name!" // } // }, // "metric_values": { // "ESTIMATED_EARNINGS": {"decimal_value": "1324746"} // } // } // }, // { // "footer": {"matching_row_count": 1} // }] message GenerateMediationReportResponse { // Each stream response message contains one type of payload. oneof payload { // Report generation settings that describes the report contents, such as // the report date range and localization settings. ReportHeader header = 1; // Actual report data. ReportRow row = 2; // Additional information about the generated report, such as warnings about // the data. ReportFooter footer = 3; } } // Request to generate an AdMob Network report. message GenerateNetworkReportRequest { // Resource name of the account to generate the report for. // Example: accounts/pub-9876543210987654 string parent = 1; // Network report specification. NetworkReportSpec report_spec = 2; } // The streaming response for the AdMob Network report where the first response // contains the report header, then a stream of row responses, and finally a // footer as the last response message. // // For example: // // [{ // "header": { // "dateRange": { // "startDate": {"year": 2018, "month": 9, "day": 1}, // "endDate": {"year": 2018, "month": 9, "day": 30} // } // "localizationSettings": { // "currencyCode": "USD", // "languageCode": "en-US" // } // } // }, // { // "row": { // "dimensionValues": { // "DATE": {"value": "20180918"}, // "APP": { // "value": "ca-app-pub-8123415297019784~1001342552", // displayLabel: "My app name!" // } // }, // "metricValues": { // "ESTIMATED_EARNINGS": {"microsValue": 6500000} // } // } // }, // ... // { // "footer": {"matchingRowCount": 5} // }] message GenerateNetworkReportResponse { // Each stream response message contains one type of payload. oneof payload { // Report generation settings that describes the report contents, such as // the report date range and localization settings. ReportHeader header = 1; // Actual report data. ReportRow row = 2; // Additional information about the generated report, such as warnings about // the data. ReportFooter footer = 3; } }