diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..21f77f45f --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +*.idea +*.pyc +*.iml + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Sphinx documentation +docs/_build/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..939e5341e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. There are +just a few small guidelines you need to follow. + +## Contributor License Agreement + +Contributions to this project must be accompanied by a Contributor License +Agreement. You (or your employer) retain the copyright to your contribution; +this simply gives us permission to use and redistribute your contributions as +part of the project. Head over to to see +your current agreements on file or to sign a new one. + +You generally only need to submit a CLA once, so if you've already submitted one +(even if it was for a different project), you probably don't need to do it +again. + +## Code reviews + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests. + +## Community Guidelines + +This project follows [Google's Open Source Community +Guidelines](https://opensource.google.com/conduct/). diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000..df1280513 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2 @@ +* 0.1.0: +- Initial release with support for Google Ads API v0. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..724a88071 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/examples/__init__.py b/examples/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/authentication/__init__.py b/examples/authentication/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/authentication/authenticate_in_standalone_application.py b/examples/authentication/authenticate_in_standalone_application.py new file mode 100644 index 000000000..1ac26042a --- /dev/null +++ b/examples/authentication/authenticate_in_standalone_application.py @@ -0,0 +1,63 @@ +# Copyright 2018 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 +# +# https://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. +"""This example creates an OAuth 2.0 refresh token for the Google Ads API. + +This illustrates how to step through the OAuth 2.0 native / installed +application flow. + +It is intended to be run from the command line and requires user input. +""" + +from __future__ import absolute_import + +import argparse + +from google_auth_oauthlib.flow import InstalledAppFlow + + +SCOPE = u'https://www.googleapis.com/auth/adwords' + + +def main(client_secrets_path, scopes): + flow = InstalledAppFlow.from_client_secrets_file( + client_secrets_path, scopes=scopes) + + flow.run_console() + + print('Access token: %s' % flow.credentials.token) + print('Refresh token: %s' % flow.credentials.refresh_token) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Generates OAuth 2.0 credentials with the specified ' + 'client secrets file.') + # The following argument(s) should be provided to run the example. + parser.add_argument('--client_secrets_path', required=True, + help=('Path to the client secrets JSON file from the ' + 'Google Developers Console that contains your ' + 'client ID and client secret.')) + parser.add_argument('--additional_scopes', default=None, + help=('Additional scopes to apply when generating the ' + 'refresh token. Each scope should be separated ' + 'by a comma.')) + args = parser.parse_args() + + configured_scopes = [SCOPE] + + if args.additional_scopes: + configured_scopes.extend(args.additional_scopes.replace(' ', '') + .split(',')) + + main(args.client_secrets_path, configured_scopes) diff --git a/examples/authentication/authenticate_in_web_application.py b/examples/authentication/authenticate_in_web_application.py new file mode 100644 index 000000000..e8e122231 --- /dev/null +++ b/examples/authentication/authenticate_in_web_application.py @@ -0,0 +1,63 @@ +# Copyright 2018 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 +# +# https://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. +"""This example creates an OAuth 2.0 refresh token for the Google Ads API. + +This illustrates how to step through the OAuth 2.0 native / installed +application flow. + +It is intended to be run from the command line and requires user input. +""" + +from __future__ import absolute_import + +import argparse + +from google_auth_oauthlib.flow import InstalledAppFlow + + +SCOPE = u'https://www.googleapis.com/auth/adwords' + + +def main(client_secrets_path, scopes): + flow = InstalledAppFlow.from_client_secrets_file( + client_secrets_path, scopes=scopes) + + flow.run_local_server() + + print('Access token: %s' % flow.credentials.token) + print('Refresh token: %s' % flow.credentials.refresh_token) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Generates OAuth 2.0 credentials with the specified ' + 'client secrets file.') + # The following argument(s) should be provided to run the example. + parser.add_argument('--client_secrets_path', required=True, + help=('Path to the client secrets JSON file from the ' + 'Google Developers Console that contains your ' + 'client ID and client secret.')) + parser.add_argument('--additional_scopes', default=None, + help=('Additional scopes to apply when generating the ' + 'refresh token. Each scope should be separated ' + 'by a comma.')) + args = parser.parse_args() + + configured_scopes = [SCOPE] + + if args.additional_scopes: + configured_scopes.extend(args.additional_scopes.replace(' ', '') + .split(',')) + + main(args.client_secrets_path, configured_scopes) diff --git a/examples/v0/__init__.py b/examples/v0/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/account_management/__init__.py b/examples/v0/account_management/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/account_management/get_account_information.py b/examples/v0/account_management/get_account_information.py new file mode 100644 index 000000000..6cd5419b6 --- /dev/null +++ b/examples/v0/account_management/get_account_information.py @@ -0,0 +1,67 @@ +# Copyright 2018 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 +# +# https://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. +"""This example lists information about an advertising account. + +For example, its name, currency, time zone, etc. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id): + customer_service = client.get_service('CustomerService') + + resource_name = customer_service.customer_path(customer_id) + + try: + customer = customer_service.get_customer(resource_name=resource_name) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Customer ID: %d' % customer.id.value) + print('\tDescriptive name: %s' % customer.descriptive_name.value) + print('\tCurrency code: %s' % customer.currency_code.value) + print('\tTime zone: %s' % customer.time_zone.value) + print('\tTracking URL template: %s' % customer.tracking_url_template.value) + print('\tAuto tagging enabled: %s' % customer.auto_tagging_enabled) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Displays basic information about the specified ' + 'customer\'s advertising account.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id) diff --git a/examples/v0/advanced_operations/__init__.py b/examples/v0/advanced_operations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py b/examples/v0/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py new file mode 100644 index 000000000..2900f6e23 --- /dev/null +++ b/examples/v0/advanced_operations/add_expanded_text_ad_with_upgraded_urls.py @@ -0,0 +1,109 @@ +# Copyright 2018 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 +# +# https://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. +"""This adds an expanded text ad using advanced features of upgraded URLs.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id): + ad_group_ad_service = client.get_service('AdGroupAdService') + ad_group_service = client.get_service('AdGroupService') + + # Create ad group ad. + ad_group_ad_operation = client.get_type('AdGroupAdOperation') + ad_group_ad = ad_group_ad_operation.create + ad_group_ad.ad_group.value = ad_group_service.ad_group_path( + customer_id, ad_group_id) + ad_group_ad.status = client.get_type('AdGroupAdStatusEnum').PAUSED + + # Set expanded text ad info + final_url = ad_group_ad.ad.final_urls.add() + final_url.value = 'http://www.example.com/cruise/space/' + final_url = ad_group_ad.ad.final_urls.add() + final_url.value = 'http://www.example.com/locations/mars/' + + ad_group_ad.ad.expanded_text_ad.description.value = ( + 'Low-gravity fun for everyone!') + ad_group_ad.ad.expanded_text_ad.headline_part1.value = ( + 'Luxury cruise to Mars') + ad_group_ad.ad.expanded_text_ad.headline_part2.value = ( + 'Visit the Red Planet in Style.') + + # Specify a tracking URL for 3rd party tracking provider. You may specify + # one at customer, campaign, ad group, ad, criterion, or feed item levels. + ad_group_ad.ad.tracking_url_template.value = ( + 'http://tracker.example.com/?season={_season}&promocode={_promocode}&' + 'u={lpurl}' + ) + + # Since your tracking URL has two custom parameters, provide their values + # too. This can be provided at campaign, ad group, ad, criterion, or feed + # item levels. + param_1 = ad_group_ad.ad.url_custom_parameters.add() + param_1.key.value = 'season' + param_1.value.value = 'easter123' + + param_2 = ad_group_ad.ad.url_custom_parameters.add() + param_2.key.value = 'promocode' + param_2.value.value = 'nj123' + + # Specify a list of final mobile URLs. This field cannot be set if URL field + # is set, or finalUrls is unset. This may be specified at ad, criterion, and + # feed item levels. + final_mobile_url = ad_group_ad.ad.final_mobile_urls.add() + final_mobile_url.value = 'http://mobile.example.com/cruise/space/' + final_mobile_url = ad_group_ad.ad.final_mobile_urls.add() + final_mobile_url.value = 'http://mobile.example.com/locations/mars/' + + # Add the ad group ad. + try: + ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created expanded text ad %s.' + % ad_group_ad_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds an expanded text ad to the specified ad group ID, ' + 'for the given customer ID.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/v0/advanced_operations/use_portfolio_bidding_strategy.py b/examples/v0/advanced_operations/use_portfolio_bidding_strategy.py new file mode 100644 index 000000000..dc99b6058 --- /dev/null +++ b/examples/v0/advanced_operations/use_portfolio_bidding_strategy.py @@ -0,0 +1,139 @@ +# Copyright 2018 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 +# +# https://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. +"""This example constructs a campaign with a Portfolio Bidding Strategy.""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import uuid + +import google.ads.google_ads.client + + +def main(client, customer_id): + campaign_budget_service = client.get_service('CampaignBudgetService') + bidding_strategy_service = client.get_service('BiddingStrategyService') + campaign_service = client.get_service('CampaignService') + + # Create a budget, which can be shared by multiple campaigns. + campaign_budget_operation = client.get_type('CampaignBudgetOperation') + campaign_budget = campaign_budget_operation.create + campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.delivery_method = client.get_type( + 'BudgetDeliveryMethodEnum').STANDARD + campaign_budget.amount_micros.value = 500000 + campaign_budget.explicitly_shared.value = True + + # Add budget. + try: + campaign_budget_response = ( + campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + campaign_budget_id = campaign_budget_response.results[0].resource_name + + print('Budget "%s" was created.' % campaign_budget_id) + + # Create a portfolio bidding strategy. + bidding_strategy_operation = client.get_type('BiddingStrategyOperation') + bidding_strategy = bidding_strategy_operation.create + bidding_strategy.name.value = 'Enhanced CPC %s' % uuid.uuid4() + target_spend = bidding_strategy.target_spend + target_spend.cpc_bid_ceiling_micros.value = 2000000 + target_spend.target_spend_micros.value = 20000000 + + # Add portfolio bidding strategy. + try: + bidding_strategy_response = ( + bidding_strategy_service.mutate_bidding_strategies( + customer_id, [bidding_strategy_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + bidding_strategy_id = bidding_strategy_response.results[0].resource_name + + print('Portfolio bidding strategy "%s" was created.' % bidding_strategy_id) + + # Create campaign. + campaign_operation = client.get_type('CampaignOperation') + campaign = campaign_operation.create + campaign.name.value = 'Interplanetary Cruise %s' % uuid.uuid4() + campaign.advertising_channel_type = client.get_type( + 'AdvertisingChannelTypeEnum').SEARCH + + # Recommendation: Set the campaign to PAUSED when creating it to prevent the + # ads from immediately serving. Set to ENABLED once you've added targeting + # and the ads are ready to serve. + campaign.status = client.get_type('CampaignStatusEnum').PAUSED + + # Set the bidding strategy and budget. + campaign.bidding_strategy.value = bidding_strategy_id + campaign.manual_cpc.enhanced_cpc_enabled.value = True + campaign.campaign_budget.value = campaign_budget_id + + # Set the campaign network options. + campaign.network_settings.target_google_search.value = True + campaign.network_settings.target_search_network.value = True + campaign.network_settings.target_content_network.value = False + campaign.network_settings.target_partner_search_network.value = False + + # Add the campaign. + try: + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created campaign %s.' % campaign_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Adds a campaign for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id) diff --git a/examples/v0/basic_operations/__init__.py b/examples/v0/basic_operations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/basic_operations/add_ad_groups.py b/examples/v0/basic_operations/add_ad_groups.py new file mode 100644 index 000000000..8392b890a --- /dev/null +++ b/examples/v0/basic_operations/add_ad_groups.py @@ -0,0 +1,75 @@ +# Copyright 2018 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 +# +# https://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. +"""This example adds an ad group. + +To get ad groups, run get_ad_groups.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import uuid + +import google.ads.google_ads.client + + +def main(client, customer_id, campaign_id): + ad_group_service = client.get_service('AdGroupService') + campaign_service = client.get_service('CampaignService') + + # Create ad group. + ad_group_operation = client.get_type('AdGroupOperation') + ad_group = ad_group_operation.create + ad_group.name.value = 'Earth to Mars cruises %s' % uuid.uuid4() + ad_group.status = client.get_type('AdGroupStatusEnum').ENABLED + ad_group.campaign.value = campaign_service.campaign_path( + customer_id, campaign_id) + ad_group.type = client.get_type('AdGroupTypeEnum').SEARCH_STANDARD + ad_group.cpc_bid_micros.value = 10000000 + + # Add the ad group. + try: + ad_group_response = ad_group_service.mutate_ad_groups( + customer_id, [ad_group_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created ad group %s.' % ad_group_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Adds an ad group for specified customer and campaign id.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=True, help='The campaign ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/v0/basic_operations/add_campaigns.py b/examples/v0/basic_operations/add_campaigns.py new file mode 100644 index 000000000..937b72785 --- /dev/null +++ b/examples/v0/basic_operations/add_campaigns.py @@ -0,0 +1,121 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to add a campaign. + +To get campaigns, run get_campaigns.py. +""" + +from __future__ import absolute_import + +import argparse +import datetime +import six +import sys +import uuid + +import google.ads.google_ads.client + + +_DATE_FORMAT = '%Y%m%d' + + +def main(client, customer_id): + campaign_budget_service = client.get_service('CampaignBudgetService') + campaign_service = client.get_service('CampaignService') + + # Create a budget, which can be shared by multiple campaigns. + campaign_budget_operation = client.get_type('CampaignBudgetOperation') + campaign_budget = campaign_budget_operation.create + campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.delivery_method = client.get_type( + 'BudgetDeliveryMethodEnum').STANDARD + campaign_budget.amount_micros.value = 500000 + + # Add budget. + try: + campaign_budget_response = ( + campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + # Create campaign. + campaign_operation = client.get_type('CampaignOperation') + campaign = campaign_operation.create + campaign.name.value = 'Interplanetary Cruise %s' % uuid.uuid4() + campaign.advertising_channel_type = client.get_type( + 'AdvertisingChannelTypeEnum').SEARCH + + # Recommendation: Set the campaign to PAUSED when creating it to prevent the + # ads from immediately serving. Set to ENABLED once you've added targeting + # and the ads are ready to serve. + campaign.status = client.get_type('CampaignStatusEnum').PAUSED + + # Set the bidding strategy and budget. + campaign.manual_cpc.enhanced_cpc_enabled.value = True + campaign.campaign_budget.value = ( + campaign_budget_response.results[0].resource_name) + + # Set the campaign network options. + campaign.network_settings.target_google_search.value = True + campaign.network_settings.target_search_network.value = True + campaign.network_settings.target_content_network.value = False + campaign.network_settings.target_partner_search_network.value = False + + # Optional: Set the start date. + start_time = datetime.date.today() + datetime.timedelta(days=1) + campaign.start_date.value = datetime.date.strftime(start_time, _DATE_FORMAT) + + # Optional: Set the end date. + end_time = start_time + datetime.timedelta(weeks=4) + campaign.end_date.value = datetime.date.strftime(end_time, _DATE_FORMAT) + + # Add the campaign. + try: + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created campaign %s.' % campaign_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Adds a campaign for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id) diff --git a/examples/v0/basic_operations/add_expanded_text_ads.py b/examples/v0/basic_operations/add_expanded_text_ads.py new file mode 100644 index 000000000..41db1da61 --- /dev/null +++ b/examples/v0/basic_operations/add_expanded_text_ads.py @@ -0,0 +1,84 @@ +# Copyright 2018 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 +# +# https://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. +"""This example adds an expanded text ad. + +To get expanded text ads, run get_expanded_text_ads.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import uuid + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id): + ad_group_ad_service = client.get_service('AdGroupAdService') + ad_group_service = client.get_service('AdGroupService') + + # Create ad group ad. + ad_group_ad_operation = client.get_type('AdGroupAdOperation') + ad_group_ad = ad_group_ad_operation.create + ad_group_ad.ad_group.value = ad_group_service.ad_group_path( + customer_id, ad_group_id) + ad_group_ad.status = client.get_type('AdGroupAdStatusEnum').PAUSED + + # Set expanded text ad info + final_url = ad_group_ad.ad.final_urls.add() + final_url.value = 'http://www.example.com' + ad_group_ad.ad.expanded_text_ad.description.value = 'Buy your tickets now!' + ad_group_ad.ad.expanded_text_ad.headline_part1.value = ( + 'Cruise to Mars %s' % str(uuid.uuid4())[:15]) + ad_group_ad.ad.expanded_text_ad.headline_part2.value = ( + 'Best space cruise line') + ad_group_ad.ad.expanded_text_ad.path1.value = 'all-inclusive' + ad_group_ad.ad.expanded_text_ad.path2.value = 'deals' + + try: + ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created ad group ad %s.' + % ad_group_ad_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds an expanded text ad to the specified ad group ID, ' + 'for the given customer ID.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/v0/basic_operations/add_keywords.py b/examples/v0/basic_operations/add_keywords.py new file mode 100644 index 000000000..6ca0b3882 --- /dev/null +++ b/examples/v0/basic_operations/add_keywords.py @@ -0,0 +1,90 @@ +# Copyright 2018 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 +# +# https://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. +"""This example demonstrates how to add a keyword to an ad group.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id, keyword): + ad_group_service = client.get_service('AdGroupService') + ad_group_criterion_service = client.get_service('AdGroupCriterionService') + + # Create keyword. + ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation') + ad_group_criterion = ad_group_criterion_operation.create + ad_group_criterion.ad_group.value = ad_group_service.ad_group_path( + customer_id, ad_group_id) + ad_group_criterion.status = client.get_type( + 'AdGroupCriterionStatusEnum').ENABLED + ad_group_criterion.keyword.text.value = keyword + ad_group_criterion.keyword.match_type = client.get_type( + 'KeywordMatchTypeEnum').EXACT + + # Optional field + # All fields can be referenced from the protos directly. + # The protos are located in subdirectories under + # google/ads/googleads/v0/proto. + # ad_group_criterion.negative.value = True + + # Optional repeated field + # final_url = ad_group_criterion.final_urls.add() + # final_url.value = 'https://www.example.com' + + # Add keyword + try: + ad_group_criterion_response = ( + ad_group_criterion_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Created keyword %s.' + % ad_group_criterion_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds a keyword to the provided ad group, for the ' + 'specified customer.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-k', '--keyword', type=six.text_type, required=False, + default='mars cruise', + help=('The keyword to be added to the ad group. Note ' + 'that you will receive an error response if you ' + 'attempt to create a duplicate keyword.')) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, args.keyword) diff --git a/examples/v0/basic_operations/get_ad_groups.py b/examples/v0/basic_operations/get_ad_groups.py new file mode 100644 index 000000000..ff90685de --- /dev/null +++ b/examples/v0/basic_operations/get_ad_groups.py @@ -0,0 +1,72 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to retrieve ad groups.""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size, campaign_id=None): + ga_service = client.get_service('GoogleAdsService') + + query = 'SELECT campaign.id, ad_group.id, ad_group.name FROM ad_group' + + if campaign_id: + query = '%s WHERE campaign.id = %s' % (query, campaign_id) + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + try: + for row in results: + print('Ad group with ID %d and name "%s" was found in campaign ' + 'with ID %d.' + % (row.ad_group.id.value, row.ad_group.name.value, + row.campaign.id.value)) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='List ad groups for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=False, + help=('The campaign ID. Specify this to list ad groups ' + 'solely for this campaign ID.')) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, + campaign_id=args.campaign_id) diff --git a/examples/v0/basic_operations/get_artifact_metadata.py b/examples/v0/basic_operations/get_artifact_metadata.py new file mode 100644 index 000000000..e9262c7d6 --- /dev/null +++ b/examples/v0/basic_operations/get_artifact_metadata.py @@ -0,0 +1,116 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to retrieve artifact metadata. + +The metadata retrieved can provide additional context about the artifact, +such as whether it is selectable, filterable, or sortable. The artifact can be +either a resource (such as customer, or campaign) or a field (such as +metrics.impressions, campaign.id). It also shows the data type and artifacts +that are selectable with the artifact. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def _is_or_is_not(bool_value): + """Produces display text for whether metadata is applicable to artifact. + + Args: + bool_value: a BoolValue instance. + + Returns: + A str with value "is" if bool_value is True, else "is not". + """ + return 'is' if bool_value.value else 'isn\'t' + + +def main(client, artifact_name, page_size): + gaf_service = client.get_service('GoogleAdsFieldService') + + # Searches for an artifact with the specified name. + query = ('SELECT name, category, selectable, filterable, sortable, ' + 'selectable_with, data_type, is_repeated ' + 'WHERE name = \'%s\'') % artifact_name + + response = gaf_service.search_google_ads_fields( + query=query, page_size=page_size) + + # Iterates over all rows and prints out the metadata of the returned + # artifacts. + try: + for google_ads_field in response: + # Note that the category and data type printed below are enum + # values. For example, a value of 2 will be returned when the + # category is "RESOURCE". + # + # A mapping of enum names to values can be found in + # GoogleAdsFieldCategoryEnum for the category and + # GoogleAdsFieldDataTypeEnum for the data type. + selectable = _is_or_is_not(google_ads_field.selectable) + filterable = _is_or_is_not(google_ads_field.filterable) + sortable = _is_or_is_not(google_ads_field.sortable) + is_repeated = _is_or_is_not(google_ads_field.is_repeated) + + print('An artifact named "%s" with category %d and data type %d %s ' + 'selectable, %s filterable, %s sortable, and %s repeated.' + % (google_ads_field.name.value, google_ads_field.category, + google_ads_field.data_type, selectable, filterable, + sortable, is_repeated)) + + if len(google_ads_field.selectable_with) > 0: + selectable_artifacts = [ + wrapped_selectable_artifact.value + for wrapped_selectable_artifact + in google_ads_field.selectable_with] + + print('') + print('The artifact can be selected with the following ' + 'artifacts:') + for artifact in selectable_artifacts: + print(artifact) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Lists metadata for the specified artifact.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-a', '--artifact_name', type=six.text_type, + required=True, + help='The name of the artifact for which we are ' + 'retrieving metadata.') + args = parser.parse_args() + + main(google_ads_client, args.artifact_name, _DEFAULT_PAGE_SIZE) diff --git a/examples/v0/basic_operations/get_campaigns.py b/examples/v0/basic_operations/get_campaigns.py new file mode 100644 index 000000000..f70c6a2f5 --- /dev/null +++ b/examples/v0/basic_operations/get_campaigns.py @@ -0,0 +1,67 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to get all campaigns. + +To add campaigns, run add_campaigns.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT campaign.id, campaign.name FROM campaign ' + 'ORDER BY campaign.id') + + results = ga_service.search(customer_id, query=query,page_size=page_size) + + try: + for row in results: + print('Campaign with ID %d and name "%s" was found.' + % (row.campaign.id.value, row.campaign.name.value)) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Lists all campaigns for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/v0/basic_operations/get_expanded_text_ads.py b/examples/v0/basic_operations/get_expanded_text_ads.py new file mode 100644 index 000000000..abe4bce9a --- /dev/null +++ b/examples/v0/basic_operations/get_expanded_text_ads.py @@ -0,0 +1,82 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to retrieve expanded text ads.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size, ad_group_id=None): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT ad_group.id, ad_group_ad.ad.id, ' + 'ad_group_ad.ad.expanded_text_ad.headline_part1, ' + 'ad_group_ad.ad.expanded_text_ad.headline_part2, ' + 'ad_group_ad.status FROM ad_group_ad ' + 'WHERE ad_group_ad.ad.type = EXPANDED_TEXT_AD') + + if ad_group_id: + query = '%s AND ad_group.id = %s' % (query, ad_group_id) + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + try: + for row in results: + ad = row.ad_group_ad.ad + + if ad.expanded_text_ad: + expanded_text_ad_info = ad.expanded_text_ad + + print('Expanded text ad with ID %s, status %s, and headline ' + '%s - %s was found in ad group with ID %s.' + % (ad.id, row.ad_group_ad.status, + expanded_text_ad_info.headline_part1, + expanded_text_ad_info.headline_part2, + row.ad_group.id)) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='List ad groups for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=False, help='The ad group ID. ') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, + ad_group_id=args.ad_group_id) diff --git a/examples/v0/basic_operations/get_keywords.py b/examples/v0/basic_operations/get_keywords.py new file mode 100644 index 000000000..3da39c244 --- /dev/null +++ b/examples/v0/basic_operations/get_keywords.py @@ -0,0 +1,81 @@ +# Copyright 2018 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 +# +# https://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. +"""This example retrieves keywords for a customer.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size, ad_group_id=None): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT ad_group.id, ad_group_criterion.type, ' + 'ad_group_criterion.criterion_id, ' + 'ad_group_criterion.keyword.text, ' + 'ad_group_criterion.keyword.match_type FROM ad_group_criterion ' + 'WHERE ad_group_criterion.type = KEYWORD') + + if ad_group_id: + query = '%s AND ad_group.id = %s' % (query, ad_group_id) + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + try: + for row in results: + ad_group = row.ad_group + ad_group_criterion = row.ad_group_criterion + keyword = row.ad_group_criterion.keyword + + print('Keyword with text "%s", match type %s, criteria type %s, ' + 'and ID %s was found in ad group with ID %s.' + % (keyword.text.value, keyword.match_type, + ad_group_criterion.type, + ad_group_criterion.criterion_id.value, ad_group.id.value)) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Retrieves keywords for the specified customer, or ' + 'optionally for a specific ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=False, help='The ad group ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE, + ad_group_id=args.ad_group_id) diff --git a/examples/v0/basic_operations/pause_ad.py b/examples/v0/basic_operations/pause_ad.py new file mode 100644 index 000000000..5f580bac1 --- /dev/null +++ b/examples/v0/basic_operations/pause_ad.py @@ -0,0 +1,72 @@ +# Copyright 2018 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 +# +# https://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. +"""This example pauses an ad.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client +from google.api_core import protobuf_helpers + + +def main(client, customer_id, ad_group_id, ad_id): + ad_group_ad_service = client.get_service('AdGroupAdService') + + ad_group_ad_operation = client.get_type('AdGroupAdOperation') + + ad_group_ad = ad_group_ad_operation.update + ad_group_ad.resource_name = ad_group_ad_service.ad_group_ad_path( + customer_id, '%s_%s' % (ad_group_id, ad_id)) + ad_group_ad.status = client.get_type('AdGroupStatusEnum').PAUSED + fm = protobuf_helpers.field_mask(None, ad_group_ad) + ad_group_ad_operation.update_mask.CopyFrom(fm) + + try: + ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Paused ad group ad %s.' + % ad_group_ad_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Pauses an ad in the specified customer\'s ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-i', '--ad_id', type=six.text_type, required=True, + help='The ad ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, args.ad_id) diff --git a/examples/v0/basic_operations/remove_ad.py b/examples/v0/basic_operations/remove_ad.py new file mode 100644 index 000000000..37672aacc --- /dev/null +++ b/examples/v0/basic_operations/remove_ad.py @@ -0,0 +1,67 @@ +# Copyright 2018 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 +# +# https://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. +"""This example removes an existing ad.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id, ad_id): + ad_group_ad_service = client.get_service('AdGroupAdService') + ad_group_ad_operation = client.get_type('AdGroupAdOperation') + + resource_name = ad_group_ad_service.ad_group_ad_path( + customer_id, '%s_%s' % (ad_group_id, ad_id)) + ad_group_ad_operation.remove = resource_name + + try: + ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Removed ad group ad %s.' + % ad_group_ad_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Removes an ad from the specified customer\'s ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-i', '--ad_id', type=six.text_type, required=True, + help='The ad ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, args.ad_id) diff --git a/examples/v0/basic_operations/remove_ad_group.py b/examples/v0/basic_operations/remove_ad_group.py new file mode 100644 index 000000000..fbb44f1f8 --- /dev/null +++ b/examples/v0/basic_operations/remove_ad_group.py @@ -0,0 +1,63 @@ +# Copyright 2018 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 +# +# https://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. +"""This example removes an existing ad group.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id): + ad_group_service = client.get_service('AdGroupService') + ad_group_operation = client.get_type('AdGroupOperation') + + resource_name = ad_group_service.ad_group_path(customer_id, ad_group_id) + ad_group_operation.remove = resource_name + + try: + ad_group_response = ad_group_service.mutate_ad_groups( + customer_id, [ad_group_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Removed ad group %s.' % ad_group_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Removes an ad group for the specified customer.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id) diff --git a/examples/v0/basic_operations/remove_campaign.py b/examples/v0/basic_operations/remove_campaign.py new file mode 100644 index 000000000..ec18192e7 --- /dev/null +++ b/examples/v0/basic_operations/remove_campaign.py @@ -0,0 +1,63 @@ +# Copyright 2018 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 +# +# https://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. +"""This example removes an existing campaign.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, campaign_id): + campaign_service = client.get_service('CampaignService') + campaign_operation = client.get_type('CampaignOperation') + + resource_name = campaign_service.campaign_path(customer_id, campaign_id) + campaign_operation.remove = resource_name + + try: + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Removed campaign %s.' % campaign_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Removes given campaign for the specified customer.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=True, help='The campaign ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/v0/basic_operations/remove_keyword.py b/examples/v0/basic_operations/remove_keyword.py new file mode 100644 index 000000000..ef7593a95 --- /dev/null +++ b/examples/v0/basic_operations/remove_keyword.py @@ -0,0 +1,67 @@ +# Copyright 2018 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 +# +# https://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. +"""This example removes an existing keyword from an ad group.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id, criteria_id): + agc_service = client.get_service('AdGroupCriterionService') + agc_operation = client.get_type('AdGroupCriterionOperation') + + resource_name = agc_service.ad_group_criteria_path( + customer_id, '%s_%s' % (ad_group_id, criteria_id)) + agc_operation.remove = resource_name + + try: + agc_response = agc_service.mutate_ad_group_criteria( + customer_id, [agc_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Removed keyword %s.' % agc_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Removes given campaign for the specified customer.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-k', '--criteria_id', type=six.text_type, + required=True, help='The criteria ID, or keyword ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, + args.criteria_id) diff --git a/examples/v0/basic_operations/update_ad_group.py b/examples/v0/basic_operations/update_ad_group.py new file mode 100644 index 000000000..16a39039d --- /dev/null +++ b/examples/v0/basic_operations/update_ad_group.py @@ -0,0 +1,78 @@ +# Copyright 2018 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 +# +# https://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. +"""This example updates an ad group. + +To get ad groups, run get_ad_groups.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client +from google.api_core import protobuf_helpers + + +def main(client, customer_id, ad_group_id, bid_micro_amount): + ad_group_service = client.get_service('AdGroupService') + + # Create ad group operation. + ad_group_operation = client.get_type('AdGroupOperation') + ad_group = ad_group_operation.update + ad_group.resource_name = ad_group_service.ad_group_path( + customer_id, ad_group_id) + ad_group.status = client.get_type('AdGroupStatusEnum').PAUSED + ad_group.cpc_bid_micros.value = bid_micro_amount + fm = protobuf_helpers.field_mask(None, ad_group) + ad_group_operation.update_mask.CopyFrom(fm) + + # Update the ad group. + try: + ad_group_response = ad_group_service.mutate_ad_groups( + customer_id, [ad_group_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Updated ad group %s.' % ad_group_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Updates an ad group for specified customer and campaign ' + 'id with the given bid micro amount.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-b', '--bid_micro_amount', type=int, + required=True, help='The bid micro amount.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, + args.bid_micro_amount) diff --git a/examples/v0/basic_operations/update_campaign.py b/examples/v0/basic_operations/update_campaign.py new file mode 100644 index 000000000..bff83ec57 --- /dev/null +++ b/examples/v0/basic_operations/update_campaign.py @@ -0,0 +1,75 @@ +# Copyright 2018 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 +# +# https://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. +"""This example updates a campaign. + +To get campaigns, run get_campaigns.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.errors +import google.ads.google_ads.client +from google.api_core import protobuf_helpers + + +def main(client, customer_id, campaign_id): + campaign_service = client.get_service('CampaignService') + # Create campaign operation. + campaign_operation = client.get_type('CampaignOperation') + campaign = campaign_operation.update + campaign.resource_name = campaign_service.campaign_path( + customer_id, campaign_id) + campaign.status = client.get_type('CampaignStatusEnum').PAUSED + campaign.network_settings.target_search_network.value = False + # Retrieve a FieldMask for the fields configured in the campaign. + fm = protobuf_helpers.field_mask(None, campaign) + campaign_operation.update_mask.CopyFrom(fm) + + # Update the campaign. + try: + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Updated campaign %s.' % campaign_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Updates the given campaign for the specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=True, help='The campaign ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id) diff --git a/examples/v0/basic_operations/update_keyword.py b/examples/v0/basic_operations/update_keyword.py new file mode 100644 index 000000000..5b4334e32 --- /dev/null +++ b/examples/v0/basic_operations/update_keyword.py @@ -0,0 +1,75 @@ +# Copyright 2018 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 +# +# https://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. +"""This example updates a keyword for the specified ad group.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client +from google.api_core import protobuf_helpers + + +def main(client, customer_id, ad_group_id, criterion_id): + agc_service = client.get_service('AdGroupCriterionService') + + ad_group_criterion_operation = client.get_type('AdGroupCriterionOperation') + + ad_group_criterion = ad_group_criterion_operation.update + ad_group_criterion.resource_name = agc_service.ad_group_criteria_path( + customer_id, '%s_%s' % (ad_group_id, criterion_id)) + ad_group_criterion.status = (client.get_type('AdGroupCriterionStatusEnum') + .ENABLED) + final_url = ad_group_criterion.final_urls.add() + final_url.value = 'https://www.example.com' + fm = protobuf_helpers.field_mask(None, ad_group_criterion) + ad_group_criterion_operation.update_mask.CopyFrom(fm) + + try: + agc_response = agc_service.mutate_ad_group_criteria( + customer_id, [ad_group_criterion_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Updated keyword %s.' % agc_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Pauses an ad in the specified customer\'s ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, help='The ad group ID.') + parser.add_argument('-k', '--criterion_id', type=six.text_type, + required=True, help='The criterion ID, or keyword ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, + args.criterion_id) diff --git a/examples/v0/hotel_ads/__init__.py b/examples/v0/hotel_ads/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/hotel_ads/add_hotel_ad.py b/examples/v0/hotel_ads/add_hotel_ad.py new file mode 100644 index 000000000..acc029537 --- /dev/null +++ b/examples/v0/hotel_ads/add_hotel_ad.py @@ -0,0 +1,223 @@ +# Copyright 2018 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 +# +# https://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. +"""This example adds a hotel campaign, ad group, and ad group ad. + +Prerequisite: You need to have access to the Hotel Ads Center, which can be +granted during integration with Google Hotels. The integration instructions can +be found at: +https://support.google.com/hotelprices/answer/6101897. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys +import uuid + +import google.ads.google_ads.client + + +def main(client, customer_id, hotel_center_account_id, + bid_ceiling_micro_amount): + # Add budget + budget_resource_name = add_budget(client, customer_id) + + # Add hotel campaign + campaign_resource_name = add_hotel_campaign( + client, customer_id, budget_resource_name, hotel_center_account_id, + bid_ceiling_micro_amount) + + # Add hotel ad group + ad_group_resource_name = add_hotel_ad_group(client, customer_id, + campaign_resource_name) + + # Add hotel ad + add_hotel_ad(client, customer_id, ad_group_resource_name) + + +def add_budget(client, customer_id): + campaign_budget_service = client.get_service('CampaignBudgetService') + + # Create a budget, which can be shared by multiple campaigns. + campaign_budget_operation = client.get_type('CampaignBudgetOperation') + campaign_budget = campaign_budget_operation.create + campaign_budget.name.value = 'Interplanetary Budget %s' % uuid.uuid4() + campaign_budget.delivery_method = client.get_type( + 'BudgetDeliveryMethodEnum').STANDARD + campaign_budget.amount_micros.value = 500000 + + # Add budget. + try: + campaign_budget_response = ( + campaign_budget_service.mutate_campaign_budgets( + customer_id, [campaign_budget_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + budget_resource_name = campaign_budget_response.results[0].resource_name + + print('Created budget %s' % budget_resource_name) + + return budget_resource_name + + +def add_hotel_ad(client, customer_id, ad_group_resource_name): + ad_group_ad_service = client.get_service('AdGroupAdService') + + # Creates a new ad group ad and sets the hotel ad to it. + ad_group_ad_operation = client.get_type('AdGroupAdOperation') + ad_group_ad = ad_group_ad_operation.create + ad_group_ad.ad_group.value = ad_group_resource_name + ad_group_ad.status = client.get_type('AdGroupAdStatusEnum').PAUSED + ad_group_ad.ad.hotel_ad.CopyFrom(client.get_type('HotelAdInfo')) + + # Add the ad group ad. + try: + ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads( + customer_id, [ad_group_ad_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + ad_group_ad_resource_name = ad_group_ad_response.results[0].resource_name + + print('Created hotel ad %s.' % ad_group_ad_resource_name) + + return ad_group_resource_name + + +def add_hotel_ad_group(client, customer_id, campaign_resource_name): + ad_group_service = client.get_service('AdGroupService') + + # Create ad group. + ad_group_operation = client.get_type('AdGroupOperation') + ad_group = ad_group_operation.create + ad_group.name.value = 'Earth to Mars cruise %s' % uuid.uuid4() + ad_group.status = client.get_type('AdGroupStatusEnum').ENABLED + ad_group.campaign.value = campaign_resource_name + # Sets the ad group type to HOTEL_ADS. This cannot be set to other types. + ad_group.type = client.get_type('AdGroupTypeEnum').HOTEL_ADS + ad_group.cpc_bid_micros.value = 10000000 + + # Add the ad group. + try: + ad_group_response = ad_group_service.mutate_ad_groups( + customer_id, [ad_group_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + ad_group_resource_name = ad_group_response.results[0].resource_name + + print('Added a hotel ad group with resource name "%s".' + % ad_group_resource_name) + + return ad_group_resource_name + + +def add_hotel_campaign(client, customer_id, budget_resource_name, + hotel_center_account_id, bid_ceiling_micro_amount): + campaign_service = client.get_service('CampaignService') + + # Create campaign. + campaign_operation = client.get_type('CampaignOperation') + campaign = campaign_operation.create + campaign.name.value = 'Interplanetary Cruise Campaign %s' % uuid.uuid4() + + # Configures settings related to hotel campaigns including advertising + # channel type and hotel setting info. + campaign.advertising_channel_type = client.get_type( + 'AdvertisingChannelTypeEnum').HOTEL + campaign.hotel_setting.hotel_center_id.value = hotel_center_account_id + + # Recommendation: Set the campaign to PAUSED when creating it to prevent the + # ads from immediately serving. Set to ENABLED once you've added targeting + # and the ads are ready to serve. + campaign.status = client.get_type('CampaignStatusEnum').PAUSED + + # Set the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC + # can be used for hotel campaigns. + campaign.percent_cpc.cpc_bid_ceiling_micros.value = ( + bid_ceiling_micro_amount) + + # Sets the budget. + campaign.campaign_budget.value = budget_resource_name + + # Set the campaign network options. Only Google Search is allowed for hotel + # campaigns. + campaign.network_settings.target_google_search.value = True + + # Add the campaign. + try: + campaign_response = campaign_service.mutate_campaigns( + customer_id, [campaign_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + campaign_resource_name = campaign_response.results[0].resource_name + + print('Added a hotel campaign with resource name "%s".' + % campaign_resource_name) + + return campaign_resource_name + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds an expanded text ad to the specified ad group ID, ' + 'for the given customer ID.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-b', '--bid_ceiling_micro_amount', type=int, + required=True, help=('The bid ceiling micro amount for ' + 'the hotel campaign.')) + parser.add_argument('-h', '--hotel_center_account_id', type=six.text_type, + required=True, help='The hotel center account ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.hotel_center_account_id, + args.bid_ceiling_micro_amount) diff --git a/examples/v0/hotel_ads/add_hotel_ad_group_bid_modifiers.py b/examples/v0/hotel_ads/add_hotel_ad_group_bid_modifiers.py new file mode 100644 index 000000000..5ed7912fe --- /dev/null +++ b/examples/v0/hotel_ads/add_hotel_ad_group_bid_modifiers.py @@ -0,0 +1,113 @@ +# Copyright 2018 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 +# +# https://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. +"""This example adds an ad group bid modifier to a hotel ad group. + +Ad group bid modifiers based on hotel check-in day and hotel length of stay +will be added. + +For hotel check-in day, you need tp specify the resource name, which includes +the fixed criterion ID of the check-in day you want to set. In addition, you +don't set an ad group for this bid modifier type. + +For hotel length of stay, you don't need to specify the resource name, but +need to set an ad group instead. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, ad_group_id, check_in_day_criterion_id): + ad_group_service = client.get_service('AdGroupService') + ag_bm_service = client.get_service('AdGroupBidModifierService') + + # Create ad group bid modifier based on hotel check-in day. + check_in_ag_bm_operation = client.get_type('AdGroupBidModifierOperation') + check_in_ag_bid_modifier = check_in_ag_bm_operation.create + # Sets the resource name for the criterion ID whose value corresponds to the + # desired check-in day. + check_in_bm_resource_name = ag_bm_service.ad_group_bid_modifier_path( + customer_id, '%s_%s' % (ad_group_id, check_in_day_criterion_id)) + check_in_ag_bid_modifier.resource_name.value = check_in_bm_resource_name + # Sets the bid modifier value to 150%. + check_in_ag_bid_modifier.bid_modifier.value = 1.5 + check_in_ag_bid_modifier.hotel_check_in_day.CopyFrom(client.get_type( + 'HotelCheckInDayInfo')) + + # Create ad group bid modifier based on hotel length of stay info. + los_ag_bm_operation = client.get_type('AdGroupBidModifierOperation') + los_ag_bid_modifier = los_ag_bm_operation.create + los_ag_bid_modifier.ad_group.value = ad_group_service.ad_group_path( + customer_id, ad_group_id) + # Creates the hotel length of stay info. + hotel_length_of_stay_info = los_ag_bid_modifier.hotel_length_of_stay + hotel_length_of_stay_info.min_nights.value = 3 + hotel_length_of_stay_info.max_nights.value = 7 + # Sets the bid modifier value to 170%. + los_ag_bid_modifier.bid_modifier.value = 1.7 + + # Add the bid modifiers + try: + ag_bm_response = ag_bm_service.mutate_ad_groups( + customer_id, [check_in_ag_bm_operation, los_ag_bm_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + # Print out resource names of the added ad group bid modifiers. + print('Added %d hotel ad group bid modifiers:' + % len(ag_bm_response.results)) + + for result in ag_bm_response.results: + print(result.resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds an ad group bid modifier to a hotel ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-a', '--ad_group_id', type=six.text_type, + required=True, + help='The ad group ID of the hotel ad group.') + parser.add_argument('-d', '--check_in_criterion_id', type=int, default=60, + help=('The criterion ID referring to the check-in day. ' + 'If not specified, this example will provide the ' + 'value "60" to select Monday as the check-in ' + 'day. See the table of check-in days and ' + 'criterion IDs at:' + 'https://developers.google.com/google-ads/api/' + 'docs/hotel-ads/create-ad-group-bid-modifier' + '#hotelcheckindayinfo')) + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.ad_group_id, + args.check_in_criterion_id) diff --git a/examples/v0/recommendations/__init__.py b/examples/v0/recommendations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/recommendations/apply_recommendation.py b/examples/v0/recommendations/apply_recommendation.py new file mode 100644 index 000000000..b4b4e03a8 --- /dev/null +++ b/examples/v0/recommendations/apply_recommendation.py @@ -0,0 +1,70 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to apply a specified recommendation. + +To retrieve recommendations for text ads, run get_text_ad_recommendations.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, recommendation_id): + recommendation_service = client.get_service('RecommendationService') + + apply_recommendation_operation = client.get_type( + 'ApplyRecommendationOperation') + + apply_recommendation_operation.resource_name = ( + recommendation_service.recommendation_path( + customer_id, recommendation_id)) + + try: + recommendation_response = recommendation_service.apply_recommendation( + customer_id, [apply_recommendation_operation]) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Applied recommendation with resource name: "%s".' + % recommendation_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Pauses an ad in the specified customer\'s ad group.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-r', '--recommendation_id', type=six.text_type, + required=True, help='The recommendation ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.recommendation_id) diff --git a/examples/v0/recommendations/get_text_ad_recommendations.py b/examples/v0/recommendations/get_text_ad_recommendations.py new file mode 100644 index 000000000..599d7a961 --- /dev/null +++ b/examples/v0/recommendations/get_text_ad_recommendations.py @@ -0,0 +1,79 @@ +# Copyright 2018 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 +# +# https://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. +"""This example gets all TEXT_AD recommendations. + +To add campaigns, run add_campaigns.py. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT recommendation.type, recommendation.campaign, ' + 'recommendation.text_ad_recommendation FROM recommendation ' + 'WHERE recommendation.type = TEXT_AD') + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + try: + for row in results: + recommendation = row.recommendation + recommended_ad = recommendation.text_ad_recommendation.ad + print('Recommendation ("%s") was found for campaign "%s".' + % (recommendation.resource_name, recommendation.campaign)) + + if recommended_ad.display_url: + print('\tDisplay URL = "%s"' % recommended_ad.display_url) + + for url in recommended_ad.final_urls: + print('\tFinal URL = "%s"' % url) + + for url in recommended_ad.final_mobile_urls: + print('\tFinal Mobile URL = "%s"' % url) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description='Lists TEXT_AD recommendations for specified customer.') + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/v0/reporting/__init__.py b/examples/v0/reporting/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/reporting/get_keyword_stats.py b/examples/v0/reporting/get_keyword_stats.py new file mode 100644 index 000000000..314e20e6a --- /dev/null +++ b/examples/v0/reporting/get_keyword_stats.py @@ -0,0 +1,89 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to get campaign criteria. + +Retrieves negative keywords in a campaign. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, page_size): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, ' + 'ad_group_criterion.criterion_id, ' + 'ad_group_criterion.keyword.text, ' + 'ad_group_criterion.keyword.match_type, ' + 'metrics.impressions, metrics.clicks, metrics.cost_micros ' + 'FROM keyword_view WHERE date DURING LAST_7_DAYS ' + 'AND campaign.advertising_channel_type = \'SEARCH\' ' + 'AND ad_group.status = \'ENABLED\' ' + 'AND ad_group_criterion.status IN (\'ENABLED\', \'PAUSED\') ' + 'ORDER BY metrics.impressions DESC ' + 'LIMIT 50') + + response = ga_service.search(customer_id, query, page_size=page_size) + + try: + for row in response: + campaign = row.campaign + ad_group = row.ad_group + criterion = row.ad_group_criterion + metrics = row.metrics + + print('Keyword text "%s" with match type "%d" and ID %d in ad ' + 'group "%s" with ID "%d" in campaign "%s" with ID %d had %s ' + 'impression(s), %s click(s), and %s cost (in micros) during ' + 'the last 7 days.' + % (criterion.keyword.text.value, criterion.keyword.match_type, + criterion.criterion_id.value, + ad_group.name.value, ad_group.id.value, + campaign.name.value, campaign.id.value, + metrics.impressions.value, + metrics.clicks.value, metrics.cost_micros.value)) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Retrieves a campaign\'s negative keywords.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, _DEFAULT_PAGE_SIZE) diff --git a/examples/v0/targeting/__init__.py b/examples/v0/targeting/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/v0/targeting/add_campaign_targeting_criteria.py b/examples/v0/targeting/add_campaign_targeting_criteria.py new file mode 100644 index 000000000..a5a8ca957 --- /dev/null +++ b/examples/v0/targeting/add_campaign_targeting_criteria.py @@ -0,0 +1,75 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates adding campaign targeting criteria.""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +def main(client, customer_id, campaign_id, keyword): + campaign_criterion_service = client.get_service('CampaignCriterionService') + campaign_service = client.get_service('CampaignService') + + # Create the campaign criterion. + campaign_criterion_operation = client.get_type('CampaignCriterionOperation') + campaign_criterion = campaign_criterion_operation.create + campaign_criterion.campaign.value = campaign_service.campaign_path( + customer_id, campaign_id) + campaign_criterion.negative.value = True + criterion_keyword = campaign_criterion.keyword + criterion_keyword.text.value = keyword + criterion_keyword.match_type = client.get_type('KeywordMatchTypeEnum').BROAD + + try: + campaign_criterion_response = ( + campaign_criterion_service.mutate_campaign_criteria( + customer_id, [campaign_criterion_operation])) + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + print('Added campaign criterion "%s".' + % campaign_criterion_response.results[0].resource_name) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('Adds an expanded text ad to the specified ad group ID, ' + 'for the given customer ID.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=True, help='The campaign ID.') + parser.add_argument('-k', '--keyword', type=six.text_type, required=True, + help='The keyword to be added to the campaign.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id, args.keyword) diff --git a/examples/v0/targeting/get_campaign_targeting_criteria.py b/examples/v0/targeting/get_campaign_targeting_criteria.py new file mode 100644 index 000000000..49ac3b43f --- /dev/null +++ b/examples/v0/targeting/get_campaign_targeting_criteria.py @@ -0,0 +1,82 @@ +# Copyright 2018 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 +# +# https://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. +"""This example illustrates how to get campaign criteria, or negative keywords. +""" + +from __future__ import absolute_import + +import argparse +import six +import sys + +import google.ads.google_ads.client + + +_DEFAULT_PAGE_SIZE = 1000 + + +def main(client, customer_id, campaign_id, page_size): + ga_service = client.get_service('GoogleAdsService') + + query = ('SELECT campaign.id, campaign_criterion.campaign, ' + 'campaign_criterion.criterion_id, campaign_criterion.negative, ' + 'campaign_criterion.type, campaign_criterion.keyword.text, ' + 'campaign_criterion.keyword.match_type ' + 'FROM campaign_criterion ' + 'WHERE campaign.id = %s') % campaign_id + + results = ga_service.search(customer_id, query=query, page_size=page_size) + + try: + for row in results: + criterion = row.campaign_criterion + print('Campaign criterion with ID "%s" was retrieved:' + % criterion.criterion_id.value) + + if criterion.type == client.get_type('CriterionTypeEnum').KEYWORD: + print('\t%sKeyword with text "%s" and match type %s.' + % ('' if criterion.negative.value else 'Negative', + criterion.keyword.text.value, + criterion.keyword.match_type)) + else: + print('Not a keyword!') + except google.ads.google_ads.errors.GoogleAdsException as ex: + print('Request with ID "%s" failed with status "%s" and includes the ' + 'following errors:' % (ex.request_id, ex.error.code().name)) + for error in ex.failure.errors: + print('\tError with message "%s".' % error.message) + if error.location: + for field_path_element in error.location.field_path_elements: + print('\t\tOn field: %s' % field_path_element.field_name) + sys.exit(1) + + +if __name__ == '__main__': + # GoogleAdsClient will read a google-ads.yaml configuration file in the + # home directory if none is specified. + google_ads_client = (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + + parser = argparse.ArgumentParser( + description=('List campaign criteria, or negative keywords, for a ' + 'given campaign.')) + # The following argument(s) should be provided to run the example. + parser.add_argument('-c', '--customer_id', type=six.text_type, + required=True, help='The AdWords customer ID.') + parser.add_argument('-i', '--campaign_id', type=six.text_type, + required=True, help='The campaign ID.') + args = parser.parse_args() + + main(google_ads_client, args.customer_id, args.campaign_id, + _DEFAULT_PAGE_SIZE) diff --git a/google-ads.yaml b/google-ads.yaml new file mode 100644 index 000000000..b1f0d8c5d --- /dev/null +++ b/google-ads.yaml @@ -0,0 +1,4 @@ +developer_token: INSERT_DEVELOPER_TOKEN_HERE +client_id: INSERT_OAUTH2_CLIENT_ID_HERE +client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE +refresh_token: INSERT_REFRESH_TOKEN_HERE diff --git a/google/__init__.py b/google/__init__.py new file mode 100644 index 000000000..855a70730 --- /dev/null +++ b/google/__init__.py @@ -0,0 +1,20 @@ +# Copyright 2018 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 +# +# https://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. + +try: + import pkg_resources + pkg_resources.declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file diff --git a/google/ads/__init__.py b/google/ads/__init__.py new file mode 100644 index 000000000..7a9e5a0ef --- /dev/null +++ b/google/ads/__init__.py @@ -0,0 +1,20 @@ +# Copyright 2018 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 +# +# https://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. + +try: + import pkg_resources + pkg_resources.declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/google/ads/google_ads/__init__.py b/google/ads/google_ads/__init__.py new file mode 100644 index 000000000..b616b0bc6 --- /dev/null +++ b/google/ads/google_ads/__init__.py @@ -0,0 +1,28 @@ +# Copyright 2018 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 +# +# https://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. + +from __future__ import absolute_import + +try: + import pkg_resources + pkg_resources.declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) + +import google.ads.google_ads.v0 + + +VERSION = '0.1.0' + diff --git a/google/ads/google_ads/client.py b/google/ads/google_ads/client.py new file mode 100644 index 000000000..8ef3f6be2 --- /dev/null +++ b/google/ads/google_ads/client.py @@ -0,0 +1,333 @@ +# Copyright 2018 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 +# +# https://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. +"""A client and common configurations for the Google Ads API.""" + +import logging +import os +import yaml + +import google.api_core.grpc_helpers +import google.auth.transport.requests +import google.oauth2.credentials +import google.ads.google_ads.errors +from google.ads.google_ads.v0.proto.errors import errors_pb2 +import grpc + + +_logger = logging.getLogger(__name__) + +_REQUIRED_KEYS = ('client_id', 'client_secret', 'refresh_token', + 'developer_token') +_SERVICE_CLIENT_TEMPLATE = '%sClient' +_SERVICE_GRPC_TRANSPORT_TEMPLATE = '%sGrpcTransport' +_PROTO_TEMPLATE = '%s_pb2' +_DEFAULT_TOKEN_URI = 'https://accounts.google.com/o/oauth2/token' +_DEFAULT_VERSION = 'v0' + + +class GoogleAdsClient(object): + """Google Ads client used to configure settings and fetch services.""" + + @classmethod + def _get_client_kwargs_from_yaml(cls, yaml_str): + """Utility function used to load client kwargs from YAML string. + + Args: + yaml_str: a str containing client configuration in YAML format. + + Returns: + A dict containing configuration data that will be provided to the + GoogleAdsClient initializer as keyword arguments. + + Raises: + ValueError: If the configuration lacks a required field. + """ + config_data = yaml.safe_load(yaml_str) or {} + + if all(required_key in config_data for required_key in _REQUIRED_KEYS): + credentials = google.oauth2.credentials.Credentials( + None, + refresh_token=config_data['refresh_token'], + client_id=config_data['client_id'], + client_secret=config_data['client_secret'], + token_uri=_DEFAULT_TOKEN_URI) + credentials.refresh(google.auth.transport.requests.Request()) + + return {'credentials': credentials, + 'developer_token': config_data['developer_token']} + else: + raise ValueError('A required field in the configuration data was' + 'not found. The required fields are: %s' + % str(_REQUIRED_KEYS)) + + @classmethod + def get_type(cls, name, version=_DEFAULT_VERSION): + """Returns the specified common, enum, error, or resource type. + + Args: + name: a str indicating the name of the type that is being retrieved; + e.g. you may specify "CampaignOperation" to retrieve a + CampaignOperation instance. + version: a str indicating the version of the Google Ads API to be + used. + + Returns: + A Message instance representing the desired type. + + Raises: + AttributeError: If the type for the specified name doesn't exist + in the given version. + """ + try: + message_type = getattr(_get_version(version).types, name) + except AttributeError: + raise ValueError('Specified type "%s" does not exist in Google Ads ' + 'API %s.' % (name, version)) + return message_type() + + @classmethod + def load_from_string(cls, yaml_str): + """Creates a GoogleAdsClient with data stored in the YAML string. + + Args: + yaml_str: a str containing YAML configuration data used to + initialize a GoogleAdsClient. + + Returns: + A GoogleAdsClient initialized with the values specified in the + string. + + Raises: + ValueError: If the configuration lacks a required field. + """ + return cls(**cls._get_client_kwargs_from_yaml(yaml_str)) + + @classmethod + def load_from_storage(cls, path=None): + """Creates a GoogleAdsClient with data stored in the specified file. + + Args: + path: a str indicating the path to a YAML file containing + configuration data used to initialize a GoogleAdsClient. + + Returns: + A GoogleAdsClient initialized with the values in the specified file. + + Raises: + FileNotFoundError: If the specified configuration file doesn't + exist. + IOError: If the configuration file can't be loaded. + ValueError: If the configuration file lacks a required field. + """ + if path is None: + path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + + if not os.path.isabs(path): + path = os.path.expanduser(path) + + with open(path, 'rb') as handle: + yaml_str = handle.read() + + return cls.load_from_string(yaml_str) + + def __init__(self, credentials, developer_token): + """Initializer for the GoogleAdsClient. + + Args: + credentials: a google.oauth2.credentials.Credentials instance. + developer_token: a str developer token. + """ + self.credentials = credentials + self.developer_token = developer_token + + def get_service(self, name, version=_DEFAULT_VERSION): + """Returns a service client instance for the specified service_name. + + Args: + name: a str indicating the name of the service for which a + service client is being retrieved; e.g. you may specify + "CampaignService" to retrieve a CampaignServiceClient instance. + version: a str indicating the version of the Google Ads API to be + used. + + Returns: + A service client instance associated with the given service_name. + + Raises: + AttributeError: If the specified name doesn't exist. + """ + version = _get_version(version) + + try: + service_client = getattr(version, _SERVICE_CLIENT_TEMPLATE % name) + except AttributeError: + raise ValueError('Specified service "%s" does not exist in Google ' + 'Ads API %s.' % (name, version)) + + try: + service_transport_class = getattr( + version, _SERVICE_GRPC_TRANSPORT_TEMPLATE % name) + except AttributeError: + raise ValueError('Grpc transport does not exist for the specified ' + 'service "%s".' % name) + + channel = service_transport_class.create_channel( + credentials=self.credentials) + + channel = grpc.intercept_channel( + channel, + MetadataInterceptor(self.developer_token), + ExceptionInterceptor(), + ) + + service_transport = service_transport_class(channel=channel) + + return service_client(transport=service_transport) + + +class ExceptionInterceptor(grpc.UnaryUnaryClientInterceptor): + """An interceptor that wraps rpc exceptions.""" + + _FAILURE_KEY = 'google.ads.googleads.v0.errors.googleadsfailure-bin' + _REQUEST_ID_KEY = 'request-id' + # Codes that are retried upon by google.api_core. + _RETRY_STATUS_CODES = ( + grpc.StatusCode.INTERNAL, grpc.StatusCode.RESOURCE_EXHAUSTED) + + def _get_google_ads_failure(self, trailing_metadata): + """Gets the Google Ads failure details if they exist. + + Args: + trailing_metadata: + + Returns: + A GoogleAdsFailure that describes how a GoogleAds API call failed. + Returns None if either the trailing metadata of the request did not + return the failure details, or if the GoogleAdsFailure fails to + parse. + """ + for kv in trailing_metadata: + if kv[0] == self._FAILURE_KEY: + try: + ga_failure = errors_pb2.GoogleAdsFailure() + ga_failure.ParseFromString(kv[1]) + return ga_failure + except google.protobuf.message.DecodeError: + return None + + def _get_request_id(self, trailing_metadata): + """Gets the request ID for the Google Ads API request. + + Args: + trailing_metadata: + + Returns: + A str request ID associated with the Google Ads API request, or None + if it doesn't exist. + """ + for kv in trailing_metadata: + if kv[0] == self._REQUEST_ID_KEY: + return kv[1] # Return the found request ID. + + return None + + + + def intercept_unary_unary(self, continuation, client_call_details, request): + """Intercepts and wraps exceptions in the rpc response. + + Overrides abstract method defined in grpc.UnaryUnaryClientInterceptor. + + Raises: + GoogleAdsException: if the Google Ads API response contains an + exception and GoogleAdsFailure is in the trailing metadata. + """ + response = continuation(client_call_details, request) + ex = response.exception() + + if ex and response._state.code not in self._RETRY_STATUS_CODES: + trailing_metadata = response.trailing_metadata() + google_ads_failure = self._get_google_ads_failure(trailing_metadata) + + if google_ads_failure: + request_id = self._get_request_id(trailing_metadata) + + raise google.ads.google_ads.errors.GoogleAdsException( + ex, response, google_ads_failure, request_id) + else: + # Raise the original exception if not a GoogleAdsFailure. + raise ex + + return response + + +class LoggingInterceptor(grpc.UnaryUnaryClientInterceptor): + """An interceptor that logs rpc requests and responses.""" + + def intercept_unary_unary(self, continuation, client_call_details, request): + """Intercepts and logs API interactions. + + Overrides abstract method defined in grpc.UnaryUnaryClientInterceptor. + """ + _logger.debug('Method: "%s" called with Request: "%s"' + % (client_call_details.method, request)) + + response = continuation(client_call_details, request) + + # TODO: Handle response here. + + return response + + +class MetadataInterceptor(grpc.UnaryUnaryClientInterceptor): + """An interceptor that appends custom metadata to requests.""" + + def __init__(self, developer_token): + self.developer_token_meta = ('developer-token', developer_token) + + def intercept_unary_unary(self, continuation, client_call_details, request): + """Intercepts and appends custom metadata. + + Overrides abstract method defined in grpc.UnaryUnaryClientInterceptor. + """ + if client_call_details.metadata is None: + metadata = [] + else: + metadata = list(client_call_details.metadata) + + metadata.append(self.developer_token_meta) + + client_call_details = grpc._interceptor._ClientCallDetails( + client_call_details.method, client_call_details.timeout, metadata, + client_call_details.credentials + ) + + return continuation(client_call_details, request) + + +def _get_version(name): + """Returns the given API version. + + Args: + name: a str indicating the API version. + + Returns: + A module associated with the given API version. + """ + try: + version = getattr(google.ads.google_ads, name) + except AttributeError: + raise ValueError('Specified Google Ads API version "%s" does not exist.' + % name) + return version diff --git a/google/ads/google_ads/errors.py b/google/ads/google_ads/errors.py new file mode 100644 index 000000000..89463828d --- /dev/null +++ b/google/ads/google_ads/errors.py @@ -0,0 +1,33 @@ +# Copyright 2018 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 +# +# https://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. +"""Errors used by the Google Ads API library.""" + + +class GoogleAdsException(Exception): + """Exception thrown in response to an API error from GoogleAds servers.""" + + def __init__(self, error, call, failure, request_id): + """Initializer. + + Args: + error: the grpc.RpcError raised by an rpc call. + call: the grpc.Call object containing the details of the rpc call. + failure: the GoogleAdsFailure instance describing how the + GoogleAds API call failed. + request_id: a str request ID associated with the GoogleAds API call. + """ + self.error = error + self.call = call + self.failure = failure + self.request_id = request_id diff --git a/google/ads/google_ads/v0/__init__.py b/google/ads/google_ads/v0/__init__.py new file mode 100644 index 000000000..3a55607a5 --- /dev/null +++ b/google/ads/google_ads/v0/__init__.py @@ -0,0 +1,230 @@ +# Copyright 2018 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 +# +# https://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. + +from __future__ import absolute_import + +from google.ads.google_ads.v0 import types +from google.ads.google_ads.v0.services import ad_group_ad_service_client +from google.ads.google_ads.v0.services import ad_group_bid_modifier_service_client +from google.ads.google_ads.v0.services import ad_group_criterion_service_client +from google.ads.google_ads.v0.services import ad_group_service_client +from google.ads.google_ads.v0.services import bidding_strategy_service_client +from google.ads.google_ads.v0.services import campaign_budget_service_client +from google.ads.google_ads.v0.services import campaign_criterion_service_client +from google.ads.google_ads.v0.services import campaign_service_client +from google.ads.google_ads.v0.services import customer_service_client +from google.ads.google_ads.v0.services import enums +from google.ads.google_ads.v0.services import geo_target_constant_service_client +from google.ads.google_ads.v0.services import google_ads_field_service_client +from google.ads.google_ads.v0.services import google_ads_service_client +from google.ads.google_ads.v0.services import keyword_view_service_client +from google.ads.google_ads.v0.services import recommendation_service_client +from google.ads.google_ads.v0.services.transports import ad_group_ad_service_grpc_transport +from google.ads.google_ads.v0.services.transports import ad_group_bid_modifier_service_grpc_transport +from google.ads.google_ads.v0.services.transports import ad_group_criterion_service_grpc_transport +from google.ads.google_ads.v0.services.transports import ad_group_service_grpc_transport +from google.ads.google_ads.v0.services.transports import bidding_strategy_service_grpc_transport +from google.ads.google_ads.v0.services.transports import campaign_budget_service_grpc_transport +from google.ads.google_ads.v0.services.transports import campaign_criterion_service_grpc_transport +from google.ads.google_ads.v0.services.transports import campaign_service_grpc_transport +from google.ads.google_ads.v0.services.transports import customer_service_grpc_transport +from google.ads.google_ads.v0.services.transports import geo_target_constant_service_grpc_transport +from google.ads.google_ads.v0.services.transports import google_ads_field_service_grpc_transport +from google.ads.google_ads.v0.services.transports import google_ads_service_grpc_transport +from google.ads.google_ads.v0.services.transports import keyword_view_service_grpc_transport +from google.ads.google_ads.v0.services.transports import recommendation_service_grpc_transport + + +class AdGroupAdServiceClient( + ad_group_ad_service_client.AdGroupAdServiceClient): + __doc__ = ad_group_ad_service_client.AdGroupAdServiceClient.__doc__ + enums = enums + + +class AdGroupAdServiceGrpcTransport( + ad_group_ad_service_grpc_transport.AdGroupAdServiceGrpcTransport): + __doc__ = ad_group_ad_service_grpc_transport.AdGroupAdServiceGrpcTransport.__doc__ + + +class AdGroupBidModifierServiceClient( + ad_group_bid_modifier_service_client.AdGroupBidModifierServiceClient): + __doc__ = ad_group_bid_modifier_service_client.AdGroupBidModifierServiceClient.__doc__ + enums = enums + + +class AdGroupBidModifierServiceGrpcTransport( + ad_group_bid_modifier_service_grpc_transport.AdGroupBidModifierServiceGrpcTransport): + __doc__ = ad_group_bid_modifier_service_grpc_transport.AdGroupBidModifierServiceGrpcTransport.__doc__ + + +class AdGroupCriterionServiceClient( + ad_group_criterion_service_client.AdGroupCriterionServiceClient): + __doc__ = ad_group_criterion_service_client.AdGroupCriterionServiceClient.__doc__ + enums = enums + + +class AdGroupCriterionServiceGrpcTransport( + ad_group_criterion_service_grpc_transport.AdGroupCriterionServiceGrpcTransport): + __doc__ = ad_group_criterion_service_grpc_transport.AdGroupCriterionServiceGrpcTransport.__doc__ + + +class AdGroupServiceClient(ad_group_service_client.AdGroupServiceClient): + __doc__ = ad_group_service_client.AdGroupServiceClient.__doc__ + enums = enums + + +class AdGroupServiceGrpcTransport( + ad_group_service_grpc_transport.AdGroupServiceGrpcTransport): + __doc__ = ad_group_service_grpc_transport.AdGroupServiceGrpcTransport.__doc__ + + +class BiddingStrategyServiceClient( + bidding_strategy_service_client.BiddingStrategyServiceClient): + __doc__ = bidding_strategy_service_client.BiddingStrategyServiceClient.__doc__ + enums = enums + + +class BiddingStrategyServiceGrpcTransport( + bidding_strategy_service_grpc_transport.BiddingStrategyServiceGrpcTransport): + __doc__ = bidding_strategy_service_grpc_transport.BiddingStrategyServiceGrpcTransport.__doc__ + + +class CampaignBudgetServiceClient( + campaign_budget_service_client.CampaignBudgetServiceClient): + __doc__ = campaign_budget_service_client.CampaignBudgetServiceClient.__doc__ + enums = enums + + +class CampaignBudgetServiceGrpcTransport( + campaign_budget_service_grpc_transport.CampaignBudgetServiceGrpcTransport): + __doc__ = campaign_budget_service_grpc_transport.CampaignBudgetServiceGrpcTransport.__doc__ + + +class CampaignCriterionServiceClient( + campaign_criterion_service_client.CampaignCriterionServiceClient): + __doc__ = campaign_criterion_service_client.CampaignCriterionServiceClient.__doc__ + enums = enums + + +class CampaignCriterionServiceGrpcTransport( + campaign_criterion_service_grpc_transport.CampaignCriterionServiceGrpcTransport): + __doc__ = campaign_criterion_service_grpc_transport.CampaignCriterionServiceGrpcTransport.__doc__ + + +class CampaignServiceClient(campaign_service_client.CampaignServiceClient): + __doc__ = campaign_service_client.CampaignServiceClient.__doc__ + enums = enums + + +class CampaignServiceGrpcTransport( + campaign_service_grpc_transport.CampaignServiceGrpcTransport): + __doc__ = campaign_service_grpc_transport.CampaignServiceGrpcTransport.__doc__ + + +class CustomerServiceClient(customer_service_client.CustomerServiceClient): + __doc__ = customer_service_client.CustomerServiceClient.__doc__ + enums = enums + + +class CustomerServiceGrpcTransport( + customer_service_grpc_transport.CustomerServiceGrpcTransport): + __doc__ = customer_service_grpc_transport.CustomerServiceGrpcTransport.__doc__ + + +class GeoTargetConstantServiceClient( + geo_target_constant_service_client.GeoTargetConstantServiceClient): + __doc__ = geo_target_constant_service_client.GeoTargetConstantServiceClient.__doc__ + enums = enums + + +class GeoTargetConstantServiceGrpcTransport( + geo_target_constant_service_grpc_transport.GeoTargetConstantServiceGrpcTransport): + __doc__ = geo_target_constant_service_grpc_transport.GeoTargetConstantServiceGrpcTransport.__doc__ + + +class GoogleAdsFieldServiceClient( + google_ads_field_service_client.GoogleAdsFieldServiceClient): + __doc__ = google_ads_field_service_client.GoogleAdsFieldServiceClient.__doc__ + enums = enums + + +class GoogleAdsFieldServiceGrpcTransport( + google_ads_field_service_grpc_transport.GoogleAdsFieldServiceGrpcTransport): + __doc__ = google_ads_field_service_grpc_transport.GoogleAdsFieldServiceGrpcTransport.__doc__ + + +class GoogleAdsServiceClient(google_ads_service_client.GoogleAdsServiceClient): + __doc__ = google_ads_service_client.GoogleAdsServiceClient.__doc__ + enums = enums + + +class GoogleAdsServiceGrpcTransport( + google_ads_service_grpc_transport.GoogleAdsServiceGrpcTransport): + __doc__ = google_ads_service_grpc_transport.GoogleAdsServiceGrpcTransport.__doc__ + + +class KeywordViewServiceClient( + keyword_view_service_client.KeywordViewServiceClient): + __doc__ = keyword_view_service_client.KeywordViewServiceClient.__doc__ + enums = enums + + +class KeywordViewServiceGrpcTransport( + keyword_view_service_grpc_transport.KeywordViewServiceGrpcTransport): + __doc__ = keyword_view_service_grpc_transport.KeywordViewServiceGrpcTransport.__doc__ + + +class RecommendationServiceClient( + recommendation_service_client.RecommendationServiceClient): + __doc__ = recommendation_service_client.RecommendationServiceClient.__doc__ + enums = enums + + +class RecommendationServiceGrpcTransport( + recommendation_service_grpc_transport.RecommendationServiceGrpcTransport): + __doc__ = recommendation_service_grpc_transport.RecommendationServiceGrpcTransport.__doc__ + + +__all__ = ( + 'enums', + 'types', + 'AdGroupAdServiceClient', + 'AdGroupAdServiceGrpcTransport', + 'AdGroupBidModifierServiceClient', + 'AdGroupBidModifierServiceGrpcTransport', + 'AdGroupCriterionServiceClient', + 'AdGroupCriterionServiceGrpcTransport', + 'AdGroupServiceClient', + 'AdGroupServiceGrpcTransport', + 'BiddingStrategyServiceClient', + 'BiddingStrategyServiceGrpcTransport', + 'CampaignBudgetServiceClient', + 'CampaignBudgetServiceGrpcTransport' + 'CampaignCriterionServiceClient', + 'CampaignCriterionServiceGrpcTransport', + 'CampaignServiceClient', + 'CampaignServiceGrpcTransport', + 'CustomerServiceClient', + 'CustomerServiceGrpcTransport', + 'GeoTargetConstantServiceClient', + 'GeoTargetConstantServiceGrpcTransport', + 'GoogleAdsFieldServiceClient', + 'GoogleAdsServiceGrpcTransport', + 'GoogleAdsServiceClient', + 'GoogleAdsServiceGrpcTransport', + 'KeywordViewServiceClient', + 'KeywordViewServiceGrpcTransport', + 'RecommendationServiceClient', + 'RecommendationServiceGrpcTransport' +) diff --git a/google/ads/google_ads/v0/proto/__init__.py b/google/ads/google_ads/v0/proto/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/proto/common/__init__.py b/google/ads/google_ads/v0/proto/common/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2.py b/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2.py new file mode 100644 index 000000000..73da484c8 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2.py @@ -0,0 +1,532 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/ad_type_infos.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/ad_type_infos.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n8google/ads/googleads_v0/proto/common/ad_type_infos.proto\x12\x1egoogle.ads.googleads.v0.common\x1a\x1egoogle/protobuf/wrappers.proto\"\xa4\x01\n\nTextAdInfo\x12.\n\x08headline\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64\x65scription1\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64\x65scription2\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x8d\x02\n\x12\x45xpandedTextAdInfo\x12\x34\n\x0eheadline_part1\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0eheadline_part2\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05path1\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05path2\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"}\n\x13\x44ynamicSearchAdInfo\x12\x32\n\x0c\x64\x65scription1\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64\x65scription2\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xec\x01\n\x17ResponsiveDisplayAdInfo\x12\x34\n\x0eshort_headline\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlong_headline\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rbusiness_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xc9\x03\n\x0e\x43\x61llOnlyAdInfo\x12\x32\n\x0c\x63ountry_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cphone_number\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rbusiness_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64\x65scription1\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x64\x65scription2\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\x0c\x63\x61ll_tracked\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12;\n\x17\x64isable_call_conversion\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x43\n\x1dphone_number_verification_url\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"P\n\x1b\x45xpandedDynamicSearchAdInfo\x12\x31\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\r\n\x0bHotelAdInfoB\xc6\x01\n\"com.google.ads.googleads.v0.commonB\x10\x41\x64TypeInfosProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_TEXTADINFO = _descriptor.Descriptor( + name='TextAdInfo', + full_name='google.ads.googleads.v0.common.TextAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='headline', full_name='google.ads.googleads.v0.common.TextAdInfo.headline', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v0.common.TextAdInfo.description1', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v0.common.TextAdInfo.description2', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=125, + serialized_end=289, +) + + +_EXPANDEDTEXTADINFO = _descriptor.Descriptor( + name='ExpandedTextAdInfo', + full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='headline_part1', full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo.headline_part1', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='headline_part2', full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo.headline_part2', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo.description', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='path1', full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo.path1', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='path2', full_name='google.ads.googleads.v0.common.ExpandedTextAdInfo.path2', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=292, + serialized_end=561, +) + + +_DYNAMICSEARCHADINFO = _descriptor.Descriptor( + name='DynamicSearchAdInfo', + full_name='google.ads.googleads.v0.common.DynamicSearchAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v0.common.DynamicSearchAdInfo.description1', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v0.common.DynamicSearchAdInfo.description2', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=563, + serialized_end=688, +) + + +_RESPONSIVEDISPLAYADINFO = _descriptor.Descriptor( + name='ResponsiveDisplayAdInfo', + full_name='google.ads.googleads.v0.common.ResponsiveDisplayAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='short_headline', full_name='google.ads.googleads.v0.common.ResponsiveDisplayAdInfo.short_headline', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='long_headline', full_name='google.ads.googleads.v0.common.ResponsiveDisplayAdInfo.long_headline', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v0.common.ResponsiveDisplayAdInfo.description', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v0.common.ResponsiveDisplayAdInfo.business_name', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=691, + serialized_end=927, +) + + +_CALLONLYADINFO = _descriptor.Descriptor( + name='CallOnlyAdInfo', + full_name='google.ads.googleads.v0.common.CallOnlyAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.country_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phone_number', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.phone_number', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='business_name', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.business_name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description1', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.description1', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description2', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.description2', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='call_tracked', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.call_tracked', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='disable_call_conversion', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.disable_call_conversion', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phone_number_verification_url', full_name='google.ads.googleads.v0.common.CallOnlyAdInfo.phone_number_verification_url', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=930, + serialized_end=1387, +) + + +_EXPANDEDDYNAMICSEARCHADINFO = _descriptor.Descriptor( + name='ExpandedDynamicSearchAdInfo', + full_name='google.ads.googleads.v0.common.ExpandedDynamicSearchAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='description', full_name='google.ads.googleads.v0.common.ExpandedDynamicSearchAdInfo.description', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1389, + serialized_end=1469, +) + + +_HOTELADINFO = _descriptor.Descriptor( + name='HotelAdInfo', + full_name='google.ads.googleads.v0.common.HotelAdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1471, + serialized_end=1484, +) + +_TEXTADINFO.fields_by_name['headline'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTADINFO.fields_by_name['description1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TEXTADINFO.fields_by_name['description2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDTEXTADINFO.fields_by_name['headline_part1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDTEXTADINFO.fields_by_name['headline_part2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDTEXTADINFO.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDTEXTADINFO.fields_by_name['path1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDTEXTADINFO.fields_by_name['path2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DYNAMICSEARCHADINFO.fields_by_name['description1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_DYNAMICSEARCHADINFO.fields_by_name['description2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RESPONSIVEDISPLAYADINFO.fields_by_name['short_headline'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RESPONSIVEDISPLAYADINFO.fields_by_name['long_headline'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RESPONSIVEDISPLAYADINFO.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_RESPONSIVEDISPLAYADINFO.fields_by_name['business_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['phone_number'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['business_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['description1'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['description2'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CALLONLYADINFO.fields_by_name['call_tracked'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CALLONLYADINFO.fields_by_name['disable_call_conversion'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CALLONLYADINFO.fields_by_name['phone_number_verification_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_EXPANDEDDYNAMICSEARCHADINFO.fields_by_name['description'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['TextAdInfo'] = _TEXTADINFO +DESCRIPTOR.message_types_by_name['ExpandedTextAdInfo'] = _EXPANDEDTEXTADINFO +DESCRIPTOR.message_types_by_name['DynamicSearchAdInfo'] = _DYNAMICSEARCHADINFO +DESCRIPTOR.message_types_by_name['ResponsiveDisplayAdInfo'] = _RESPONSIVEDISPLAYADINFO +DESCRIPTOR.message_types_by_name['CallOnlyAdInfo'] = _CALLONLYADINFO +DESCRIPTOR.message_types_by_name['ExpandedDynamicSearchAdInfo'] = _EXPANDEDDYNAMICSEARCHADINFO +DESCRIPTOR.message_types_by_name['HotelAdInfo'] = _HOTELADINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TextAdInfo = _reflection.GeneratedProtocolMessageType('TextAdInfo', (_message.Message,), dict( + DESCRIPTOR = _TEXTADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """A text ad. + + + Attributes: + headline: + The headline of the ad. + description1: + The first line of the ad's description. + description2: + The second line of the ad's description. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.TextAdInfo) + )) +_sym_db.RegisterMessage(TextAdInfo) + +ExpandedTextAdInfo = _reflection.GeneratedProtocolMessageType('ExpandedTextAdInfo', (_message.Message,), dict( + DESCRIPTOR = _EXPANDEDTEXTADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """An expanded text ad. + + + Attributes: + headline_part1: + The first part of the ad's headline. + headline_part2: + The second part of the ad's headline. + description: + The description of the ad. + path1: + The text that can appear alongside the ad's displayed URL. + path2: + Additional text that can appear alongside the ad's displayed + URL. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ExpandedTextAdInfo) + )) +_sym_db.RegisterMessage(ExpandedTextAdInfo) + +DynamicSearchAdInfo = _reflection.GeneratedProtocolMessageType('DynamicSearchAdInfo', (_message.Message,), dict( + DESCRIPTOR = _DYNAMICSEARCHADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """A dynamic search ad. + + + Attributes: + description1: + The first line of the ad's description. + description2: + The second line of the ad's description. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.DynamicSearchAdInfo) + )) +_sym_db.RegisterMessage(DynamicSearchAdInfo) + +ResponsiveDisplayAdInfo = _reflection.GeneratedProtocolMessageType('ResponsiveDisplayAdInfo', (_message.Message,), dict( + DESCRIPTOR = _RESPONSIVEDISPLAYADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """A responsive display ad. + + + Attributes: + short_headline: + The short version of the ad's headline. + long_headline: + The long version of the ad's headline. + description: + The description of the ad. + business_name: + The business name in the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ResponsiveDisplayAdInfo) + )) +_sym_db.RegisterMessage(ResponsiveDisplayAdInfo) + +CallOnlyAdInfo = _reflection.GeneratedProtocolMessageType('CallOnlyAdInfo', (_message.Message,), dict( + DESCRIPTOR = _CALLONLYADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """A call-only ad. + + + Attributes: + country_code: + The country code in the ad. + phone_number: + The phone number in the ad. + business_name: + The business name in the ad. + description1: + The first line of the ad's description. + description2: + The second line of the ad's description. + call_tracked: + Whether to enable call tracking for the creative. Enabling + call tracking also enables call conversions. + disable_call_conversion: + Whether to disable call conversion for the creative. If set to + ``true``, disables call conversions even when ``call_tracked`` + is ``true``. If ``call_tracked`` is ``false``, this field is + ignored. + phone_number_verification_url: + The URL to be used for phone number verification. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.CallOnlyAdInfo) + )) +_sym_db.RegisterMessage(CallOnlyAdInfo) + +ExpandedDynamicSearchAdInfo = _reflection.GeneratedProtocolMessageType('ExpandedDynamicSearchAdInfo', (_message.Message,), dict( + DESCRIPTOR = _EXPANDEDDYNAMICSEARCHADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """An expanded dynamic search ad. + + + Attributes: + description: + The description of the ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ExpandedDynamicSearchAdInfo) + )) +_sym_db.RegisterMessage(ExpandedDynamicSearchAdInfo) + +HotelAdInfo = _reflection.GeneratedProtocolMessageType('HotelAdInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELADINFO, + __module__ = 'google.ads.googleads_v0.proto.common.ad_type_infos_pb2' + , + __doc__ = """A hotel ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelAdInfo) + )) +_sym_db.RegisterMessage(HotelAdInfo) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\020AdTypeInfosProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/ad_type_infos_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/bidding_pb2.py b/google/ads/google_ads/v0/proto/common/bidding_pb2.py new file mode 100644 index 000000000..8ee798037 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/bidding_pb2.py @@ -0,0 +1,732 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/bidding.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import page_one_promoted_strategy_goal_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_page__one__promoted__strategy__goal__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/bidding.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n2google/ads/googleads_v0/proto/common/bidding.proto\x12\x1egoogle.ads.googleads.v0.common\x1aIgoogle/ads/googleads_v0/proto/enums/page_one_promoted_strategy_goal.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\r\n\x0b\x45nhancedCpc\"E\n\tManualCpc\x12\x38\n\x14\x65nhanced_cpc_enabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\x0b\n\tManualCpm\"\x15\n\x13MaximizeConversions\"L\n\x17MaximizeConversionValue\x12\x31\n\x0btarget_roas\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\"\xc6\x03\n\x0fPageOnePromoted\x12q\n\rstrategy_goal\x18\x01 \x01(\x0e\x32Z.google.ads.googleads.v0.enums.PageOnePromotedStrategyGoalEnum.PageOnePromotedStrategyGoal\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x32\n\x0c\x62id_modifier\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x37\n\x13only_raise_cpc_bids\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12I\n%raise_cpc_bid_when_budget_constrained\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12K\n\'raise_cpc_bid_when_quality_score_is_low\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\xbb\x01\n\tTargetCpa\x12\x36\n\x11target_cpa_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14\x63pc_bid_floor_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xd2\x02\n\x12TargetOutrankShare\x12@\n\x1btarget_outrank_share_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x37\n\x11\x63ompetitor_domain\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x37\n\x13only_raise_cpc_bids\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12K\n\'raise_cpc_bid_when_quality_score_is_low\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\"\xb7\x01\n\nTargetRoas\x12\x31\n\x0btarget_roas\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x39\n\x14\x63pc_bid_floor_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x84\x01\n\x0bTargetSpend\x12\x38\n\x13target_spend_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x83\x01\n\nPercentCpc\x12;\n\x16\x63pc_bid_ceiling_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x38\n\x14\x65nhanced_cpc_enabled\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\xc2\x01\n\"com.google.ads.googleads.v0.commonB\x0c\x42iddingProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_page__one__promoted__strategy__goal__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_ENHANCEDCPC = _descriptor.Descriptor( + name='EnhancedCpc', + full_name='google.ads.googleads.v0.common.EnhancedCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=193, + serialized_end=206, +) + + +_MANUALCPC = _descriptor.Descriptor( + name='ManualCpc', + full_name='google.ads.googleads.v0.common.ManualCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='enhanced_cpc_enabled', full_name='google.ads.googleads.v0.common.ManualCpc.enhanced_cpc_enabled', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=208, + serialized_end=277, +) + + +_MANUALCPM = _descriptor.Descriptor( + name='ManualCpm', + full_name='google.ads.googleads.v0.common.ManualCpm', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=279, + serialized_end=290, +) + + +_MAXIMIZECONVERSIONS = _descriptor.Descriptor( + name='MaximizeConversions', + full_name='google.ads.googleads.v0.common.MaximizeConversions', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=292, + serialized_end=313, +) + + +_MAXIMIZECONVERSIONVALUE = _descriptor.Descriptor( + name='MaximizeConversionValue', + full_name='google.ads.googleads.v0.common.MaximizeConversionValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v0.common.MaximizeConversionValue.target_roas', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=315, + serialized_end=391, +) + + +_PAGEONEPROMOTED = _descriptor.Descriptor( + name='PageOnePromoted', + full_name='google.ads.googleads.v0.common.PageOnePromoted', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='strategy_goal', full_name='google.ads.googleads.v0.common.PageOnePromoted.strategy_goal', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.PageOnePromoted.cpc_bid_ceiling_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v0.common.PageOnePromoted.bid_modifier', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='only_raise_cpc_bids', full_name='google.ads.googleads.v0.common.PageOnePromoted.only_raise_cpc_bids', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='raise_cpc_bid_when_budget_constrained', full_name='google.ads.googleads.v0.common.PageOnePromoted.raise_cpc_bid_when_budget_constrained', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='raise_cpc_bid_when_quality_score_is_low', full_name='google.ads.googleads.v0.common.PageOnePromoted.raise_cpc_bid_when_quality_score_is_low', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=394, + serialized_end=848, +) + + +_TARGETCPA = _descriptor.Descriptor( + name='TargetCpa', + full_name='google.ads.googleads.v0.common.TargetCpa', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v0.common.TargetCpa.target_cpa_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.TargetCpa.cpc_bid_ceiling_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_floor_micros', full_name='google.ads.googleads.v0.common.TargetCpa.cpc_bid_floor_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=851, + serialized_end=1038, +) + + +_TARGETOUTRANKSHARE = _descriptor.Descriptor( + name='TargetOutrankShare', + full_name='google.ads.googleads.v0.common.TargetOutrankShare', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_outrank_share_micros', full_name='google.ads.googleads.v0.common.TargetOutrankShare.target_outrank_share_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='competitor_domain', full_name='google.ads.googleads.v0.common.TargetOutrankShare.competitor_domain', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.TargetOutrankShare.cpc_bid_ceiling_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='only_raise_cpc_bids', full_name='google.ads.googleads.v0.common.TargetOutrankShare.only_raise_cpc_bids', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='raise_cpc_bid_when_quality_score_is_low', full_name='google.ads.googleads.v0.common.TargetOutrankShare.raise_cpc_bid_when_quality_score_is_low', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1041, + serialized_end=1379, +) + + +_TARGETROAS = _descriptor.Descriptor( + name='TargetRoas', + full_name='google.ads.googleads.v0.common.TargetRoas', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v0.common.TargetRoas.target_roas', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.TargetRoas.cpc_bid_ceiling_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_floor_micros', full_name='google.ads.googleads.v0.common.TargetRoas.cpc_bid_floor_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1382, + serialized_end=1565, +) + + +_TARGETSPEND = _descriptor.Descriptor( + name='TargetSpend', + full_name='google.ads.googleads.v0.common.TargetSpend', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_spend_micros', full_name='google.ads.googleads.v0.common.TargetSpend.target_spend_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.TargetSpend.cpc_bid_ceiling_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1568, + serialized_end=1700, +) + + +_PERCENTCPC = _descriptor.Descriptor( + name='PercentCpc', + full_name='google.ads.googleads.v0.common.PercentCpc', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='cpc_bid_ceiling_micros', full_name='google.ads.googleads.v0.common.PercentCpc.cpc_bid_ceiling_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='enhanced_cpc_enabled', full_name='google.ads.googleads.v0.common.PercentCpc.enhanced_cpc_enabled', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1703, + serialized_end=1834, +) + +_MANUALCPC.fields_by_name['enhanced_cpc_enabled'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_MAXIMIZECONVERSIONVALUE.fields_by_name['target_roas'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_PAGEONEPROMOTED.fields_by_name['strategy_goal'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_page__one__promoted__strategy__goal__pb2._PAGEONEPROMOTEDSTRATEGYGOALENUM_PAGEONEPROMOTEDSTRATEGYGOAL +_PAGEONEPROMOTED.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_PAGEONEPROMOTED.fields_by_name['bid_modifier'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_PAGEONEPROMOTED.fields_by_name['only_raise_cpc_bids'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_PAGEONEPROMOTED.fields_by_name['raise_cpc_bid_when_budget_constrained'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_PAGEONEPROMOTED.fields_by_name['raise_cpc_bid_when_quality_score_is_low'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_TARGETCPA.fields_by_name['target_cpa_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETCPA.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETCPA.fields_by_name['cpc_bid_floor_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETOUTRANKSHARE.fields_by_name['target_outrank_share_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_TARGETOUTRANKSHARE.fields_by_name['competitor_domain'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_TARGETOUTRANKSHARE.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETOUTRANKSHARE.fields_by_name['only_raise_cpc_bids'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_TARGETOUTRANKSHARE.fields_by_name['raise_cpc_bid_when_quality_score_is_low'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_TARGETROAS.fields_by_name['target_roas'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_TARGETROAS.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETROAS.fields_by_name['cpc_bid_floor_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETSPEND.fields_by_name['target_spend_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_TARGETSPEND.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_PERCENTCPC.fields_by_name['cpc_bid_ceiling_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_PERCENTCPC.fields_by_name['enhanced_cpc_enabled'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +DESCRIPTOR.message_types_by_name['EnhancedCpc'] = _ENHANCEDCPC +DESCRIPTOR.message_types_by_name['ManualCpc'] = _MANUALCPC +DESCRIPTOR.message_types_by_name['ManualCpm'] = _MANUALCPM +DESCRIPTOR.message_types_by_name['MaximizeConversions'] = _MAXIMIZECONVERSIONS +DESCRIPTOR.message_types_by_name['MaximizeConversionValue'] = _MAXIMIZECONVERSIONVALUE +DESCRIPTOR.message_types_by_name['PageOnePromoted'] = _PAGEONEPROMOTED +DESCRIPTOR.message_types_by_name['TargetCpa'] = _TARGETCPA +DESCRIPTOR.message_types_by_name['TargetOutrankShare'] = _TARGETOUTRANKSHARE +DESCRIPTOR.message_types_by_name['TargetRoas'] = _TARGETROAS +DESCRIPTOR.message_types_by_name['TargetSpend'] = _TARGETSPEND +DESCRIPTOR.message_types_by_name['PercentCpc'] = _PERCENTCPC +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +EnhancedCpc = _reflection.GeneratedProtocolMessageType('EnhancedCpc', (_message.Message,), dict( + DESCRIPTOR = _ENHANCEDCPC, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy that raises bids for clicks that seem more + likely to lead to a conversion and lowers them for clicks where they + seem less likely. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.EnhancedCpc) + )) +_sym_db.RegisterMessage(EnhancedCpc) + +ManualCpc = _reflection.GeneratedProtocolMessageType('ManualCpc', (_message.Message,), dict( + DESCRIPTOR = _MANUALCPC, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """Manual click-based bidding where user pays per click. + + + Attributes: + enhanced_cpc_enabled: + Whether bids are to be enhanced based on conversion optimizer + data. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ManualCpc) + )) +_sym_db.RegisterMessage(ManualCpc) + +ManualCpm = _reflection.GeneratedProtocolMessageType('ManualCpm', (_message.Message,), dict( + DESCRIPTOR = _MANUALCPM, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """Manual impression-based bidding where user pays per thousand + impressions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ManualCpm) + )) +_sym_db.RegisterMessage(ManualCpm) + +MaximizeConversions = _reflection.GeneratedProtocolMessageType('MaximizeConversions', (_message.Message,), dict( + DESCRIPTOR = _MAXIMIZECONVERSIONS, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy that sets bids to help get the most + conversions for your campaign while spending your budget. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.MaximizeConversions) + )) +_sym_db.RegisterMessage(MaximizeConversions) + +MaximizeConversionValue = _reflection.GeneratedProtocolMessageType('MaximizeConversionValue', (_message.Message,), dict( + DESCRIPTOR = _MAXIMIZECONVERSIONVALUE, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy which tries to maximize conversion value + given a daily budget. + + + Attributes: + target_roas: + The target return on ad spend (ROAS) option. If set, the bid + strategy will maximize revenue while averaging the target + return on ad spend. If the target ROAS is high, the bid + strategy may not be able to spend the full budget. If the + target ROAS is not set, the bid strategy will aim to achieve + the highest possible ROAS for the budget. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.MaximizeConversionValue) + )) +_sym_db.RegisterMessage(MaximizeConversionValue) + +PageOnePromoted = _reflection.GeneratedProtocolMessageType('PageOnePromoted', (_message.Message,), dict( + DESCRIPTOR = _PAGEONEPROMOTED, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy which sets CPC bids to target impressions + on page one, or page one promoted slots on google.com. + + + Attributes: + strategy_goal: + The strategy goal of where impressions are desired to be shown + on search result pages. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + bid_modifier: + Bid multiplier to be applied to the relevant bid estimate + (depending on the ``strategy_goal``) in determining a + keyword's new CPC bid. + only_raise_cpc_bids: + Whether the strategy should always follow bid estimate + changes, or only increase. If false, always sets a keyword's + new bid to the current bid estimate. If true, only updates a + keyword's bid if the current bid estimate is greater than the + current bid. + raise_cpc_bid_when_budget_constrained: + Whether the strategy is allowed to raise bids when the + throttling rate of the budget it is serving out of rises above + a threshold. + raise_cpc_bid_when_quality_score_is_low: + Whether the strategy is allowed to raise bids on keywords with + lower-range quality scores. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.PageOnePromoted) + )) +_sym_db.RegisterMessage(PageOnePromoted) + +TargetCpa = _reflection.GeneratedProtocolMessageType('TargetCpa', (_message.Message,), dict( + DESCRIPTOR = _TARGETCPA, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bid strategy that sets bids to help get as many conversions + as possible at the target cost-per-acquisition (CPA) you set. + + + Attributes: + target_cpa_micros: + Average CPA target. This target should be greater than or + equal to minimum billable unit based on the currency for the + account. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + cpc_bid_floor_micros: + Minimum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.TargetCpa) + )) +_sym_db.RegisterMessage(TargetCpa) + +TargetOutrankShare = _reflection.GeneratedProtocolMessageType('TargetOutrankShare', (_message.Message,), dict( + DESCRIPTOR = _TARGETOUTRANKSHARE, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy that sets bids based on the target + fraction of auctions where the advertiser should outrank a specific + competitor. + + + Attributes: + target_outrank_share_micros: + The target fraction of auctions where the advertiser should + outrank the competitor. The advertiser outranks the competitor + in an auction if either the advertiser appears above the + competitor in the search results, or appears in the search + results when the competitor does not. Value must be between 1 + and 1000000, inclusive. + competitor_domain: + Competitor's visible domain URL. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + only_raise_cpc_bids: + Whether the strategy should always follow bid estimate + changes, or only increase. If false, always set a keyword's + new bid to the current bid estimate. If true, only updates a + keyword's bid if the current bid estimate is greater than the + current bid. + raise_cpc_bid_when_quality_score_is_low: + Whether the strategy is allowed to raise bids on keywords with + lower-range quality scores. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.TargetOutrankShare) + )) +_sym_db.RegisterMessage(TargetOutrankShare) + +TargetRoas = _reflection.GeneratedProtocolMessageType('TargetRoas', (_message.Message,), dict( + DESCRIPTOR = _TARGETROAS, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bidding strategy that helps you maximize revenue while + averaging a specific target return on ad spend (ROAS). + + + Attributes: + target_roas: + Required. The desired revenue (based on conversion data) per + unit of spend. Value must be between 0.01 and 1000.0, + inclusive. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + cpc_bid_floor_micros: + Minimum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.TargetRoas) + )) +_sym_db.RegisterMessage(TargetRoas) + +TargetSpend = _reflection.GeneratedProtocolMessageType('TargetSpend', (_message.Message,), dict( + DESCRIPTOR = _TARGETSPEND, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """An automated bid strategy that sets your bids to help get as many clicks + as possible within your budget. + + + Attributes: + target_spend_micros: + The spend target under which to maximize clicks. A TargetSpend + bidder will attempt to spend the smaller of this value or the + natural throttling spend amount. If not specified, the budget + is used as the spend target. + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. The + limit applies to all keywords managed by the strategy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.TargetSpend) + )) +_sym_db.RegisterMessage(TargetSpend) + +PercentCpc = _reflection.GeneratedProtocolMessageType('PercentCpc', (_message.Message,), dict( + DESCRIPTOR = _PERCENTCPC, + __module__ = 'google.ads.googleads_v0.proto.common.bidding_pb2' + , + __doc__ = """A bidding strategy where bids are a fraction of the advertised price for + some good or service. + + + Attributes: + cpc_bid_ceiling_micros: + Maximum bid limit that can be set by the bid strategy. This is + an optional field entered by the advertiser and specified in + local micros. Note: A zero value is interpreted in the same + way as having bid\_ceiling undefined. + enhanced_cpc_enabled: + Adjusts the bid for each auction upward or downward, depending + on the likelihood of a conversion. Individual bids may exceed + cpc\_bid\_ceiling\_micros, but the average bid amount for a + campaign should not. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.PercentCpc) + )) +_sym_db.RegisterMessage(PercentCpc) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\014BiddingProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/bidding_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/bidding_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/bidding_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/criteria_pb2.py b/google/ads/google_ads/v0/proto/common/criteria_pb2.py new file mode 100644 index 000000000..150c5bb00 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/criteria_pb2.py @@ -0,0 +1,902 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/criteria.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.ads.google_ads.v0.proto.enums import listing_custom_attribute_index_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__custom__attribute__index__pb2 +from google.ads.google_ads.v0.proto.enums import listing_group_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__group__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/criteria.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n3google/ads/googleads_v0/proto/common/criteria.proto\x12\x1egoogle.ads.googleads.v0.common\x1a\n\x18\x63ountry_region_criterion\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"G\n\x0eHotelStateInfo\x12\x35\n\x0fstate_criterion\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"E\n\rHotelCityInfo\x12\x34\n\x0e\x63ity_criterion\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xb4\x01\n\x1aListingCustomAttributeInfo\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12i\n\x05index\x18\x02 \x01(\x0e\x32Z.google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex\"\x1c\n\x1aHotelDateSelectionTypeInfo\"}\n\x1dHotelAdvanceBookingWindowInfo\x12-\n\x08min_days\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12-\n\x08max_days\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"y\n\x15HotelLengthOfStayInfo\x12/\n\nmin_nights\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12/\n\nmax_nights\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x15\n\x13HotelCheckInDayInfoB\xc3\x01\n\"com.google.ads.googleads.v0.commonB\rCriteriaProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__custom__attribute__index__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__group__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_KEYWORDINFO = _descriptor.Descriptor( + name='KeywordInfo', + full_name='google.ads.googleads.v0.common.KeywordInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='text', full_name='google.ads.googleads.v0.common.KeywordInfo.text', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='match_type', full_name='google.ads.googleads.v0.common.KeywordInfo.match_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=318, + serialized_end=465, +) + + +_LOCATIONINFO = _descriptor.Descriptor( + name='LocationInfo', + full_name='google.ads.googleads.v0.common.LocationInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=467, + serialized_end=481, +) + + +_PLATFORMINFO = _descriptor.Descriptor( + name='PlatformInfo', + full_name='google.ads.googleads.v0.common.PlatformInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=483, + serialized_end=497, +) + + +_LISTINGGROUPINFO = _descriptor.Descriptor( + name='ListingGroupInfo', + full_name='google.ads.googleads.v0.common.ListingGroupInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.common.ListingGroupInfo.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='case_value', full_name='google.ads.googleads.v0.common.ListingGroupInfo.case_value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='parent_criterion_id', full_name='google.ads.googleads.v0.common.ListingGroupInfo.parent_criterion_id', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=500, + serialized_end=734, +) + + +_LISTINGDIMENSIONINFO = _descriptor.Descriptor( + name='ListingDimensionInfo', + full_name='google.ads.googleads.v0.common.ListingDimensionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='listing_brand', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.listing_brand', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_id', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.hotel_id', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_class', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.hotel_class', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_country_region', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.hotel_country_region', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_state', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.hotel_state', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_city', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.hotel_city', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='listing_custom_attribute', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.listing_custom_attribute', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='dimension', full_name='google.ads.googleads.v0.common.ListingDimensionInfo.dimension', + index=0, containing_type=None, fields=[]), + ], + serialized_start=737, + serialized_end=1307, +) + + +_LISTINGBRANDINFO = _descriptor.Descriptor( + name='ListingBrandInfo', + full_name='google.ads.googleads.v0.common.ListingBrandInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v0.common.ListingBrandInfo.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1309, + serialized_end=1372, +) + + +_HOTELIDINFO = _descriptor.Descriptor( + name='HotelIdInfo', + full_name='google.ads.googleads.v0.common.HotelIdInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v0.common.HotelIdInfo.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1374, + serialized_end=1432, +) + + +_HOTELCLASSINFO = _descriptor.Descriptor( + name='HotelClassInfo', + full_name='google.ads.googleads.v0.common.HotelClassInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v0.common.HotelClassInfo.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1434, + serialized_end=1494, +) + + +_HOTELCOUNTRYREGIONINFO = _descriptor.Descriptor( + name='HotelCountryRegionInfo', + full_name='google.ads.googleads.v0.common.HotelCountryRegionInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='country_region_criterion', full_name='google.ads.googleads.v0.common.HotelCountryRegionInfo.country_region_criterion', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1496, + serialized_end=1584, +) + + +_HOTELSTATEINFO = _descriptor.Descriptor( + name='HotelStateInfo', + full_name='google.ads.googleads.v0.common.HotelStateInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='state_criterion', full_name='google.ads.googleads.v0.common.HotelStateInfo.state_criterion', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1586, + serialized_end=1657, +) + + +_HOTELCITYINFO = _descriptor.Descriptor( + name='HotelCityInfo', + full_name='google.ads.googleads.v0.common.HotelCityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='city_criterion', full_name='google.ads.googleads.v0.common.HotelCityInfo.city_criterion', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1659, + serialized_end=1728, +) + + +_LISTINGCUSTOMATTRIBUTEINFO = _descriptor.Descriptor( + name='ListingCustomAttributeInfo', + full_name='google.ads.googleads.v0.common.ListingCustomAttributeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v0.common.ListingCustomAttributeInfo.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='index', full_name='google.ads.googleads.v0.common.ListingCustomAttributeInfo.index', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1731, + serialized_end=1911, +) + + +_HOTELDATESELECTIONTYPEINFO = _descriptor.Descriptor( + name='HotelDateSelectionTypeInfo', + full_name='google.ads.googleads.v0.common.HotelDateSelectionTypeInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1913, + serialized_end=1941, +) + + +_HOTELADVANCEBOOKINGWINDOWINFO = _descriptor.Descriptor( + name='HotelAdvanceBookingWindowInfo', + full_name='google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_days', full_name='google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.min_days', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_days', full_name='google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.max_days', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1943, + serialized_end=2068, +) + + +_HOTELLENGTHOFSTAYINFO = _descriptor.Descriptor( + name='HotelLengthOfStayInfo', + full_name='google.ads.googleads.v0.common.HotelLengthOfStayInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_nights', full_name='google.ads.googleads.v0.common.HotelLengthOfStayInfo.min_nights', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_nights', full_name='google.ads.googleads.v0.common.HotelLengthOfStayInfo.max_nights', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2070, + serialized_end=2191, +) + + +_HOTELCHECKINDAYINFO = _descriptor.Descriptor( + name='HotelCheckInDayInfo', + full_name='google.ads.googleads.v0.common.HotelCheckInDayInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2193, + serialized_end=2214, +) + +_KEYWORDINFO.fields_by_name['text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_KEYWORDINFO.fields_by_name['match_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2._KEYWORDMATCHTYPEENUM_KEYWORDMATCHTYPE +_LISTINGGROUPINFO.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__group__type__pb2._LISTINGGROUPTYPEENUM_LISTINGGROUPTYPE +_LISTINGGROUPINFO.fields_by_name['case_value'].message_type = _LISTINGDIMENSIONINFO +_LISTINGGROUPINFO.fields_by_name['parent_criterion_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_LISTINGDIMENSIONINFO.fields_by_name['listing_brand'].message_type = _LISTINGBRANDINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_id'].message_type = _HOTELIDINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_class'].message_type = _HOTELCLASSINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region'].message_type = _HOTELCOUNTRYREGIONINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_state'].message_type = _HOTELSTATEINFO +_LISTINGDIMENSIONINFO.fields_by_name['hotel_city'].message_type = _HOTELCITYINFO +_LISTINGDIMENSIONINFO.fields_by_name['listing_custom_attribute'].message_type = _LISTINGCUSTOMATTRIBUTEINFO +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['listing_brand']) +_LISTINGDIMENSIONINFO.fields_by_name['listing_brand'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_id']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_id'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_class']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_class'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_country_region'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_state']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_state'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['hotel_city']) +_LISTINGDIMENSIONINFO.fields_by_name['hotel_city'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGDIMENSIONINFO.oneofs_by_name['dimension'].fields.append( + _LISTINGDIMENSIONINFO.fields_by_name['listing_custom_attribute']) +_LISTINGDIMENSIONINFO.fields_by_name['listing_custom_attribute'].containing_oneof = _LISTINGDIMENSIONINFO.oneofs_by_name['dimension'] +_LISTINGBRANDINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELIDINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELCLASSINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_HOTELCOUNTRYREGIONINFO.fields_by_name['country_region_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELSTATEINFO.fields_by_name['state_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_HOTELCITYINFO.fields_by_name['city_criterion'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LISTINGCUSTOMATTRIBUTEINFO.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_LISTINGCUSTOMATTRIBUTEINFO.fields_by_name['index'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_listing__custom__attribute__index__pb2._LISTINGCUSTOMATTRIBUTEINDEXENUM_LISTINGCUSTOMATTRIBUTEINDEX +_HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['min_days'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_HOTELADVANCEBOOKINGWINDOWINFO.fields_by_name['max_days'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_HOTELLENGTHOFSTAYINFO.fields_by_name['min_nights'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_HOTELLENGTHOFSTAYINFO.fields_by_name['max_nights'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['KeywordInfo'] = _KEYWORDINFO +DESCRIPTOR.message_types_by_name['LocationInfo'] = _LOCATIONINFO +DESCRIPTOR.message_types_by_name['PlatformInfo'] = _PLATFORMINFO +DESCRIPTOR.message_types_by_name['ListingGroupInfo'] = _LISTINGGROUPINFO +DESCRIPTOR.message_types_by_name['ListingDimensionInfo'] = _LISTINGDIMENSIONINFO +DESCRIPTOR.message_types_by_name['ListingBrandInfo'] = _LISTINGBRANDINFO +DESCRIPTOR.message_types_by_name['HotelIdInfo'] = _HOTELIDINFO +DESCRIPTOR.message_types_by_name['HotelClassInfo'] = _HOTELCLASSINFO +DESCRIPTOR.message_types_by_name['HotelCountryRegionInfo'] = _HOTELCOUNTRYREGIONINFO +DESCRIPTOR.message_types_by_name['HotelStateInfo'] = _HOTELSTATEINFO +DESCRIPTOR.message_types_by_name['HotelCityInfo'] = _HOTELCITYINFO +DESCRIPTOR.message_types_by_name['ListingCustomAttributeInfo'] = _LISTINGCUSTOMATTRIBUTEINFO +DESCRIPTOR.message_types_by_name['HotelDateSelectionTypeInfo'] = _HOTELDATESELECTIONTYPEINFO +DESCRIPTOR.message_types_by_name['HotelAdvanceBookingWindowInfo'] = _HOTELADVANCEBOOKINGWINDOWINFO +DESCRIPTOR.message_types_by_name['HotelLengthOfStayInfo'] = _HOTELLENGTHOFSTAYINFO +DESCRIPTOR.message_types_by_name['HotelCheckInDayInfo'] = _HOTELCHECKINDAYINFO +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordInfo = _reflection.GeneratedProtocolMessageType('KeywordInfo', (_message.Message,), dict( + DESCRIPTOR = _KEYWORDINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """A keyword criterion. + + + Attributes: + text: + The text of the keyword (at most 80 characters and 10 words). + match_type: + The match type of the keyword. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.KeywordInfo) + )) +_sym_db.RegisterMessage(KeywordInfo) + +LocationInfo = _reflection.GeneratedProtocolMessageType('LocationInfo', (_message.Message,), dict( + DESCRIPTOR = _LOCATIONINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """A location criterion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.LocationInfo) + )) +_sym_db.RegisterMessage(LocationInfo) + +PlatformInfo = _reflection.GeneratedProtocolMessageType('PlatformInfo', (_message.Message,), dict( + DESCRIPTOR = _PLATFORMINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """A platform criterion. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.PlatformInfo) + )) +_sym_db.RegisterMessage(PlatformInfo) + +ListingGroupInfo = _reflection.GeneratedProtocolMessageType('ListingGroupInfo', (_message.Message,), dict( + DESCRIPTOR = _LISTINGGROUPINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """A listing group criterion. + + + Attributes: + type: + Type of the listing group. + case_value: + Dimension value with which this listing group is refining its + parent. Undefined for the root group. + parent_criterion_id: + ID of the parent listing group subdivision. Undefined for the + root group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ListingGroupInfo) + )) +_sym_db.RegisterMessage(ListingGroupInfo) + +ListingDimensionInfo = _reflection.GeneratedProtocolMessageType('ListingDimensionInfo', (_message.Message,), dict( + DESCRIPTOR = _LISTINGDIMENSIONINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Listing dimensions for listing group criterion. + + + Attributes: + dimension: + Dimension of one of the types below is always present. + listing_brand: + Brand of the listing. + hotel_id: + Advertiser-specific hotel ID. + hotel_class: + Class of the hotel as a number of stars 1 to 5. + hotel_country_region: + Country or Region the hotel is located in. + hotel_state: + State the hotel is located in. + hotel_city: + City the hotel is located in. + listing_custom_attribute: + Listing custom attribute. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ListingDimensionInfo) + )) +_sym_db.RegisterMessage(ListingDimensionInfo) + +ListingBrandInfo = _reflection.GeneratedProtocolMessageType('ListingBrandInfo', (_message.Message,), dict( + DESCRIPTOR = _LISTINGBRANDINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Brand of the listing. + + + Attributes: + value: + String value of the listing brand. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ListingBrandInfo) + )) +_sym_db.RegisterMessage(ListingBrandInfo) + +HotelIdInfo = _reflection.GeneratedProtocolMessageType('HotelIdInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELIDINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Advertiser-specific hotel ID. + + + Attributes: + value: + String value of the hotel ID. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelIdInfo) + )) +_sym_db.RegisterMessage(HotelIdInfo) + +HotelClassInfo = _reflection.GeneratedProtocolMessageType('HotelClassInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELCLASSINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Class of the hotel as a number of stars 1 to 5. + + + Attributes: + value: + Long value of the hotel class. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelClassInfo) + )) +_sym_db.RegisterMessage(HotelClassInfo) + +HotelCountryRegionInfo = _reflection.GeneratedProtocolMessageType('HotelCountryRegionInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELCOUNTRYREGIONINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Country or Region the hotel is located in. + + + Attributes: + country_region_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelCountryRegionInfo) + )) +_sym_db.RegisterMessage(HotelCountryRegionInfo) + +HotelStateInfo = _reflection.GeneratedProtocolMessageType('HotelStateInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELSTATEINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """State the hotel is located in. + + + Attributes: + state_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelStateInfo) + )) +_sym_db.RegisterMessage(HotelStateInfo) + +HotelCityInfo = _reflection.GeneratedProtocolMessageType('HotelCityInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELCITYINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """City the hotel is located in. + + + Attributes: + city_criterion: + The Geo Target Constant resource name. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelCityInfo) + )) +_sym_db.RegisterMessage(HotelCityInfo) + +ListingCustomAttributeInfo = _reflection.GeneratedProtocolMessageType('ListingCustomAttributeInfo', (_message.Message,), dict( + DESCRIPTOR = _LISTINGCUSTOMATTRIBUTEINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Listing custom attribute. + + + Attributes: + value: + String value of the listing custom attribute. + index: + Indicates the index of the custom attribute. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.ListingCustomAttributeInfo) + )) +_sym_db.RegisterMessage(ListingCustomAttributeInfo) + +HotelDateSelectionTypeInfo = _reflection.GeneratedProtocolMessageType('HotelDateSelectionTypeInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELDATESELECTIONTYPEINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Criterion for hotel date selection (default dates vs. user selected). + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelDateSelectionTypeInfo) + )) +_sym_db.RegisterMessage(HotelDateSelectionTypeInfo) + +HotelAdvanceBookingWindowInfo = _reflection.GeneratedProtocolMessageType('HotelAdvanceBookingWindowInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELADVANCEBOOKINGWINDOWINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Criterion for number of days prior to the stay the booking is being + made. + + + Attributes: + min_days: + Low end of the number of days prior to the stay. + max_days: + High end of the number of days prior to the stay. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo) + )) +_sym_db.RegisterMessage(HotelAdvanceBookingWindowInfo) + +HotelLengthOfStayInfo = _reflection.GeneratedProtocolMessageType('HotelLengthOfStayInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELLENGTHOFSTAYINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Criterion for length of hotel stay in nights. + + + Attributes: + min_nights: + Low end of the number of nights in the stay. + max_nights: + High end of the number of nights in the stay. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelLengthOfStayInfo) + )) +_sym_db.RegisterMessage(HotelLengthOfStayInfo) + +HotelCheckInDayInfo = _reflection.GeneratedProtocolMessageType('HotelCheckInDayInfo', (_message.Message,), dict( + DESCRIPTOR = _HOTELCHECKINDAYINFO, + __module__ = 'google.ads.googleads_v0.proto.common.criteria_pb2' + , + __doc__ = """Criterion for day of the week the booking is for. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.HotelCheckInDayInfo) + )) +_sym_db.RegisterMessage(HotelCheckInDayInfo) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\rCriteriaProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/criteria_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/criteria_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/criteria_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/custom_parameter_pb2.py b/google/ads/google_ads/v0/proto/common/custom_parameter_pb2.py new file mode 100644 index 000000000..101348815 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/custom_parameter_pb2.py @@ -0,0 +1,93 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/custom_parameter.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/custom_parameter.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n;google/ads/googleads_v0/proto/common/custom_parameter.proto\x12\x1egoogle.ads.googleads.v0.common\x1a\x1egoogle/protobuf/wrappers.proto\"i\n\x0f\x43ustomParameter\x12)\n\x03key\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xca\x01\n\"com.google.ads.googleads.v0.commonB\x14\x43ustomParameterProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_CUSTOMPARAMETER = _descriptor.Descriptor( + name='CustomParameter', + full_name='google.ads.googleads.v0.common.CustomParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='google.ads.googleads.v0.common.CustomParameter.key', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='google.ads.googleads.v0.common.CustomParameter.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=127, + serialized_end=232, +) + +_CUSTOMPARAMETER.fields_by_name['key'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMPARAMETER.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['CustomParameter'] = _CUSTOMPARAMETER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CustomParameter = _reflection.GeneratedProtocolMessageType('CustomParameter', (_message.Message,), dict( + DESCRIPTOR = _CUSTOMPARAMETER, + __module__ = 'google.ads.googleads_v0.proto.common.custom_parameter_pb2' + , + __doc__ = """A mapping that can be used by custom parameter tags in a + ``tracking_url_template``, ``final_urls``, or ``mobile_final_urls``. + + + Attributes: + key: + The key matching the parameter tag name. + value: + The value to be substituted. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.CustomParameter) + )) +_sym_db.RegisterMessage(CustomParameter) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\024CustomParameterProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/custom_parameter_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/custom_parameter_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/custom_parameter_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/metrics_pb2.py b/google/ads/google_ads/v0/proto/common/metrics_pb2.py new file mode 100644 index 000000000..5218cc836 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/metrics_pb2.py @@ -0,0 +1,568 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/metrics.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/metrics.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n2google/ads/googleads_v0/proto/common/metrics.proto\x12\x1egoogle.ads.googleads.v0.common\x1a\x1egoogle/protobuf/wrappers.proto\"\xf7\x13\n\x07Metrics\x12\x39\n\x13\x61ll_conversion_rate\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12:\n\x14\x61ll_conversion_value\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x35\n\x0f\x61ll_conversions\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x44\n\x1e\x61ll_conversions_value_per_cost\x18> \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12K\n%all_conversions_value_per_interaction\x18= \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x32\n\x0c\x61verage_cost\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0b\x61verage_cpc\x18\t \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0b\x61verage_cpm\x18\n \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x36\n\x10\x61verage_position\x18\r \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0b\x62ounce_rate\x18\x0f \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12+\n\x06\x63licks\x18\x13 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12J\n$content_budget_lost_impression_share\x18\x14 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x18\x63ontent_impression_share\x18\x15 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12H\n\"content_rank_lost_impression_share\x18\x16 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x35\n\x0f\x63onversion_rate\x18\x17 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x36\n\x10\x63onversion_value\x18\x18 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12?\n\x19\x63onversion_value_per_cost\x18@ \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x46\n conversion_value_per_interaction\x18? \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0b\x63onversions\x18\x19 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x30\n\x0b\x63ost_micros\x18\x1a \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12=\n\x17\x63ost_per_all_conversion\x18\x1b \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x39\n\x13\x63ost_per_conversion\x18\x1c \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x18\x63ross_device_conversions\x18\x1d \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12)\n\x03\x63tr\x18\x1e \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x35\n\x0f\x65ngagement_rate\x18\x1f \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x30\n\x0b\x65ngagements\x18 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\x0bimpressions\x18% \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x10interaction_rate\x18& \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x31\n\x0cinteractions\x18\' \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x38\n\x12invalid_click_rate\x18( \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x33\n\x0einvalid_clicks\x18) \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14percent_new_visitors\x18* \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x30\n\x0bphone_calls\x18+ \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x11phone_impressions\x18, \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x38\n\x12phone_through_rate\x18- \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x32\n\x0crelative_ctr\x18. \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12I\n#search_budget_lost_impression_share\x18/ \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12I\n#search_exact_match_impression_share\x18\x31 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12=\n\x17search_impression_share\x18\x32 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12G\n!search_rank_lost_impression_share\x18\x33 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12?\n\x19value_per_all_conversions\x18\x34 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12:\n\x14value_per_conversion\x18\x35 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12=\n\x18view_through_conversions\x18< \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\xc2\x01\n\"com.google.ads.googleads.v0.commonB\x0cMetricsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_METRICS = _descriptor.Descriptor( + name='Metrics', + full_name='google.ads.googleads.v0.common.Metrics', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='all_conversion_rate', full_name='google.ads.googleads.v0.common.Metrics.all_conversion_rate', index=0, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='all_conversion_value', full_name='google.ads.googleads.v0.common.Metrics.all_conversion_value', index=1, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='all_conversions', full_name='google.ads.googleads.v0.common.Metrics.all_conversions', index=2, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='all_conversions_value_per_cost', full_name='google.ads.googleads.v0.common.Metrics.all_conversions_value_per_cost', index=3, + number=62, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='all_conversions_value_per_interaction', full_name='google.ads.googleads.v0.common.Metrics.all_conversions_value_per_interaction', index=4, + number=61, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='average_cost', full_name='google.ads.googleads.v0.common.Metrics.average_cost', index=5, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='average_cpc', full_name='google.ads.googleads.v0.common.Metrics.average_cpc', index=6, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='average_cpm', full_name='google.ads.googleads.v0.common.Metrics.average_cpm', index=7, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='average_position', full_name='google.ads.googleads.v0.common.Metrics.average_position', index=8, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bounce_rate', full_name='google.ads.googleads.v0.common.Metrics.bounce_rate', index=9, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='clicks', full_name='google.ads.googleads.v0.common.Metrics.clicks', index=10, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='content_budget_lost_impression_share', full_name='google.ads.googleads.v0.common.Metrics.content_budget_lost_impression_share', index=11, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='content_impression_share', full_name='google.ads.googleads.v0.common.Metrics.content_impression_share', index=12, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='content_rank_lost_impression_share', full_name='google.ads.googleads.v0.common.Metrics.content_rank_lost_impression_share', index=13, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conversion_rate', full_name='google.ads.googleads.v0.common.Metrics.conversion_rate', index=14, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conversion_value', full_name='google.ads.googleads.v0.common.Metrics.conversion_value', index=15, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conversion_value_per_cost', full_name='google.ads.googleads.v0.common.Metrics.conversion_value_per_cost', index=16, + number=64, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conversion_value_per_interaction', full_name='google.ads.googleads.v0.common.Metrics.conversion_value_per_interaction', index=17, + number=63, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conversions', full_name='google.ads.googleads.v0.common.Metrics.conversions', index=18, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cost_micros', full_name='google.ads.googleads.v0.common.Metrics.cost_micros', index=19, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cost_per_all_conversion', full_name='google.ads.googleads.v0.common.Metrics.cost_per_all_conversion', index=20, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cost_per_conversion', full_name='google.ads.googleads.v0.common.Metrics.cost_per_conversion', index=21, + number=28, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cross_device_conversions', full_name='google.ads.googleads.v0.common.Metrics.cross_device_conversions', index=22, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ctr', full_name='google.ads.googleads.v0.common.Metrics.ctr', index=23, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engagement_rate', full_name='google.ads.googleads.v0.common.Metrics.engagement_rate', index=24, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engagements', full_name='google.ads.googleads.v0.common.Metrics.engagements', index=25, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='impressions', full_name='google.ads.googleads.v0.common.Metrics.impressions', index=26, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='interaction_rate', full_name='google.ads.googleads.v0.common.Metrics.interaction_rate', index=27, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='interactions', full_name='google.ads.googleads.v0.common.Metrics.interactions', index=28, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='invalid_click_rate', full_name='google.ads.googleads.v0.common.Metrics.invalid_click_rate', index=29, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='invalid_clicks', full_name='google.ads.googleads.v0.common.Metrics.invalid_clicks', index=30, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='percent_new_visitors', full_name='google.ads.googleads.v0.common.Metrics.percent_new_visitors', index=31, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phone_calls', full_name='google.ads.googleads.v0.common.Metrics.phone_calls', index=32, + number=43, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phone_impressions', full_name='google.ads.googleads.v0.common.Metrics.phone_impressions', index=33, + number=44, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phone_through_rate', full_name='google.ads.googleads.v0.common.Metrics.phone_through_rate', index=34, + number=45, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='relative_ctr', full_name='google.ads.googleads.v0.common.Metrics.relative_ctr', index=35, + number=46, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='search_budget_lost_impression_share', full_name='google.ads.googleads.v0.common.Metrics.search_budget_lost_impression_share', index=36, + number=47, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='search_exact_match_impression_share', full_name='google.ads.googleads.v0.common.Metrics.search_exact_match_impression_share', index=37, + number=49, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='search_impression_share', full_name='google.ads.googleads.v0.common.Metrics.search_impression_share', index=38, + number=50, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='search_rank_lost_impression_share', full_name='google.ads.googleads.v0.common.Metrics.search_rank_lost_impression_share', index=39, + number=51, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value_per_all_conversions', full_name='google.ads.googleads.v0.common.Metrics.value_per_all_conversions', index=40, + number=52, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value_per_conversion', full_name='google.ads.googleads.v0.common.Metrics.value_per_conversion', index=41, + number=53, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='view_through_conversions', full_name='google.ads.googleads.v0.common.Metrics.view_through_conversions', index=42, + number=60, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=2670, +) + +_METRICS.fields_by_name['all_conversion_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['all_conversion_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['all_conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['all_conversions_value_per_cost'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['all_conversions_value_per_interaction'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['average_cost'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['average_cpc'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['average_cpm'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['average_position'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['bounce_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['clicks'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['content_budget_lost_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['content_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['content_rank_lost_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['conversion_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['conversion_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['conversion_value_per_cost'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['conversion_value_per_interaction'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['cost_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['cost_per_all_conversion'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['cost_per_conversion'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['cross_device_conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['ctr'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['engagement_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['engagements'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['interaction_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['interactions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['invalid_click_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['invalid_clicks'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['percent_new_visitors'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['phone_calls'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['phone_impressions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_METRICS.fields_by_name['phone_through_rate'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['relative_ctr'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['search_budget_lost_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['search_exact_match_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['search_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['search_rank_lost_impression_share'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['value_per_all_conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['value_per_conversion'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_METRICS.fields_by_name['view_through_conversions'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['Metrics'] = _METRICS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Metrics = _reflection.GeneratedProtocolMessageType('Metrics', (_message.Message,), dict( + DESCRIPTOR = _METRICS, + __module__ = 'google.ads.googleads_v0.proto.common.metrics_pb2' + , + __doc__ = """Metrics data. + + + Attributes: + all_conversion_rate: + All conversions divided by the number of ad interactions. + all_conversion_value: + The total value of all conversions. + all_conversions: + The total number of conversions. This includes "Conversions" + plus conversions that have their "Include in Conversions" + setting unchecked. + all_conversions_value_per_cost: + The value of all conversions divided by the total cost of ad + interactions (such as clicks for text ads or views for video + ads). + all_conversions_value_per_interaction: + The value of all conversions divided by the total number of + interactions. + average_cost: + The average amount you pay per interaction. This amount is the + total cost of your ads divided by the total number of + interactions. + average_cpc: + The total cost of all clicks divided by the total number of + clicks received. + average_cpm: + Average cost-per-thousand impressions (CPM). + average_position: + Your ad's position relative to those of other advertisers. + bounce_rate: + Percentage of clicks where the user only visited a single page + on your site. Imported from Google Analytics. + clicks: + The number of clicks. + content_budget_lost_impression_share: + The estimated percent of times that your ad was eligible to + show on the Display Network but didn't because your budget was + too low. Note: Content budget lost impression share is + reported in the range of 0 to 0.9. Any value above 0.9 is + reported as 0.9001. + content_impression_share: + The impressions you've received on the Display Network divided + by the estimated number of impressions you were eligible to + receive. Note: Content impression share is reported in the + range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + content_rank_lost_impression_share: + The estimated percentage of impressions on the Display Network + that your ads didn't receive due to poor Ad Rank. Note: + Content rank lost impression share is reported in the range of + 0 to 0.9. Any value above 0.9 is reported as 0.9001. + conversion_rate: + Conversions divided by the number of ad interactions (such as + clicks for text ads or views for video ads). + conversion_value: + The total value of conversions. + conversion_value_per_cost: + The value of conversions divided by the cost of ad + interactions. + conversion_value_per_interaction: + The value of conversions divided by the number of ad + interactions. + conversions: + The number of conversions. This only includes conversion + actions which have "Include in Conversions" checked. + cost_micros: + The sum of your cost-per-click (CPC) and cost-per-thousand + impressions (CPM) costs during this period. + cost_per_all_conversion: + The cost of ad interactions divided by all conversions. + cost_per_conversion: + The cost of ad interactions divided by conversions. + cross_device_conversions: + Conversions from when a customer clicks on an AdWords ad on + one device, then converts on a different device or browser. + Cross-device conversions are already included in + all\_conversions. + ctr: + The number of clicks your ad receives (Clicks) divided by the + number of times your ad is shown (Impressions). + engagement_rate: + How often people engage with your ad after it's shown to them. + This is the number of ad expansions divided by the number of + times your ad is shown. + engagements: + The number of engagements. An engagement occurs when a viewer + expands your Lightbox ad. Also, in the future, other ad types + may support engagement metrics. + impressions: + Count of how often your ad has appeared on a search results + page or website on the Google Network. + interaction_rate: + How often people interact with your ad after it is shown to + them. This is the number of interactions divided by the number + of times your ad is shown. + interactions: + The number of interactions. An interaction is the main user + action associated with an ad format-clicks for text and + shopping ads, views for video ads, and so on. + invalid_click_rate: + The percentage of clicks filtered out of your total number of + clicks (filtered + non-filtered clicks) during the reporting + period. + invalid_clicks: + Number of clicks Google considers illegitimate and doesn't + charge you for. + percent_new_visitors: + Percentage of first-time sessions (from people who had never + visited your site before). Imported from Google Analytics. + phone_calls: + Number of offline phone calls. + phone_impressions: + Number of offline phone impressions. + phone_through_rate: + Number of phone calls received (phone\_calls) divided by the + number of times your phone number is shown + (phone\_impressions). + relative_ctr: + Your clickthrough rate (Ctr) divided by the average + clickthrough rate of all advertisers on the websites that show + your ads. Measures how your ads perform on Display Network + sites compared to other ads on the same sites. + search_budget_lost_impression_share: + The estimated percent of times that your ad was eligible to + show on the Search Network but didn't because your budget was + too low. Note: Search budget lost impression share is reported + in the range of 0 to 0.9. Any value above 0.9 is reported as + 0.9001. + search_exact_match_impression_share: + The impressions you've received divided by the estimated + number of impressions you were eligible to receive on the + Search Network for search terms that matched your keywords + exactly (or were close variants of your keyword), regardless + of your keyword match types. Note: Search exact match + impression share is reported in the range of 0.1 to 1. Any + value below 0.1 is reported as 0.0999. + search_impression_share: + The impressions you've received on the Search Network divided + by the estimated number of impressions you were eligible to + receive. Note: Search impression share is reported in the + range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. + search_rank_lost_impression_share: + The estimated percentage of impressions on the Search Network + that your ads didn't receive due to poor Ad Rank. Note: Search + rank lost impression share is reported in the range of 0 to + 0.9. Any value above 0.9 is reported as 0.9001. + value_per_all_conversions: + The value of all conversions divided by the number of all + conversions. + value_per_conversion: + The value of conversions divided by the number of conversions. + view_through_conversions: + The total number of view-through conversions. These happen + when a customer sees an image or rich media ad, then later + completes a conversion on your site without interacting with + (e.g., clicking on) another ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.Metrics) + )) +_sym_db.RegisterMessage(Metrics) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\014MetricsProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/metrics_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/metrics_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/metrics_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/policy_pb2.py b/google/ads/google_ads/v0/proto/common/policy_pb2.py new file mode 100644 index 000000000..1560c6fbe --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/policy_pb2.py @@ -0,0 +1,97 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/policy.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/policy.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n1google/ads/googleads_v0/proto/common/policy.proto\x12\x1egoogle.ads.googleads.v0.common\x1a\x1egoogle/protobuf/wrappers.proto\"}\n\x12PolicyViolationKey\x12\x31\n\x0bpolicy_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0eviolating_text\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xc1\x01\n\"com.google.ads.googleads.v0.commonB\x0bPolicyProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_POLICYVIOLATIONKEY = _descriptor.Descriptor( + name='PolicyViolationKey', + full_name='google.ads.googleads.v0.common.PolicyViolationKey', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='policy_name', full_name='google.ads.googleads.v0.common.PolicyViolationKey.policy_name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='violating_text', full_name='google.ads.googleads.v0.common.PolicyViolationKey.violating_text', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=117, + serialized_end=242, +) + +_POLICYVIOLATIONKEY.fields_by_name['policy_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_POLICYVIOLATIONKEY.fields_by_name['violating_text'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['PolicyViolationKey'] = _POLICYVIOLATIONKEY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +PolicyViolationKey = _reflection.GeneratedProtocolMessageType('PolicyViolationKey', (_message.Message,), dict( + DESCRIPTOR = _POLICYVIOLATIONKEY, + __module__ = 'google.ads.googleads_v0.proto.common.policy_pb2' + , + __doc__ = """Key of the violation. The key is used for referring to a violation when + filing an exemption request. + + + Attributes: + policy_name: + Unique ID of the violated policy. + violating_text: + The text that violates the policy if specified. Otherwise, + refers to the policy in general (e.g., when requesting to be + exempt from the whole policy). If not specified for criterion + exemptions, the whole policy is implied. Must be specified for + ad exemptions. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.PolicyViolationKey) + )) +_sym_db.RegisterMessage(PolicyViolationKey) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\013PolicyProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/policy_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/policy_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/policy_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/common/value_pb2.py b/google/ads/google_ads/v0/proto/common/value_pb2.py new file mode 100644 index 000000000..e0dbd18ee --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/value_pb2.py @@ -0,0 +1,135 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/common/value.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/common/value.proto', + package='google.ads.googleads.v0.common', + syntax='proto3', + serialized_pb=_b('\n0google/ads/googleads_v0/proto/common/value.proto\x12\x1egoogle.ads.googleads.v0.common\"\x87\x01\n\x05Value\x12\x17\n\rboolean_value\x18\x01 \x01(\x08H\x00\x12\x15\n\x0bint64_value\x18\x02 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x05 \x01(\tH\x00\x42\x07\n\x05valueB\xc0\x01\n\"com.google.ads.googleads.v0.commonB\nValueProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Common\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Commonb\x06proto3') +) + + + + +_VALUE = _descriptor.Descriptor( + name='Value', + full_name='google.ads.googleads.v0.common.Value', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='boolean_value', full_name='google.ads.googleads.v0.common.Value.boolean_value', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='int64_value', full_name='google.ads.googleads.v0.common.Value.int64_value', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='float_value', full_name='google.ads.googleads.v0.common.Value.float_value', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='double_value', full_name='google.ads.googleads.v0.common.Value.double_value', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='string_value', full_name='google.ads.googleads.v0.common.Value.string_value', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='value', full_name='google.ads.googleads.v0.common.Value.value', + index=0, containing_type=None, fields=[]), + ], + serialized_start=85, + serialized_end=220, +) + +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['boolean_value']) +_VALUE.fields_by_name['boolean_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['int64_value']) +_VALUE.fields_by_name['int64_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['float_value']) +_VALUE.fields_by_name['float_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['double_value']) +_VALUE.fields_by_name['double_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['string_value']) +_VALUE.fields_by_name['string_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +DESCRIPTOR.message_types_by_name['Value'] = _VALUE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), dict( + DESCRIPTOR = _VALUE, + __module__ = 'google.ads.googleads_v0.proto.common.value_pb2' + , + __doc__ = """A generic data container. + + + Attributes: + value: + A value. + boolean_value: + A boolean. + int64_value: + An int64. + float_value: + A float. + double_value: + A double. + string_value: + A string. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.common.Value) + )) +_sym_db.RegisterMessage(Value) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.commonB\nValueProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/common;common\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Common\312\002\036Google\\Ads\\GoogleAds\\V0\\Common')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/common/value_pb2_grpc.py b/google/ads/google_ads/v0/proto/common/value_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/common/value_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/enums/__init__.py b/google/ads/google_ads/v0/proto/enums/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/proto/enums/ad_group_ad_status_pb2.py b/google/ads/google_ads/v0/proto/enums/ad_group_ad_status_pb2.py new file mode 100644 index 000000000..6ddb8186f --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/ad_group_ad_status_pb2.py @@ -0,0 +1,103 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/enums/ad_group_ad_status.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/enums/ad_group_ad_status.proto', + package='google.ads.googleads.v0.enums', + syntax='proto3', + serialized_pb=_b('\ngoogle/ads/googleads_v0/proto/enums/quality_score_bucket.proto\x12\x1dgoogle.ads.googleads.v0.enums\"\x7f\n\x16QualityScoreBucketEnum\"e\n\x12QualityScoreBucket\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rBELOW_AVERAGE\x10\x02\x12\x0b\n\x07\x41VERAGE\x10\x03\x12\x11\n\rABOVE_AVERAGE\x10\x04\x42\xc8\x01\n!com.google.ads.googleads.v0.enumsB\x17QualityScoreBucketProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V0.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V0\\Enumsb\x06proto3') +) + + + +_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET = _descriptor.EnumDescriptor( + name='QualityScoreBucket', + full_name='google.ads.googleads.v0.enums.QualityScoreBucketEnum.QualityScoreBucket', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BELOW_AVERAGE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AVERAGE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ABOVE_AVERAGE', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=123, + serialized_end=224, +) +_sym_db.RegisterEnumDescriptor(_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET) + + +_QUALITYSCOREBUCKETENUM = _descriptor.Descriptor( + name='QualityScoreBucketEnum', + full_name='google.ads.googleads.v0.enums.QualityScoreBucketEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=97, + serialized_end=224, +) + +_QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET.containing_type = _QUALITYSCOREBUCKETENUM +DESCRIPTOR.message_types_by_name['QualityScoreBucketEnum'] = _QUALITYSCOREBUCKETENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QualityScoreBucketEnum = _reflection.GeneratedProtocolMessageType('QualityScoreBucketEnum', (_message.Message,), dict( + DESCRIPTOR = _QUALITYSCOREBUCKETENUM, + __module__ = 'google.ads.googleads_v0.proto.enums.quality_score_bucket_pb2' + , + __doc__ = """The relative performance compared to other advertisers. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.enums.QualityScoreBucketEnum) + )) +_sym_db.RegisterMessage(QualityScoreBucketEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n!com.google.ads.googleads.v0.enumsB\027QualityScoreBucketProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V0.Enums\312\002\035Google\\Ads\\GoogleAds\\V0\\Enums')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/enums/quality_score_bucket_pb2_grpc.py b/google/ads/google_ads/v0/proto/enums/quality_score_bucket_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/quality_score_bucket_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2.py b/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2.py new file mode 100644 index 000000000..461ea4a01 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/enums/recommendation_type.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/enums/recommendation_type.proto', + package='google.ads.googleads.v0.enums', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/enums/recommendation_type.proto\x12\x1dgoogle.ads.googleads.v0.enums\"\x92\x01\n\x16RecommendationTypeEnum\"x\n\x12RecommendationType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x13\n\x0f\x43\x41MPAIGN_BUDGET\x10\x02\x12\x0b\n\x07KEYWORD\x10\x03\x12\x0b\n\x07TEXT_AD\x10\x04\x12\x15\n\x11TARGET_CPA_OPT_IN\x10\x05\x42\xc8\x01\n!com.google.ads.googleads.v0.enumsB\x17RecommendationTypeProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V0.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V0\\Enumsb\x06proto3') +) + + + +_RECOMMENDATIONTYPEENUM_RECOMMENDATIONTYPE = _descriptor.EnumDescriptor( + name='RecommendationType', + full_name='google.ads.googleads.v0.enums.RecommendationTypeEnum.RecommendationType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYWORD', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TEXT_AD', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TARGET_CPA_OPT_IN', index=5, number=5, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=123, + serialized_end=243, +) +_sym_db.RegisterEnumDescriptor(_RECOMMENDATIONTYPEENUM_RECOMMENDATIONTYPE) + + +_RECOMMENDATIONTYPEENUM = _descriptor.Descriptor( + name='RecommendationTypeEnum', + full_name='google.ads.googleads.v0.enums.RecommendationTypeEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RECOMMENDATIONTYPEENUM_RECOMMENDATIONTYPE, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=97, + serialized_end=243, +) + +_RECOMMENDATIONTYPEENUM_RECOMMENDATIONTYPE.containing_type = _RECOMMENDATIONTYPEENUM +DESCRIPTOR.message_types_by_name['RecommendationTypeEnum'] = _RECOMMENDATIONTYPEENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RecommendationTypeEnum = _reflection.GeneratedProtocolMessageType('RecommendationTypeEnum', (_message.Message,), dict( + DESCRIPTOR = _RECOMMENDATIONTYPEENUM, + __module__ = 'google.ads.googleads_v0.proto.enums.recommendation_type_pb2' + , + __doc__ = """Container for enum describing types of recommendations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.enums.RecommendationTypeEnum) + )) +_sym_db.RegisterMessage(RecommendationTypeEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n!com.google.ads.googleads.v0.enumsB\027RecommendationTypeProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V0.Enums\312\002\035Google\\Ads\\GoogleAds\\V0\\Enums')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2_grpc.py b/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/recommendation_type_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/enums/slot_pb2.py b/google/ads/google_ads/v0/proto/enums/slot_pb2.py new file mode 100644 index 000000000..c35b746b5 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/slot_pb2.py @@ -0,0 +1,115 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/enums/slot.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/enums/slot.proto', + package='google.ads.googleads.v0.enums', + syntax='proto3', + serialized_pb=_b('\n.google/ads/googleads_v0/proto/enums/slot.proto\x12\x1dgoogle.ads.googleads.v0.enums\"\xa3\x01\n\x08SlotEnum\"\x96\x01\n\x04Slot\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bSEARCH_SIDE\x10\x02\x12\x0e\n\nSEARCH_TOP\x10\x03\x12\x10\n\x0cSEARCH_OTHER\x10\x04\x12\x0b\n\x07\x43ONTENT\x10\x05\x12\x16\n\x12SEARCH_PARTNER_TOP\x10\x06\x12\x18\n\x14SEARCH_PARTNER_OTHER\x10\x07\x42\xba\x01\n!com.google.ads.googleads.v0.enumsB\tSlotProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V0.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V0\\Enumsb\x06proto3') +) + + + +_SLOTENUM_SLOT = _descriptor.EnumDescriptor( + name='Slot', + full_name='google.ads.googleads.v0.enums.SlotEnum.Slot', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SEARCH_SIDE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SEARCH_TOP', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SEARCH_OTHER', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONTENT', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SEARCH_PARTNER_TOP', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SEARCH_PARTNER_OTHER', index=7, number=7, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=95, + serialized_end=245, +) +_sym_db.RegisterEnumDescriptor(_SLOTENUM_SLOT) + + +_SLOTENUM = _descriptor.Descriptor( + name='SlotEnum', + full_name='google.ads.googleads.v0.enums.SlotEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SLOTENUM_SLOT, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=82, + serialized_end=245, +) + +_SLOTENUM_SLOT.containing_type = _SLOTENUM +DESCRIPTOR.message_types_by_name['SlotEnum'] = _SLOTENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SlotEnum = _reflection.GeneratedProtocolMessageType('SlotEnum', (_message.Message,), dict( + DESCRIPTOR = _SLOTENUM, + __module__ = 'google.ads.googleads_v0.proto.enums.slot_pb2' + , + __doc__ = """Container for enumeration of possible positions of the Ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.enums.SlotEnum) + )) +_sym_db.RegisterMessage(SlotEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n!com.google.ads.googleads.v0.enumsB\tSlotProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V0.Enums\312\002\035Google\\Ads\\GoogleAds\\V0\\Enums')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/enums/slot_pb2_grpc.py b/google/ads/google_ads/v0/proto/enums/slot_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/slot_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2.py b/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2.py new file mode 100644 index 000000000..9d2c1d009 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/enums/target_cpa_opt_in_recommendation_goal.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/enums/target_cpa_opt_in_recommendation_goal.proto', + package='google.ads.googleads.v0.enums', + syntax='proto3', + serialized_pb=_b('\nOgoogle/ads/googleads_v0/proto/enums/target_cpa_opt_in_recommendation_goal.proto\x12\x1dgoogle.ads.googleads.v0.enums\"\xad\x01\n$TargetCpaOptInRecommendationGoalEnum\"\x84\x01\n TargetCpaOptInRecommendationGoal\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\r\n\tSAME_COST\x10\x02\x12\x14\n\x10SAME_CONVERSIONS\x10\x03\x12\x0c\n\x08SAME_CPA\x10\x04\x12\x0f\n\x0b\x43LOSEST_CPA\x10\x05\x42\xd6\x01\n!com.google.ads.googleads.v0.enumsB%TargetCpaOptInRecommendationGoalProtoP\x01ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\xa2\x02\x03GAA\xaa\x02\x1dGoogle.Ads.GoogleAds.V0.Enums\xca\x02\x1dGoogle\\Ads\\GoogleAds\\V0\\Enumsb\x06proto3') +) + + + +_TARGETCPAOPTINRECOMMENDATIONGOALENUM_TARGETCPAOPTINRECOMMENDATIONGOAL = _descriptor.EnumDescriptor( + name='TargetCpaOptInRecommendationGoal', + full_name='google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SAME_COST', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SAME_CONVERSIONS', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SAME_CPA', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLOSEST_CPA', index=5, number=5, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=156, + serialized_end=288, +) +_sym_db.RegisterEnumDescriptor(_TARGETCPAOPTINRECOMMENDATIONGOALENUM_TARGETCPAOPTINRECOMMENDATIONGOAL) + + +_TARGETCPAOPTINRECOMMENDATIONGOALENUM = _descriptor.Descriptor( + name='TargetCpaOptInRecommendationGoalEnum', + full_name='google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TARGETCPAOPTINRECOMMENDATIONGOALENUM_TARGETCPAOPTINRECOMMENDATIONGOAL, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=115, + serialized_end=288, +) + +_TARGETCPAOPTINRECOMMENDATIONGOALENUM_TARGETCPAOPTINRECOMMENDATIONGOAL.containing_type = _TARGETCPAOPTINRECOMMENDATIONGOALENUM +DESCRIPTOR.message_types_by_name['TargetCpaOptInRecommendationGoalEnum'] = _TARGETCPAOPTINRECOMMENDATIONGOALENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +TargetCpaOptInRecommendationGoalEnum = _reflection.GeneratedProtocolMessageType('TargetCpaOptInRecommendationGoalEnum', (_message.Message,), dict( + DESCRIPTOR = _TARGETCPAOPTINRECOMMENDATIONGOALENUM, + __module__ = 'google.ads.googleads_v0.proto.enums.target_cpa_opt_in_recommendation_goal_pb2' + , + __doc__ = """Container for enum describing goals for TargetCpaOptIn recommendation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum) + )) +_sym_db.RegisterMessage(TargetCpaOptInRecommendationGoalEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n!com.google.ads.googleads.v0.enumsB%TargetCpaOptInRecommendationGoalProtoP\001ZBgoogle.golang.org/genproto/googleapis/ads/googleads/v0/enums;enums\242\002\003GAA\252\002\035Google.Ads.GoogleAds.V0.Enums\312\002\035Google\\Ads\\GoogleAds\\V0\\Enums')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2_grpc.py b/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/enums/target_cpa_opt_in_recommendation_goal_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/__init__.py b/google/ads/google_ads/v0/proto/errors/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2.py b/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2.py new file mode 100644 index 000000000..4f756e777 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2.py @@ -0,0 +1,111 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/ad_customizer_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/ad_customizer_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/errors/ad_customizer_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xe8\x01\n\x15\x41\x64\x43ustomizerErrorEnum\"\xce\x01\n\x11\x41\x64\x43ustomizerError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43OUNTDOWN_INVALID_DATE_FORMAT\x10\x02\x12\x1a\n\x16\x43OUNTDOWN_DATE_IN_PAST\x10\x03\x12\x1c\n\x18\x43OUNTDOWN_INVALID_LOCALE\x10\x04\x12\'\n#COUNTDOWN_INVALID_START_DAYS_BEFORE\x10\x05\x12\x15\n\x11UNKNOWN_USER_LIST\x10\x06\x42\xcc\x01\n\"com.google.ads.googleads.v0.errorsB\x16\x41\x64\x43ustomizerErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR = _descriptor.EnumDescriptor( + name='AdCustomizerError', + full_name='google.ads.googleads.v0.errors.AdCustomizerErrorEnum.AdCustomizerError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_DATE_FORMAT', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_DATE_IN_PAST', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_LOCALE', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='COUNTDOWN_INVALID_START_DAYS_BEFORE', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_USER_LIST', index=6, number=6, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=125, + serialized_end=331, +) +_sym_db.RegisterEnumDescriptor(_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR) + + +_ADCUSTOMIZERERRORENUM = _descriptor.Descriptor( + name='AdCustomizerErrorEnum', + full_name='google.ads.googleads.v0.errors.AdCustomizerErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=99, + serialized_end=331, +) + +_ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR.containing_type = _ADCUSTOMIZERERRORENUM +DESCRIPTOR.message_types_by_name['AdCustomizerErrorEnum'] = _ADCUSTOMIZERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdCustomizerErrorEnum = _reflection.GeneratedProtocolMessageType('AdCustomizerErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _ADCUSTOMIZERERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.ad_customizer_error_pb2' + , + __doc__ = """Container for enum describing possible ad customizer errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AdCustomizerErrorEnum) + )) +_sym_db.RegisterMessage(AdCustomizerErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\026AdCustomizerErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_customizer_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/ad_error_pb2.py b/google/ads/google_ads/v0/proto/errors/ad_error_pb2.py new file mode 100644 index 000000000..a7bf5be3e --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_error_pb2.py @@ -0,0 +1,607 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/ad_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/ad_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n3google/ads/googleads_v0/proto/errors/ad_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xca \n\x0b\x41\x64\x45rrorEnum\"\xba \n\x07\x41\x64\x45rror\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12,\n(AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE\x10\x02\x12\x1a\n\x16\x41PPROXIMATELY_TOO_LONG\x10\x03\x12\x1b\n\x17\x41PPROXIMATELY_TOO_SHORT\x10\x04\x12\x0f\n\x0b\x42\x41\x44_SNIPPET\x10\x05\x12\x14\n\x10\x43\x41NNOT_MODIFY_AD\x10\x06\x12\'\n#CANNOT_SET_BUSINESS_NAME_IF_URL_SET\x10\x07\x12\x14\n\x10\x43\x41NNOT_SET_FIELD\x10\x08\x12*\n&CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET\x10\t\x12/\n+CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING\x10\n\x12)\n%CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE\x10\x0b\x12\x37\n3CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING\x10\x0c\x12\x12\n\x0e\x43\x41NNOT_SET_URL\x10\r\x12!\n\x1d\x43\x41NNOT_SET_WITHOUT_FINAL_URLS\x10\x0e\x12\x1e\n\x1a\x43\x41NNOT_SET_WITH_FINAL_URLS\x10\x0f\x12)\n%CANNOT_SET_WITH_TRACKING_URL_TEMPLATE\x10\x10\x12\x1c\n\x18\x43\x41NNOT_SET_WITH_URL_DATA\x10\x11\x12\'\n#CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR\x10\x12\x12#\n\x1f\x43USTOMER_NOT_APPROVED_MOBILEADS\x10\x13\x12(\n$CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS\x10\x14\x12\x31\n-CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS\x10\x15\x12\x19\n\x15\x43USTOMER_NOT_ELIGIBLE\x10\x16\x12\x31\n-CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL\x10\x17\x12\x1e\n\x1a\x44IMENSION_ALREADY_IN_UNION\x10\x18\x12\x19\n\x15\x44IMENSION_MUST_BE_SET\x10\x19\x12\x1a\n\x16\x44IMENSION_NOT_IN_UNION\x10\x1a\x12#\n\x1f\x44ISPLAY_URL_CANNOT_BE_SPECIFIED\x10\x1b\x12 \n\x1c\x44OMESTIC_PHONE_NUMBER_FORMAT\x10\x1c\x12\x1a\n\x16\x45MERGENCY_PHONE_NUMBER\x10\x1d\x12\x0f\n\x0b\x45MPTY_FIELD\x10\x1e\x12\x30\n,FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID\x10\x1f\x12(\n$FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH\x10 \x12!\n\x1dILLEGAL_AD_CUSTOMIZER_TAG_USE\x10!\x12\x13\n\x0fILLEGAL_TAG_USE\x10\"\x12\x1b\n\x17INCONSISTENT_DIMENSIONS\x10#\x12)\n%INCONSISTENT_STATUS_IN_TEMPLATE_UNION\x10$\x12\x14\n\x10INCORRECT_LENGTH\x10%\x12\x1a\n\x16INELIGIBLE_FOR_UPGRADE\x10&\x12&\n\"INVALID_AD_ADDRESS_CAMPAIGN_TARGET\x10\'\x12\x13\n\x0fINVALID_AD_TYPE\x10(\x12\'\n#INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE\x10)\x12&\n\"INVALID_ATTRIBUTES_FOR_MOBILE_TEXT\x10*\x12\x1f\n\x1bINVALID_CALL_TO_ACTION_TEXT\x10+\x12\x1d\n\x19INVALID_CHARACTER_FOR_URL\x10,\x12\x18\n\x14INVALID_COUNTRY_CODE\x10-\x12\x17\n\x13INVALID_DSA_URL_TAG\x10.\x12*\n&INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG\x10/\x12\x11\n\rINVALID_INPUT\x10\x30\x12\x1b\n\x17INVALID_MARKUP_LANGUAGE\x10\x31\x12\x1a\n\x16INVALID_MOBILE_CARRIER\x10\x32\x12!\n\x1dINVALID_MOBILE_CARRIER_TARGET\x10\x33\x12\x1e\n\x1aINVALID_NUMBER_OF_ELEMENTS\x10\x34\x12\x1f\n\x1bINVALID_PHONE_NUMBER_FORMAT\x10\x35\x12\x31\n-INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID\x10\x36\x12\x19\n\x15INVALID_TEMPLATE_DATA\x10\x37\x12\'\n#INVALID_TEMPLATE_ELEMENT_FIELD_TYPE\x10\x38\x12\x17\n\x13INVALID_TEMPLATE_ID\x10\x39\x12\x11\n\rLINE_TOO_WIDE\x10:\x12!\n\x1dMISSING_AD_CUSTOMIZER_MAPPING\x10;\x12\x1d\n\x19MISSING_ADDRESS_COMPONENT\x10<\x12\x1e\n\x1aMISSING_ADVERTISEMENT_NAME\x10=\x12\x19\n\x15MISSING_BUSINESS_NAME\x10>\x12\x18\n\x14MISSING_DESCRIPTION1\x10?\x12\x18\n\x14MISSING_DESCRIPTION2\x10@\x12\x1f\n\x1bMISSING_DESTINATION_URL_TAG\x10\x41\x12 \n\x1cMISSING_LANDING_PAGE_URL_TAG\x10\x42\x12\x15\n\x11MISSING_DIMENSION\x10\x43\x12\x17\n\x13MISSING_DISPLAY_URL\x10\x44\x12\x14\n\x10MISSING_HEADLINE\x10\x45\x12\x12\n\x0eMISSING_HEIGHT\x10\x46\x12\x11\n\rMISSING_IMAGE\x10G\x12-\n)MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS\x10H\x12\x1c\n\x18MISSING_MARKUP_LANGUAGES\x10I\x12\x1a\n\x16MISSING_MOBILE_CARRIER\x10J\x12\x11\n\rMISSING_PHONE\x10K\x12$\n MISSING_REQUIRED_TEMPLATE_FIELDS\x10L\x12 \n\x1cMISSING_TEMPLATE_FIELD_VALUE\x10M\x12\x10\n\x0cMISSING_TEXT\x10N\x12\x17\n\x13MISSING_VISIBLE_URL\x10O\x12\x11\n\rMISSING_WIDTH\x10P\x12\'\n#MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED\x10Q\x12$\n MUST_USE_TEMP_AD_UNION_ID_ON_ADD\x10R\x12\x0c\n\x08TOO_LONG\x10S\x12\r\n\tTOO_SHORT\x10T\x12\"\n\x1eUNION_DIMENSIONS_CANNOT_CHANGE\x10U\x12\x1d\n\x19UNKNOWN_ADDRESS_COMPONENT\x10V\x12\x16\n\x12UNKNOWN_FIELD_NAME\x10W\x12\x17\n\x13UNKNOWN_UNIQUE_NAME\x10X\x12\x1a\n\x16UNSUPPORTED_DIMENSIONS\x10Y\x12\x16\n\x12URL_INVALID_SCHEME\x10Z\x12 \n\x1cURL_INVALID_TOP_LEVEL_DOMAIN\x10[\x12\x11\n\rURL_MALFORMED\x10\\\x12\x0f\n\x0bURL_NO_HOST\x10]\x12\x16\n\x12URL_NOT_EQUIVALENT\x10^\x12\x1a\n\x16URL_HOST_NAME_TOO_LONG\x10_\x12\x11\n\rURL_NO_SCHEME\x10`\x12\x1b\n\x17URL_NO_TOP_LEVEL_DOMAIN\x10\x61\x12\x18\n\x14URL_PATH_NOT_ALLOWED\x10\x62\x12\x18\n\x14URL_PORT_NOT_ALLOWED\x10\x63\x12\x19\n\x15URL_QUERY_NOT_ALLOWED\x10\x64\x12\x1d\n\x19URL_SCHEME_BEFORE_DSA_TAG\x10\x65\x12\x34\n0URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG\x10\x66\x12)\n%USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE\x10g\x12$\n INCONSISTENT_EXPANDABLE_SETTINGS\x10h\x12\x12\n\x0eINVALID_FORMAT\x10i\x12\x16\n\x12INVALID_FIELD_TEXT\x10j\x12\x17\n\x13\x45LEMENT_NOT_PRESENT\x10k\x12\x0f\n\x0bIMAGE_ERROR\x10l\x12\x16\n\x12VALUE_NOT_IN_RANGE\x10m\x12\x15\n\x11\x46IELD_NOT_PRESENT\x10n\x12\x18\n\x14\x41\x44\x44RESS_NOT_COMPLETE\x10o\x12\x13\n\x0f\x41\x44\x44RESS_INVALID\x10p\x12\x19\n\x15VIDEO_RETRIEVAL_ERROR\x10q\x12\x0f\n\x0b\x41UDIO_ERROR\x10r\x12\x1f\n\x1bINVALID_YOUTUBE_DISPLAY_URL\x10s\x12\x1b\n\x17TOO_MANY_PRODUCT_IMAGES\x10t\x12\x1b\n\x17TOO_MANY_PRODUCT_VIDEOS\x10u\x12.\n*INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE\x10v\x12*\n&CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY\x10w\x12-\n)CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED\x10x\x12\x1a\n\x16\x44ISALLOWED_NUMBER_TYPE\x10y\x12*\n&PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY\x10z\x12<\n8PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY\x10{\x12#\n\x1fPREMIUM_RATE_NUMBER_NOT_ALLOWED\x10|\x12#\n\x1fVANITY_PHONE_NUMBER_NOT_ALLOWED\x10}\x12#\n\x1fINVALID_CALL_CONVERSION_TYPE_ID\x10~\x12=\n9CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID\x10\x7f\x12#\n\x1e\x43\x41NNOT_SET_PATH2_WITHOUT_PATH1\x10\x80\x01\x12\x33\n.MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME\x10\x81\x01\x12\'\n\"INCOMPATIBLE_WITH_RESTRICTION_TYPE\x10\x82\x01\x42\xc2\x01\n\"com.google.ads.googleads.v0.errorsB\x0c\x41\x64\x45rrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_ADERRORENUM_ADERROR = _descriptor.EnumDescriptor( + name='AdError', + full_name='google.ads.googleads.v0.errors.AdErrorEnum.AdError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='APPROXIMATELY_TOO_LONG', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='APPROXIMATELY_TOO_SHORT', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_SNIPPET', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_AD', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BUSINESS_NAME_IF_URL_SET', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_URL', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITHOUT_FINAL_URLS', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_FINAL_URLS', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_TRACKING_URL_TEMPLATE', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_WITH_URL_DATA', index=17, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR', index=18, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_MOBILEADS', index=19, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS', index=20, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS', index=21, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ELIGIBLE', index=22, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL', index=23, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DIMENSION_ALREADY_IN_UNION', index=24, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DIMENSION_MUST_BE_SET', index=25, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DIMENSION_NOT_IN_UNION', index=26, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DISPLAY_URL_CANNOT_BE_SPECIFIED', index=27, number=27, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DOMESTIC_PHONE_NUMBER_FORMAT', index=28, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EMERGENCY_PHONE_NUMBER', index=29, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EMPTY_FIELD', index=30, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID', index=31, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH', index=32, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_AD_CUSTOMIZER_TAG_USE', index=33, number=33, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_TAG_USE', index=34, number=34, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_DIMENSIONS', index=35, number=35, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_STATUS_IN_TEMPLATE_UNION', index=36, number=36, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCORRECT_LENGTH', index=37, number=37, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INELIGIBLE_FOR_UPGRADE', index=38, number=38, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_ADDRESS_CAMPAIGN_TARGET', index=39, number=39, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_AD_TYPE', index=40, number=40, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE', index=41, number=41, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTES_FOR_MOBILE_TEXT', index=42, number=42, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_TO_ACTION_TEXT', index=43, number=43, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTER_FOR_URL', index=44, number=44, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=45, number=45, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_DSA_URL_TAG', index=46, number=46, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG', index=47, number=47, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=48, number=48, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MARKUP_LANGUAGE', index=49, number=49, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_CARRIER', index=50, number=50, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_CARRIER_TARGET', index=51, number=51, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_NUMBER_OF_ELEMENTS', index=52, number=52, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PHONE_NUMBER_FORMAT', index=53, number=53, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID', index=54, number=54, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_DATA', index=55, number=55, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_ELEMENT_FIELD_TYPE', index=56, number=56, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TEMPLATE_ID', index=57, number=57, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LINE_TOO_WIDE', index=58, number=58, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_AD_CUSTOMIZER_MAPPING', index=59, number=59, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_ADDRESS_COMPONENT', index=60, number=60, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_ADVERTISEMENT_NAME', index=61, number=61, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_BUSINESS_NAME', index=62, number=62, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DESCRIPTION1', index=63, number=63, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DESCRIPTION2', index=64, number=64, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DESTINATION_URL_TAG', index=65, number=65, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_LANDING_PAGE_URL_TAG', index=66, number=66, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DIMENSION', index=67, number=67, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DISPLAY_URL', index=68, number=68, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_HEADLINE', index=69, number=69, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_HEIGHT', index=70, number=70, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_IMAGE', index=71, number=71, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS', index=72, number=72, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_MARKUP_LANGUAGES', index=73, number=73, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_MOBILE_CARRIER', index=74, number=74, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PHONE', index=75, number=75, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_REQUIRED_TEMPLATE_FIELDS', index=76, number=76, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_TEMPLATE_FIELD_VALUE', index=77, number=77, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_TEXT', index=78, number=78, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_VISIBLE_URL', index=79, number=79, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_WIDTH', index=80, number=80, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED', index=81, number=81, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MUST_USE_TEMP_AD_UNION_ID_ON_ADD', index=82, number=82, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=83, number=83, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_SHORT', index=84, number=84, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNION_DIMENSIONS_CANNOT_CHANGE', index=85, number=85, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_ADDRESS_COMPONENT', index=86, number=86, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_FIELD_NAME', index=87, number=87, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN_UNIQUE_NAME', index=88, number=88, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_DIMENSIONS', index=89, number=89, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_INVALID_SCHEME', index=90, number=90, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_INVALID_TOP_LEVEL_DOMAIN', index=91, number=91, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_MALFORMED', index=92, number=92, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_NO_HOST', index=93, number=93, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_NOT_EQUIVALENT', index=94, number=94, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_HOST_NAME_TOO_LONG', index=95, number=95, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_NO_SCHEME', index=96, number=96, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_NO_TOP_LEVEL_DOMAIN', index=97, number=97, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_PATH_NOT_ALLOWED', index=98, number=98, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_PORT_NOT_ALLOWED', index=99, number=99, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_QUERY_NOT_ALLOWED', index=100, number=100, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_SCHEME_BEFORE_DSA_TAG', index=101, number=101, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG', index=102, number=102, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE', index=103, number=103, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCONSISTENT_EXPANDABLE_SETTINGS', index=104, number=104, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT', index=105, number=105, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_TEXT', index=106, number=106, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ELEMENT_NOT_PRESENT', index=107, number=107, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMAGE_ERROR', index=108, number=108, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VALUE_NOT_IN_RANGE', index=109, number=109, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_PRESENT', index=110, number=110, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADDRESS_NOT_COMPLETE', index=111, number=111, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADDRESS_INVALID', index=112, number=112, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VIDEO_RETRIEVAL_ERROR', index=113, number=113, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AUDIO_ERROR', index=114, number=114, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_DISPLAY_URL', index=115, number=115, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_PRODUCT_IMAGES', index=116, number=116, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_PRODUCT_VIDEOS', index=117, number=117, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE', index=118, number=118, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY', index=119, number=119, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED', index=120, number=120, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DISALLOWED_NUMBER_TYPE', index=121, number=121, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY', index=122, number=122, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY', index=123, number=123, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PREMIUM_RATE_NUMBER_NOT_ALLOWED', index=124, number=124, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VANITY_PHONE_NUMBER_NOT_ALLOWED', index=125, number=125, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CALL_CONVERSION_TYPE_ID', index=126, number=126, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID', index=127, number=127, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_PATH2_WITHOUT_PATH1', index=128, number=128, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME', index=129, number=129, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_WITH_RESTRICTION_TYPE', index=130, number=130, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=104, + serialized_end=4258, +) +_sym_db.RegisterEnumDescriptor(_ADERRORENUM_ADERROR) + + +_ADERRORENUM = _descriptor.Descriptor( + name='AdErrorEnum', + full_name='google.ads.googleads.v0.errors.AdErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADERRORENUM_ADERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=88, + serialized_end=4258, +) + +_ADERRORENUM_ADERROR.containing_type = _ADERRORENUM +DESCRIPTOR.message_types_by_name['AdErrorEnum'] = _ADERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdErrorEnum = _reflection.GeneratedProtocolMessageType('AdErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _ADERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.ad_error_pb2' + , + __doc__ = """Container for enum describing possible ad errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AdErrorEnum) + )) +_sym_db.RegisterMessage(AdErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\014AdErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/ad_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/ad_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/ad_group_ad_error_pb2.py b/google/ads/google_ads/v0/proto/errors/ad_group_ad_error_pb2.py new file mode 100644 index 000000000..1e5705065 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_group_ad_error_pb2.py @@ -0,0 +1,123 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/ad_group_ad_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/ad_group_ad_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nCANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING\x10\x0e\x42\xc7\x01\n\"com.google.ads.googleads.v0.errorsB\x11\x41\x64GroupErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_ADGROUPERRORENUM_ADGROUPERROR = _descriptor.EnumDescriptor( + name='AdGroupError', + full_name='google.ads.googleads.v0.errors.AdGroupErrorEnum.AdGroupError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ADGROUP_NAME', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_ADGROUP_NAME', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADVERTISER_NOT_ON_CONTENT_NETWORK', index=4, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_TOO_BIG', index=5, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH', index=6, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_ADGROUP_NAME', index=7, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADGROUP_LABEL_DOES_NOT_EXIST', index=8, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADGROUP_LABEL_ALREADY_EXISTS', index=9, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CONTENT_BID_CRITERION_TYPE_GROUP', index=10, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE', index=11, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY', index=12, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING', index=13, number=14, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=115, + serialized_end=638, +) +_sym_db.RegisterEnumDescriptor(_ADGROUPERRORENUM_ADGROUPERROR) + + +_ADGROUPERRORENUM = _descriptor.Descriptor( + name='AdGroupErrorEnum', + full_name='google.ads.googleads.v0.errors.AdGroupErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADGROUPERRORENUM_ADGROUPERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=94, + serialized_end=638, +) + +_ADGROUPERRORENUM_ADGROUPERROR.containing_type = _ADGROUPERRORENUM +DESCRIPTOR.message_types_by_name['AdGroupErrorEnum'] = _ADGROUPERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupErrorEnum = _reflection.GeneratedProtocolMessageType('AdGroupErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.ad_group_error_pb2' + , + __doc__ = """Container for enum describing possible ad group errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AdGroupErrorEnum) + )) +_sym_db.RegisterMessage(AdGroupErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\021AdGroupErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/ad_group_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/ad_group_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_group_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2.py b/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2.py new file mode 100644 index 000000000..3a4d47e98 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2.py @@ -0,0 +1,103 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/ad_sharing_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/ad_sharing_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n;google/ads/googleads_v0/proto/errors/ad_sharing_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xa9\x01\n\x12\x41\x64SharingErrorEnum\"\x92\x01\n\x0e\x41\x64SharingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1c\x41\x44_GROUP_ALREADY_CONTAINS_AD\x10\x02\x12\"\n\x1eINCOMPATIBLE_AD_UNDER_AD_GROUP\x10\x03\x12\x1c\n\x18\x43\x41NNOT_SHARE_INACTIVE_AD\x10\x04\x42\xc9\x01\n\"com.google.ads.googleads.v0.errorsB\x13\x41\x64SharingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_ADSHARINGERRORENUM_ADSHARINGERROR = _descriptor.EnumDescriptor( + name='AdSharingError', + full_name='google.ads.googleads.v0.errors.AdSharingErrorEnum.AdSharingError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_GROUP_ALREADY_CONTAINS_AD', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INCOMPATIBLE_AD_UNDER_AD_GROUP', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SHARE_INACTIVE_AD', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=119, + serialized_end=265, +) +_sym_db.RegisterEnumDescriptor(_ADSHARINGERRORENUM_ADSHARINGERROR) + + +_ADSHARINGERRORENUM = _descriptor.Descriptor( + name='AdSharingErrorEnum', + full_name='google.ads.googleads.v0.errors.AdSharingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADSHARINGERRORENUM_ADSHARINGERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=96, + serialized_end=265, +) + +_ADSHARINGERRORENUM_ADSHARINGERROR.containing_type = _ADSHARINGERRORENUM +DESCRIPTOR.message_types_by_name['AdSharingErrorEnum'] = _ADSHARINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdSharingErrorEnum = _reflection.GeneratedProtocolMessageType('AdSharingErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _ADSHARINGERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.ad_sharing_error_pb2' + , + __doc__ = """Container for enum describing possible ad sharing errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AdSharingErrorEnum) + )) +_sym_db.RegisterMessage(AdSharingErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\023AdSharingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/ad_sharing_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/adx_error_pb2.py b/google/ads/google_ads/v0/proto/errors/adx_error_pb2.py new file mode 100644 index 000000000..d0c05bc88 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/adx_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/adx_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/adx_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n4google/ads/googleads_v0/proto/errors/adx_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"Q\n\x0c\x41\x64xErrorEnum\"A\n\x08\x41\x64xError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13UNSUPPORTED_FEATURE\x10\x02\x42\xc3\x01\n\"com.google.ads.googleads.v0.errorsB\rAdxErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_ADXERRORENUM_ADXERROR = _descriptor.EnumDescriptor( + name='AdxError', + full_name='google.ads.googleads.v0.errors.AdxErrorEnum.AdxError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_FEATURE', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=104, + serialized_end=169, +) +_sym_db.RegisterEnumDescriptor(_ADXERRORENUM_ADXERROR) + + +_ADXERRORENUM = _descriptor.Descriptor( + name='AdxErrorEnum', + full_name='google.ads.googleads.v0.errors.AdxErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ADXERRORENUM_ADXERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=88, + serialized_end=169, +) + +_ADXERRORENUM_ADXERROR.containing_type = _ADXERRORENUM +DESCRIPTOR.message_types_by_name['AdxErrorEnum'] = _ADXERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdxErrorEnum = _reflection.GeneratedProtocolMessageType('AdxErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _ADXERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.adx_error_pb2' + , + __doc__ = """Container for enum describing possible adx errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AdxErrorEnum) + )) +_sym_db.RegisterMessage(AdxErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\rAdxErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/adx_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/adx_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/adx_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/authentication_error_pb2.py b/google/ads/google_ads/v0/proto/errors/authentication_error_pb2.py new file mode 100644 index 000000000..a38169b79 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/authentication_error_pb2.py @@ -0,0 +1,159 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/authentication_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/authentication_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n?google/ads/googleads_v0/proto/errors/authentication_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xc0\x04\n\x17\x41uthenticationErrorEnum\"\xa4\x04\n\x13\x41uthenticationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14\x41UTHENTICATION_ERROR\x10\x02\x12\x1e\n\x1a\x43LIENT_CUSTOMER_ID_INVALID\x10\x05\x12\x16\n\x12\x43USTOMER_NOT_FOUND\x10\x08\x12\x1a\n\x16GOOGLE_ACCOUNT_DELETED\x10\t\x12!\n\x1dGOOGLE_ACCOUNT_COOKIE_INVALID\x10\n\x12)\n%FAILED_TO_AUTHENTICATE_GOOGLE_ACCOUNT\x10\x0b\x12-\n)GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH\x10\x0c\x12\x19\n\x15LOGIN_COOKIE_REQUIRED\x10\r\x12\x10\n\x0cNOT_ADS_USER\x10\x0e\x12\x17\n\x13OAUTH_TOKEN_INVALID\x10\x0f\x12\x17\n\x13OAUTH_TOKEN_EXPIRED\x10\x10\x12\x18\n\x14OAUTH_TOKEN_DISABLED\x10\x11\x12\x17\n\x13OAUTH_TOKEN_REVOKED\x10\x12\x12\x1e\n\x1aOAUTH_TOKEN_HEADER_INVALID\x10\x13\x12\x18\n\x14LOGIN_COOKIE_INVALID\x10\x14\x12#\n\x1f\x46\x41ILED_TO_RETRIEVE_LOGIN_COOKIE\x10\x15\x12\x13\n\x0fUSER_ID_INVALID\x10\x16\x42\xce\x01\n\"com.google.ads.googleads.v0.errorsB\x18\x41uthenticationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR = _descriptor.EnumDescriptor( + name='AuthenticationError', + full_name='google.ads.googleads.v0.errors.AuthenticationErrorEnum.AuthenticationError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AUTHENTICATION_ERROR', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLIENT_CUSTOMER_ID_INVALID', index=3, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOMER_NOT_FOUND', index=4, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_DELETED', index=5, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_COOKIE_INVALID', index=6, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED_TO_AUTHENTICATE_GOOGLE_ACCOUNT', index=7, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH', index=8, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOGIN_COOKIE_REQUIRED', index=9, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NOT_ADS_USER', index=10, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_INVALID', index=11, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_EXPIRED', index=12, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_DISABLED', index=13, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_REVOKED', index=14, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OAUTH_TOKEN_HEADER_INVALID', index=15, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOGIN_COOKIE_INVALID', index=16, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED_TO_RETRIEVE_LOGIN_COOKIE', index=17, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='USER_ID_INVALID', index=18, number=22, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=128, + serialized_end=676, +) +_sym_db.RegisterEnumDescriptor(_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR) + + +_AUTHENTICATIONERRORENUM = _descriptor.Descriptor( + name='AuthenticationErrorEnum', + full_name='google.ads.googleads.v0.errors.AuthenticationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=676, +) + +_AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR.containing_type = _AUTHENTICATIONERRORENUM +DESCRIPTOR.message_types_by_name['AuthenticationErrorEnum'] = _AUTHENTICATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AuthenticationErrorEnum = _reflection.GeneratedProtocolMessageType('AuthenticationErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _AUTHENTICATIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.authentication_error_pb2' + , + __doc__ = """Container for enum describing possible authentication errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AuthenticationErrorEnum) + )) +_sym_db.RegisterMessage(AuthenticationErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\030AuthenticationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/authentication_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/authentication_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/authentication_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/authorization_error_pb2.py b/google/ads/google_ads/v0/proto/errors/authorization_error_pb2.py new file mode 100644 index 000000000..43a96cc64 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/authorization_error_pb2.py @@ -0,0 +1,111 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/authorization_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/authorization_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/errors/authorization_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xdd\x01\n\x16\x41uthorizationErrorEnum\"\xc2\x01\n\x12\x41uthorizationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16USER_PERMISSION_DENIED\x10\x02\x12#\n\x1f\x44\x45VELOPER_TOKEN_NOT_WHITELISTED\x10\x03\x12\x1e\n\x1a\x44\x45VELOPER_TOKEN_PROHIBITED\x10\x04\x12\x14\n\x10PROJECT_DISABLED\x10\x05\x12\x17\n\x13\x41UTHORIZATION_ERROR\x10\x06\x42\xcd\x01\n\"com.google.ads.googleads.v0.errorsB\x17\x41uthorizationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR = _descriptor.EnumDescriptor( + name='AuthorizationError', + full_name='google.ads.googleads.v0.errors.AuthorizationErrorEnum.AuthorizationError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='USER_PERMISSION_DENIED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DEVELOPER_TOKEN_NOT_WHITELISTED', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DEVELOPER_TOKEN_PROHIBITED', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROJECT_DISABLED', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AUTHORIZATION_ERROR', index=6, number=6, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=126, + serialized_end=320, +) +_sym_db.RegisterEnumDescriptor(_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR) + + +_AUTHORIZATIONERRORENUM = _descriptor.Descriptor( + name='AuthorizationErrorEnum', + full_name='google.ads.googleads.v0.errors.AuthorizationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=99, + serialized_end=320, +) + +_AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR.containing_type = _AUTHORIZATIONERRORENUM +DESCRIPTOR.message_types_by_name['AuthorizationErrorEnum'] = _AUTHORIZATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AuthorizationErrorEnum = _reflection.GeneratedProtocolMessageType('AuthorizationErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _AUTHORIZATIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.authorization_error_pb2' + , + __doc__ = """Container for enum describing possible authorization errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.AuthorizationErrorEnum) + )) +_sym_db.RegisterMessage(AuthorizationErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\027AuthorizationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/authorization_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/authorization_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/authorization_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/bidding_error_pb2.py b/google/ads/google_ads/v0/proto/errors/bidding_error_pb2.py new file mode 100644 index 000000000..1a70de4b3 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/bidding_error_pb2.py @@ -0,0 +1,171 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/bidding_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/bidding_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n8google/ads/googleads_v0/proto/errors/bidding_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xb9\x07\n\x10\x42iddingErrorEnum\"\xa4\x07\n\x0c\x42iddingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12+\n\'BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED\x10\x02\x12.\n*CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN\x10\x07\x12+\n\'INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE\x10\n\x12!\n\x1dINVALID_BIDDING_STRATEGY_TYPE\x10\x0e\x12\x0f\n\x0bINVALID_BID\x10\x11\x12\x33\n/BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE\x10\x12\x12#\n\x1f\x43ONVERSION_TRACKING_NOT_ENABLED\x10\x13\x12\x1a\n\x16NOT_ENOUGH_CONVERSIONS\x10\x14\x12\x30\n,CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY\x10\x15\x12O\nKCANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY\x10\x17\x12\x33\n/BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE\x10\x18\x12\x31\n-PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER\x10\x19\x12\x32\n.PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA\x10\x1a\x12:\n6BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS\x10\x1b\x12;\n7BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS\x10\x1c\x12I\nEBIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION\x10\x1d\x12\x11\n\rBID_TOO_SMALL\x10\x1e\x12\x0f\n\x0b\x42ID_TOO_BIG\x10\x1f\x12\"\n\x1e\x42ID_TOO_MANY_FRACTIONAL_DIGITS\x10 \x12\x17\n\x13INVALID_DOMAIN_NAME\x10!B\xc7\x01\n\"com.google.ads.googleads.v0.errorsB\x11\x42iddingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_BIDDINGERRORENUM_BIDDINGERROR = _descriptor.EnumDescriptor( + name='BiddingError', + full_name='google.ads.googleads.v0.errors.BiddingErrorEnum.BiddingError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN', index=3, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE', index=4, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_BIDDING_STRATEGY_TYPE', index=5, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_BID', index=6, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE', index=7, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONVERSION_TRACKING_NOT_ENABLED', index=8, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NOT_ENOUGH_CONVERSIONS', index=9, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY', index=10, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY', index=11, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE', index=12, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER', index=13, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA', index=14, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS', index=15, number=27, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS', index=16, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION', index=17, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_TOO_SMALL', index=18, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_TOO_BIG', index=19, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_TOO_MANY_FRACTIONAL_DIGITS', index=20, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_DOMAIN_NAME', index=21, number=33, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=114, + serialized_end=1046, +) +_sym_db.RegisterEnumDescriptor(_BIDDINGERRORENUM_BIDDINGERROR) + + +_BIDDINGERRORENUM = _descriptor.Descriptor( + name='BiddingErrorEnum', + full_name='google.ads.googleads.v0.errors.BiddingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BIDDINGERRORENUM_BIDDINGERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=93, + serialized_end=1046, +) + +_BIDDINGERRORENUM_BIDDINGERROR.containing_type = _BIDDINGERRORENUM +DESCRIPTOR.message_types_by_name['BiddingErrorEnum'] = _BIDDINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BiddingErrorEnum = _reflection.GeneratedProtocolMessageType('BiddingErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _BIDDINGERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.bidding_error_pb2' + , + __doc__ = """Container for enum describing possible bidding errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.BiddingErrorEnum) + )) +_sym_db.RegisterMessage(BiddingErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\021BiddingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/bidding_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/bidding_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/bidding_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2.py b/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2.py new file mode 100644 index 000000000..20ae57c10 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/bidding_strategy_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/bidding_strategy_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nAgoogle/ads/googleads_v0/proto/errors/bidding_strategy_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xd9\x01\n\x18\x42iddingStrategyErrorEnum\"\xbc\x01\n\x14\x42iddingStrategyError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x02\x12\'\n#CANNOT_CHANGE_BIDDING_STRATEGY_TYPE\x10\x03\x12%\n!CANNOT_REMOVE_ASSOCIATED_STRATEGY\x10\x04\x12\"\n\x1e\x42IDDING_STRATEGY_NOT_SUPPORTED\x10\x05\x42\xcf\x01\n\"com.google.ads.googleads.v0.errorsB\x19\x42iddingStrategyErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR = _descriptor.EnumDescriptor( + name='BiddingStrategyError', + full_name='google.ads.googleads.v0.errors.BiddingStrategyErrorEnum.BiddingStrategyError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_CHANGE_BIDDING_STRATEGY_TYPE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_ASSOCIATED_STRATEGY', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BIDDING_STRATEGY_NOT_SUPPORTED', index=5, number=5, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=131, + serialized_end=319, +) +_sym_db.RegisterEnumDescriptor(_BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR) + + +_BIDDINGSTRATEGYERRORENUM = _descriptor.Descriptor( + name='BiddingStrategyErrorEnum', + full_name='google.ads.googleads.v0.errors.BiddingStrategyErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=102, + serialized_end=319, +) + +_BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR.containing_type = _BIDDINGSTRATEGYERRORENUM +DESCRIPTOR.message_types_by_name['BiddingStrategyErrorEnum'] = _BIDDINGSTRATEGYERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BiddingStrategyErrorEnum = _reflection.GeneratedProtocolMessageType('BiddingStrategyErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _BIDDINGSTRATEGYERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.bidding_strategy_error_pb2' + , + __doc__ = """Container for enum describing possible bidding strategy errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.BiddingStrategyErrorEnum) + )) +_sym_db.RegisterMessage(BiddingStrategyErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\031BiddingStrategyErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/bidding_strategy_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2.py b/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2.py new file mode 100644 index 000000000..9d6350488 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2.py @@ -0,0 +1,147 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/campaign_budget_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/campaign_budget_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n@google/ads/googleads_v0/proto/errors/campaign_budget_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xba\x05\n\x17\x43\x61mpaignBudgetErrorEnum\"\x9e\x05\n\x13\x43\x61mpaignBudgetError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17\x43\x41MPAIGN_BUDGET_REMOVED\x10\x02\x12\x1a\n\x16\x43\x41MPAIGN_BUDGET_IN_USE\x10\x03\x12(\n$CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE\x10\x04\x12<\n8CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET\x10\x06\x12\x36\n2CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED\x10\x07\x12\x43\n?CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME\x10\x08\x12\x36\n2CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED\x10\t\x12H\nDCANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS\x10\n\x12\x12\n\x0e\x44UPLICATE_NAME\x10\x0b\x12\"\n\x1eMONEY_AMOUNT_IN_WRONG_CURRENCY\x10\x0c\x12/\n+MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC\x10\r\x12\x1a\n\x16MONEY_AMOUNT_TOO_LARGE\x10\x0e\x12\x19\n\x15NEGATIVE_MONEY_AMOUNT\x10\x0f\x12)\n%NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT\x10\x10\x42\xce\x01\n\"com.google.ads.googleads.v0.errorsB\x18\x43\x61mpaignBudgetErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR = _descriptor.EnumDescriptor( + name='CampaignBudgetError', + full_name='google.ads.googleads.v0.errors.CampaignBudgetErrorEnum.CampaignBudgetError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_REMOVED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_IN_USE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET', index=5, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED', index=6, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME', index=7, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED', index=8, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS', index=9, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_NAME', index=10, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_IN_WRONG_CURRENCY', index=11, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC', index=12, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MONEY_AMOUNT_TOO_LARGE', index=13, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NEGATIVE_MONEY_AMOUNT', index=14, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT', index=15, number=16, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=129, + serialized_end=799, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR) + + +_CAMPAIGNBUDGETERRORENUM = _descriptor.Descriptor( + name='CampaignBudgetErrorEnum', + full_name='google.ads.googleads.v0.errors.CampaignBudgetErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=101, + serialized_end=799, +) + +_CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR.containing_type = _CAMPAIGNBUDGETERRORENUM +DESCRIPTOR.message_types_by_name['CampaignBudgetErrorEnum'] = _CAMPAIGNBUDGETERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignBudgetErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignBudgetErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNBUDGETERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.campaign_budget_error_pb2' + , + __doc__ = """Container for enum describing possible campaign budget errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.CampaignBudgetErrorEnum) + )) +_sym_db.RegisterMessage(CampaignBudgetErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\030CampaignBudgetErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/campaign_budget_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2.py b/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2.py new file mode 100644 index 000000000..5435d9237 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2.py @@ -0,0 +1,131 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/campaign_criterion_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/campaign_criterion_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nCgoogle/ads/googleads_v0/proto/errors/campaign_criterion_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xcf\x03\n\x1a\x43\x61mpaignCriterionErrorEnum\"\xb0\x03\n\x16\x43\x61mpaignCriterionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16\x43ONCRETE_TYPE_REQUIRED\x10\x02\x12\x19\n\x15INVALID_PLACEMENT_URL\x10\x03\x12 \n\x1c\x43\x41NNOT_EXCLUDE_CRITERIA_TYPE\x10\x04\x12\'\n#CANNOT_SET_STATUS_FOR_CRITERIA_TYPE\x10\x05\x12+\n\'CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA\x10\x06\x12\x1d\n\x19\x43\x41NNOT_TARGET_AND_EXCLUDE\x10\x07\x12\x17\n\x13TOO_MANY_OPERATIONS\x10\x08\x12-\n)OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE\x10\t\x12\x43\n?SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL\x10\n\x12\x1d\n\x19\x43\x41NNOT_ADD_EXISTING_FIELD\x10\x0b\x42\xd1\x01\n\"com.google.ads.googleads.v0.errorsB\x1b\x43\x61mpaignCriterionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR = _descriptor.EnumDescriptor( + name='CampaignCriterionError', + full_name='google.ads.googleads.v0.errors.CampaignCriterionErrorEnum.CampaignCriterionError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONCRETE_TYPE_REQUIRED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEMENT_URL', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERIA_TYPE', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_STATUS_FOR_CRITERIA_TYPE', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_AND_EXCLUDE', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_OPERATIONS', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_EXISTING_FIELD', index=11, number=11, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=135, + serialized_end=567, +) +_sym_db.RegisterEnumDescriptor(_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR) + + +_CAMPAIGNCRITERIONERRORENUM = _descriptor.Descriptor( + name='CampaignCriterionErrorEnum', + full_name='google.ads.googleads.v0.errors.CampaignCriterionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=104, + serialized_end=567, +) + +_CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR.containing_type = _CAMPAIGNCRITERIONERRORENUM +DESCRIPTOR.message_types_by_name['CampaignCriterionErrorEnum'] = _CAMPAIGNCRITERIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterionErrorEnum = _reflection.GeneratedProtocolMessageType('CampaignCriterionErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNCRITERIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.campaign_criterion_error_pb2' + , + __doc__ = """Container for enum describing possible campaign criterion errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.CampaignCriterionErrorEnum) + )) +_sym_db.RegisterMessage(CampaignCriterionErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\033CampaignCriterionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/campaign_criterion_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/campaign_error_pb2.py b/google/ads/google_ads/v0/proto/errors/campaign_error_pb2.py new file mode 100644 index 000000000..1f99cd3ea --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/campaign_error_pb2.py @@ -0,0 +1,239 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/campaign_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/campaign_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/errors/campaign_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xcf\x0c\n\x11\x43\x61mpaignErrorEnum\"\xb9\x0c\n\rCampaignError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43\x41NNOT_TARGET_CONTENT_NETWORK\x10\x03\x12 \n\x1c\x43\x41NNOT_TARGET_SEARCH_NETWORK\x10\x04\x12\x36\n2CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH\x10\x05\x12\x30\n,CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN\x10\x06\x12-\n)CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK\x10\x07\x12(\n$CANNOT_TARGET_PARTNER_SEARCH_NETWORK\x10\x08\x12K\nGCANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY\x10\t\x12\x36\n2CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS\x10\n\x12$\n CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN\x10\x0b\x12\x1b\n\x17\x44UPLICATE_CAMPAIGN_NAME\x10\x0c\x12\x1f\n\x1bINCOMPATIBLE_CAMPAIGN_FIELD\x10\r\x12\x19\n\x15INVALID_CAMPAIGN_NAME\x10\x0e\x12*\n&INVALID_AD_SERVING_OPTIMIZATION_STATUS\x10\x0f\x12\x18\n\x14INVALID_TRACKING_URL\x10\x10\x12>\n:CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING\x10\x11\x12 \n\x1cMAX_IMPRESSIONS_NOT_IN_RANGE\x10\x12\x12\x1b\n\x17TIME_UNIT_NOT_SUPPORTED\x10\x13\x12\x31\n-INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED\x10\x14\x12\x1b\n\x17\x42UDGET_CANNOT_BE_SHARED\x10\x15\x12%\n!CAMPAIGN_CANNOT_USE_SHARED_BUDGET\x10\x16\x12\x30\n,CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS\x10\x17\x12!\n\x1d\x43\x41MPAIGN_LABEL_DOES_NOT_EXIST\x10\x18\x12!\n\x1d\x43\x41MPAIGN_LABEL_ALREADY_EXISTS\x10\x19\x12\x1c\n\x18MISSING_SHOPPING_SETTING\x10\x1a\x12\"\n\x1eINVALID_SHOPPING_SALES_COUNTRY\x10\x1b\x12\x39\n5SHOPPING_MERCHANT_NOT_ALLOWED_FOR_PURCHASES_ON_GOOGLE\x10\x1c\x12@\n\x12(\n$CANNOT_BID_MODIFY_NEGATIVE_CRITERION\x10?\x12\x1f\n\x1b\x42ID_MODIFIER_ALREADY_EXISTS\x10@\x12\x17\n\x13\x46\x45\x45\x44_ID_NOT_ALLOWED\x10\x41\x12(\n$ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE\x10\x42\x12.\n*CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY\x10\x43\x12\x1c\n\x18\x43\x41NNOT_EXCLUDE_CRITERION\x10\x44\x12\x1b\n\x17\x43\x41NNOT_REMOVE_CRITERION\x10\x45\x12\x1a\n\x16PRODUCT_SCOPE_TOO_LONG\x10\x46\x12%\n!PRODUCT_SCOPE_TOO_MANY_DIMENSIONS\x10G\x12\x1e\n\x1aPRODUCT_PARTITION_TOO_LONG\x10H\x12)\n%PRODUCT_PARTITION_TOO_MANY_DIMENSIONS\x10I\x12\x1d\n\x19INVALID_PRODUCT_DIMENSION\x10J\x12\"\n\x1eINVALID_PRODUCT_DIMENSION_TYPE\x10K\x12$\n INVALID_PRODUCT_BIDDING_CATEGORY\x10L\x12\x1c\n\x18MISSING_SHOPPING_SETTING\x10M\x12\x1d\n\x19INVALID_MATCHING_FUNCTION\x10N\x12\x1f\n\x1bLOCATION_FILTER_NOT_ALLOWED\x10O\x12\x1b\n\x17LOCATION_FILTER_INVALID\x10P\x12\x32\n.CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP\x10Q\x12\x39\n5HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION\x10R\x12\x41\n=HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION\x10S\x12.\n*FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING\x10TB\xc9\x01\n\"com.google.ads.googleads.v0.errorsB\x13\x43riterionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_CRITERIONERRORENUM_CRITERIONERROR = _descriptor.EnumDescriptor( + name='CriterionError', + full_name='google.ads.googleads.v0.errors.CriterionErrorEnum.CriterionError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONCRETE_TYPE_REQUIRED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_EXCLUDED_CATEGORY', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_KEYWORD_TEXT', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYWORD_TEXT_TOO_LONG', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_TOO_MANY_WORDS', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYWORD_HAS_INVALID_CHARS', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PLACEMENT_URL', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_LIST', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_INTEREST', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT_FOR_PLACEMENT_URL', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_IS_TOO_LONG', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_HAS_ILLEGAL_CHAR', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_VERTICAL_PATH', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_CHANNEL_ID', index=17, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_YOUTUBE_VIDEO_ID', index=18, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_VERTICAL_CHANNEL_DEPRECATED', index=19, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED', index=20, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOUTUBE_URL_UNSUPPORTED', index=21, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERIA_TYPE', index=22, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_CRITERIA_TYPE', index=23, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PRODUCT_FILTER', index=24, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRODUCT_FILTER_TOO_LONG', index=25, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_SIMILAR_USER_LIST', index=26, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_CLOSED_USER_LIST', index=27, number=27, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS', index=28, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS', index=29, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS', index=30, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS', index=31, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS', index=32, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE', index=33, number=33, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_IP_ADDRESS', index=34, number=34, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_IP_FORMAT', index=35, number=35, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_APP', index=36, number=36, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MOBILE_APP_CATEGORY', index=37, number=37, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CRITERION_ID', index=38, number=38, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_CRITERION', index=39, number=39, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_TARGET_OBSOLETE_CRITERION', index=40, number=40, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CRITERION_ID_AND_TYPE_MISMATCH', index=41, number=41, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_RADIUS', index=42, number=42, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_RADIUS_UNITS', index=43, number=43, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_STREETADDRESS_LENGTH', index=44, number=44, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CITYNAME_LENGTH', index=45, number=45, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_REGIONCODE_LENGTH', index=46, number=46, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_REGIONNAME_LENGTH', index=47, number=47, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_POSTALCODE_LENGTH', index=48, number=48, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_COUNTRY_CODE', index=49, number=49, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_LATITUDE', index=50, number=50, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_LONGITUDE', index=51, number=51, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL', index=52, number=52, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROXIMITY_ADDRESS', index=53, number=53, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_USER_DOMAIN_NAME', index=54, number=54, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CRITERION_PARAMETER_TOO_LONG', index=55, number=55, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_TIME_INTERVALS_OVERLAP', index=56, number=56, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS', index=57, number=57, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_INVALID_TIME_INTERVAL', index=58, number=58, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT', index=59, number=59, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS', index=60, number=60, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_CRITERION_TYPE', index=61, number=61, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT', index=62, number=62, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_BID_MODIFY_NEGATIVE_CRITERION', index=63, number=63, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_MODIFIER_ALREADY_EXISTS', index=64, number=64, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FEED_ID_NOT_ALLOWED', index=65, number=65, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE', index=66, number=66, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY', index=67, number=67, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_EXCLUDE_CRITERION', index=68, number=68, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_REMOVE_CRITERION', index=69, number=69, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRODUCT_SCOPE_TOO_LONG', index=70, number=70, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRODUCT_SCOPE_TOO_MANY_DIMENSIONS', index=71, number=71, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRODUCT_PARTITION_TOO_LONG', index=72, number=72, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRODUCT_PARTITION_TOO_MANY_DIMENSIONS', index=73, number=73, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PRODUCT_DIMENSION', index=74, number=74, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PRODUCT_DIMENSION_TYPE', index=75, number=75, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PRODUCT_BIDDING_CATEGORY', index=76, number=76, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_SHOPPING_SETTING', index=77, number=77, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MATCHING_FUNCTION', index=78, number=78, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOCATION_FILTER_NOT_ALLOWED', index=79, number=79, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOCATION_FILTER_INVALID', index=80, number=80, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP', index=81, number=81, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION', index=82, number=82, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION', index=83, number=83, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING', index=84, number=84, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=118, + serialized_end=3202, +) +_sym_db.RegisterEnumDescriptor(_CRITERIONERRORENUM_CRITERIONERROR) + + +_CRITERIONERRORENUM = _descriptor.Descriptor( + name='CriterionErrorEnum', + full_name='google.ads.googleads.v0.errors.CriterionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CRITERIONERRORENUM_CRITERIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=95, + serialized_end=3202, +) + +_CRITERIONERRORENUM_CRITERIONERROR.containing_type = _CRITERIONERRORENUM +DESCRIPTOR.message_types_by_name['CriterionErrorEnum'] = _CRITERIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CriterionErrorEnum = _reflection.GeneratedProtocolMessageType('CriterionErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _CRITERIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.criterion_error_pb2' + , + __doc__ = """Container for enum describing possible criterion errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.CriterionErrorEnum) + )) +_sym_db.RegisterMessage(CriterionErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\023CriterionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/criterion_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/criterion_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/criterion_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/date_error_pb2.py b/google/ads/google_ads/v0/proto/errors/date_error_pb2.py new file mode 100644 index 000000000..8f17a0e83 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/date_error_pb2.py @@ -0,0 +1,123 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/date_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/date_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n5google/ads/googleads_v0/proto/errors/date_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xe0\x02\n\rDateErrorEnum\"\xce\x02\n\tDateError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12 \n\x1cINVALID_FIELD_VALUES_IN_DATE\x10\x02\x12%\n!INVALID_FIELD_VALUES_IN_DATE_TIME\x10\x03\x12\x17\n\x13INVALID_STRING_DATE\x10\x04\x12\x1c\n\x18INVALID_STRING_DATE_TIME\x10\x06\x12\x1d\n\x19\x45\x41RLIER_THAN_MINIMUM_DATE\x10\x07\x12\x1b\n\x17LATER_THAN_MAXIMUM_DATE\x10\x08\x12\x33\n/DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE\x10\t\x12\x32\n.DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL\x10\nB\xc4\x01\n\"com.google.ads.googleads.v0.errorsB\x0e\x44\x61teErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_DATEERRORENUM_DATEERROR = _descriptor.EnumDescriptor( + name='DateError', + full_name='google.ads.googleads.v0.errors.DateErrorEnum.DateError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_VALUES_IN_DATE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FIELD_VALUES_IN_DATE_TIME', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_DATE_TIME', index=5, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EARLIER_THAN_MINIMUM_DATE', index=6, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LATER_THAN_MAXIMUM_DATE', index=7, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE', index=8, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL', index=9, number=10, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=108, + serialized_end=442, +) +_sym_db.RegisterEnumDescriptor(_DATEERRORENUM_DATEERROR) + + +_DATEERRORENUM = _descriptor.Descriptor( + name='DateErrorEnum', + full_name='google.ads.googleads.v0.errors.DateErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATEERRORENUM_DATEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=90, + serialized_end=442, +) + +_DATEERRORENUM_DATEERROR.containing_type = _DATEERRORENUM +DESCRIPTOR.message_types_by_name['DateErrorEnum'] = _DATEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DateErrorEnum = _reflection.GeneratedProtocolMessageType('DateErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _DATEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.date_error_pb2' + , + __doc__ = """Container for enum describing possible date errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.DateErrorEnum) + )) +_sym_db.RegisterMessage(DateErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\016DateErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/date_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/date_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/date_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/date_range_error_pb2.py b/google/ads/google_ads/v0/proto/errors/date_range_error_pb2.py new file mode 100644 index 000000000..4fd26b63b --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/date_range_error_pb2.py @@ -0,0 +1,111 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/date_range_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/date_range_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n;google/ads/googleads_v0/proto/errors/date_range_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xe6\x01\n\x12\x44\x61teRangeErrorEnum\"\xcf\x01\n\x0e\x44\x61teRangeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cINVALID_DATE\x10\x02\x12\x1d\n\x19START_DATE_AFTER_END_DATE\x10\x03\x12\x1b\n\x17\x43\x41NNOT_SET_DATE_TO_PAST\x10\x04\x12 \n\x1c\x41\x46TER_MAXIMUM_ALLOWABLE_DATE\x10\x05\x12/\n+CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED\x10\x06\x42\xc9\x01\n\"com.google.ads.googleads.v0.errorsB\x13\x44\x61teRangeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_DATERANGEERRORENUM_DATERANGEERROR = _descriptor.EnumDescriptor( + name='DateRangeError', + full_name='google.ads.googleads.v0.errors.DateRangeErrorEnum.DateRangeError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='START_DATE_AFTER_END_DATE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_DATE_TO_PAST', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AFTER_MAXIMUM_ALLOWABLE_DATE', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED', index=6, number=6, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=119, + serialized_end=326, +) +_sym_db.RegisterEnumDescriptor(_DATERANGEERRORENUM_DATERANGEERROR) + + +_DATERANGEERRORENUM = _descriptor.Descriptor( + name='DateRangeErrorEnum', + full_name='google.ads.googleads.v0.errors.DateRangeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATERANGEERRORENUM_DATERANGEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=96, + serialized_end=326, +) + +_DATERANGEERRORENUM_DATERANGEERROR.containing_type = _DATERANGEERRORENUM +DESCRIPTOR.message_types_by_name['DateRangeErrorEnum'] = _DATERANGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DateRangeErrorEnum = _reflection.GeneratedProtocolMessageType('DateRangeErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _DATERANGEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.date_range_error_pb2' + , + __doc__ = """Container for enum describing possible date range errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.DateRangeErrorEnum) + )) +_sym_db.RegisterMessage(DateRangeErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\023DateRangeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/date_range_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/date_range_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/date_range_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/distinct_error_pb2.py b/google/ads/google_ads/v0/proto/errors/distinct_error_pb2.py new file mode 100644 index 000000000..65fb5577c --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/distinct_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/distinct_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/distinct_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/errors/distinct_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"m\n\x11\x44istinctErrorEnum\"X\n\rDistinctError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x15\n\x11\x44UPLICATE_ELEMENT\x10\x02\x12\x12\n\x0e\x44UPLICATE_TYPE\x10\x03\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12\x44istinctErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_DISTINCTERRORENUM_DISTINCTERROR = _descriptor.EnumDescriptor( + name='DistinctError', + full_name='google.ads.googleads.v0.errors.DistinctErrorEnum.DistinctError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_ELEMENT', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_TYPE', index=3, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=114, + serialized_end=202, +) +_sym_db.RegisterEnumDescriptor(_DISTINCTERRORENUM_DISTINCTERROR) + + +_DISTINCTERRORENUM = _descriptor.Descriptor( + name='DistinctErrorEnum', + full_name='google.ads.googleads.v0.errors.DistinctErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DISTINCTERRORENUM_DISTINCTERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=93, + serialized_end=202, +) + +_DISTINCTERRORENUM_DISTINCTERROR.containing_type = _DISTINCTERRORENUM +DESCRIPTOR.message_types_by_name['DistinctErrorEnum'] = _DISTINCTERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +DistinctErrorEnum = _reflection.GeneratedProtocolMessageType('DistinctErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _DISTINCTERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.distinct_error_pb2' + , + __doc__ = """Container for enum describing possible distinct errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.DistinctErrorEnum) + )) +_sym_db.RegisterMessage(DistinctErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022DistinctErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/distinct_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/distinct_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/distinct_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/errors_pb2.py b/google/ads/google_ads/v0/proto/errors/errors_pb2.py new file mode 100644 index 000000000..826755495 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/errors_pb2.py @@ -0,0 +1,1182 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/errors.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import policy_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_policy__pb2 +from google.ads.google_ads.v0.proto.common import value_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_value__pb2 +from google.ads.google_ads.v0.proto.errors import ad_customizer_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__customizer__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_ad_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__ad__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_bid_modifier_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_criterion_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__error__pb2 +from google.ads.google_ads.v0.proto.errors import ad_sharing_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__sharing__error__pb2 +from google.ads.google_ads.v0.proto.errors import adx_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_adx__error__pb2 +from google.ads.google_ads.v0.proto.errors import authentication_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authentication__error__pb2 +from google.ads.google_ads.v0.proto.errors import authorization_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authorization__error__pb2 +from google.ads.google_ads.v0.proto.errors import bidding_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__error__pb2 +from google.ads.google_ads.v0.proto.errors import bidding_strategy_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__strategy__error__pb2 +from google.ads.google_ads.v0.proto.errors import campaign_budget_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__budget__error__pb2 +from google.ads.google_ads.v0.proto.errors import campaign_criterion_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__criterion__error__pb2 +from google.ads.google_ads.v0.proto.errors import campaign_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__error__pb2 +from google.ads.google_ads.v0.proto.errors import collection_size_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_collection__size__error__pb2 +from google.ads.google_ads.v0.proto.errors import context_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_context__error__pb2 +from google.ads.google_ads.v0.proto.errors import criterion_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_criterion__error__pb2 +from google.ads.google_ads.v0.proto.errors import date_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__error__pb2 +from google.ads.google_ads.v0.proto.errors import date_range_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__range__error__pb2 +from google.ads.google_ads.v0.proto.errors import distinct_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_distinct__error__pb2 +from google.ads.google_ads.v0.proto.errors import feed_attribute_reference_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2 +from google.ads.google_ads.v0.proto.errors import field_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__error__pb2 +from google.ads.google_ads.v0.proto.errors import field_mask_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__mask__error__pb2 +from google.ads.google_ads.v0.proto.errors import function_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__error__pb2 +from google.ads.google_ads.v0.proto.errors import function_parsing_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__parsing__error__pb2 +from google.ads.google_ads.v0.proto.errors import id_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_id__error__pb2 +from google.ads.google_ads.v0.proto.errors import image_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_image__error__pb2 +from google.ads.google_ads.v0.proto.errors import internal_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_internal__error__pb2 +from google.ads.google_ads.v0.proto.errors import list_operation_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_list__operation__error__pb2 +from google.ads.google_ads.v0.proto.errors import media_bundle_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__bundle__error__pb2 +from google.ads.google_ads.v0.proto.errors import media_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__error__pb2 +from google.ads.google_ads.v0.proto.errors import multiplier_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_multiplier__error__pb2 +from google.ads.google_ads.v0.proto.errors import mutate_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_mutate__error__pb2 +from google.ads.google_ads.v0.proto.errors import new_resource_creation_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_new__resource__creation__error__pb2 +from google.ads.google_ads.v0.proto.errors import not_empty_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_not__empty__error__pb2 +from google.ads.google_ads.v0.proto.errors import null_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_null__error__pb2 +from google.ads.google_ads.v0.proto.errors import operation_access_denied_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operation__access__denied__error__pb2 +from google.ads.google_ads.v0.proto.errors import operator_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operator__error__pb2 +from google.ads.google_ads.v0.proto.errors import query_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_query__error__pb2 +from google.ads.google_ads.v0.proto.errors import quota_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_quota__error__pb2 +from google.ads.google_ads.v0.proto.errors import range_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_range__error__pb2 +from google.ads.google_ads.v0.proto.errors import recommendation_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_recommendation__error__pb2 +from google.ads.google_ads.v0.proto.errors import region_code_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_region__code__error__pb2 +from google.ads.google_ads.v0.proto.errors import request_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_request__error__pb2 +from google.ads.google_ads.v0.proto.errors import resource_access_denied_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__access__denied__error__pb2 +from google.ads.google_ads.v0.proto.errors import resource_count_limit_exceeded_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2 +from google.ads.google_ads.v0.proto.errors import setting_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_setting__error__pb2 +from google.ads.google_ads.v0.proto.errors import string_format_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__format__error__pb2 +from google.ads.google_ads.v0.proto.errors import string_length_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__length__error__pb2 +from google.ads.google_ads.v0.proto.errors import url_field_error_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_url__field__error__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/errors.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n1google/ads/googleads_v0/proto/errors/errors.proto\x12\x1egoogle.ads.googleads.v0.errors\x1a\x31google/ads/googleads_v0/proto/common/policy.proto\x1a\x30google/ads/googleads_v0/proto/common/value.proto\x1a>google/ads/googleads_v0/proto/errors/ad_customizer_error.proto\x1a\x33google/ads/googleads_v0/proto/errors/ad_error.proto\x1agoogle/ads/googleads_v0/proto/errors/authorization_error.proto\x1a\x38google/ads/googleads_v0/proto/errors/bidding_error.proto\x1a\x41google/ads/googleads_v0/proto/errors/bidding_strategy_error.proto\x1a@google/ads/googleads_v0/proto/errors/campaign_budget_error.proto\x1a\x43google/ads/googleads_v0/proto/errors/campaign_criterion_error.proto\x1a\x39google/ads/googleads_v0/proto/errors/campaign_error.proto\x1a@google/ads/googleads_v0/proto/errors/collection_size_error.proto\x1a\x38google/ads/googleads_v0/proto/errors/context_error.proto\x1a:google/ads/googleads_v0/proto/errors/criterion_error.proto\x1a\x35google/ads/googleads_v0/proto/errors/date_error.proto\x1a;google/ads/googleads_v0/proto/errors/date_range_error.proto\x1a\x39google/ads/googleads_v0/proto/errors/distinct_error.proto\x1aIgoogle/ads/googleads_v0/proto/errors/feed_attribute_reference_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/field_error.proto\x1a;google/ads/googleads_v0/proto/errors/field_mask_error.proto\x1a\x39google/ads/googleads_v0/proto/errors/function_error.proto\x1a\x41google/ads/googleads_v0/proto/errors/function_parsing_error.proto\x1a\x33google/ads/googleads_v0/proto/errors/id_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/image_error.proto\x1a\x39google/ads/googleads_v0/proto/errors/internal_error.proto\x1a?google/ads/googleads_v0/proto/errors/list_operation_error.proto\x1a=google/ads/googleads_v0/proto/errors/media_bundle_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/media_error.proto\x1a;google/ads/googleads_v0/proto/errors/multiplier_error.proto\x1a\x37google/ads/googleads_v0/proto/errors/mutate_error.proto\x1a\x46google/ads/googleads_v0/proto/errors/new_resource_creation_error.proto\x1a:google/ads/googleads_v0/proto/errors/not_empty_error.proto\x1a\x35google/ads/googleads_v0/proto/errors/null_error.proto\x1aHgoogle/ads/googleads_v0/proto/errors/operation_access_denied_error.proto\x1a\x39google/ads/googleads_v0/proto/errors/operator_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/query_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/quota_error.proto\x1a\x36google/ads/googleads_v0/proto/errors/range_error.proto\x1a?google/ads/googleads_v0/proto/errors/recommendation_error.proto\x1agoogle/ads/googleads_v0/proto/errors/string_format_error.proto\x1a>google/ads/googleads_v0/proto/errors/string_length_error.proto\x1a:google/ads/googleads_v0/proto/errors/url_field_error.proto\x1a\x1egoogle/protobuf/wrappers.proto\"R\n\x10GoogleAdsFailure\x12>\n\x06\x65rrors\x18\x01 \x03(\x0b\x32..google.ads.googleads.v0.errors.GoogleAdsError\"\x98\x02\n\x0eGoogleAdsError\x12=\n\nerror_code\x18\x01 \x01(\x0b\x32).google.ads.googleads.v0.errors.ErrorCode\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x36\n\x07trigger\x18\x03 \x01(\x0b\x32%.google.ads.googleads.v0.common.Value\x12?\n\x08location\x18\x04 \x01(\x0b\x32-.google.ads.googleads.v0.errors.ErrorLocation\x12=\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32,.google.ads.googleads.v0.errors.ErrorDetails\"\xbf\'\n\tErrorCode\x12V\n\rrequest_error\x18\x01 \x01(\x0e\x32=.google.ads.googleads.v0.errors.RequestErrorEnum.RequestErrorH\x00\x12o\n\x16\x62idding_strategy_error\x18\x02 \x01(\x0e\x32M.google.ads.googleads.v0.errors.BiddingStrategyErrorEnum.BiddingStrategyErrorH\x00\x12Z\n\x0furl_field_error\x18\x03 \x01(\x0e\x32?.google.ads.googleads.v0.errors.UrlFieldErrorEnum.UrlFieldErrorH\x00\x12i\n\x14list_operation_error\x18\x04 \x01(\x0e\x32I.google.ads.googleads.v0.errors.ListOperationErrorEnum.ListOperationErrorH\x00\x12P\n\x0bquery_error\x18\x05 \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.QueryErrorEnum.QueryErrorH\x00\x12S\n\x0cmutate_error\x18\x07 \x01(\x0e\x32;.google.ads.googleads.v0.errors.MutateErrorEnum.MutateErrorH\x00\x12]\n\x10\x66ield_mask_error\x18\x08 \x01(\x0e\x32\x41.google.ads.googleads.v0.errors.FieldMaskErrorEnum.FieldMaskErrorH\x00\x12h\n\x13\x61uthorization_error\x18\t \x01(\x0e\x32I.google.ads.googleads.v0.errors.AuthorizationErrorEnum.AuthorizationErrorH\x00\x12Y\n\x0einternal_error\x18\n \x01(\x0e\x32?.google.ads.googleads.v0.errors.InternalErrorEnum.InternalErrorH\x00\x12P\n\x0bquota_error\x18\x0b \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.QuotaErrorEnum.QuotaErrorH\x00\x12G\n\x08\x61\x64_error\x18\x0c \x01(\x0e\x32\x33.google.ads.googleads.v0.errors.AdErrorEnum.AdErrorH\x00\x12W\n\x0e\x61\x64_group_error\x18\r \x01(\x0e\x32=.google.ads.googleads.v0.errors.AdGroupErrorEnum.AdGroupErrorH\x00\x12l\n\x15\x63\x61mpaign_budget_error\x18\x0e \x01(\x0e\x32K.google.ads.googleads.v0.errors.CampaignBudgetErrorEnum.CampaignBudgetErrorH\x00\x12Y\n\x0e\x63\x61mpaign_error\x18\x0f \x01(\x0e\x32?.google.ads.googleads.v0.errors.CampaignErrorEnum.CampaignErrorH\x00\x12k\n\x14\x61uthentication_error\x18\x11 \x01(\x0e\x32K.google.ads.googleads.v0.errors.AuthenticationErrorEnum.AuthenticationErrorH\x00\x12s\n\x18\x61\x64_group_criterion_error\x18\x12 \x01(\x0e\x32O.google.ads.googleads.v0.errors.AdGroupCriterionErrorEnum.AdGroupCriterionErrorH\x00\x12\x66\n\x13\x61\x64_customizer_error\x18\x13 \x01(\x0e\x32G.google.ads.googleads.v0.errors.AdCustomizerErrorEnum.AdCustomizerErrorH\x00\x12^\n\x11\x61\x64_group_ad_error\x18\x15 \x01(\x0e\x32\x41.google.ads.googleads.v0.errors.AdGroupAdErrorEnum.AdGroupAdErrorH\x00\x12]\n\x10\x61\x64_sharing_error\x18\x18 \x01(\x0e\x32\x41.google.ads.googleads.v0.errors.AdSharingErrorEnum.AdSharingErrorH\x00\x12J\n\tadx_error\x18\x19 \x01(\x0e\x32\x35.google.ads.googleads.v0.errors.AdxErrorEnum.AdxErrorH\x00\x12V\n\rbidding_error\x18\x1a \x01(\x0e\x32=.google.ads.googleads.v0.errors.BiddingErrorEnum.BiddingErrorH\x00\x12u\n\x18\x63\x61mpaign_criterion_error\x18\x1d \x01(\x0e\x32Q.google.ads.googleads.v0.errors.CampaignCriterionErrorEnum.CampaignCriterionErrorH\x00\x12l\n\x15\x63ollection_size_error\x18\x1f \x01(\x0e\x32K.google.ads.googleads.v0.errors.CollectionSizeErrorEnum.CollectionSizeErrorH\x00\x12\\\n\x0f\x63riterion_error\x18 \x01(\x0e\x32\x41.google.ads.googleads.v0.errors.CriterionErrorEnum.CriterionErrorH\x00\x12M\n\ndate_error\x18! \x01(\x0e\x32\x37.google.ads.googleads.v0.errors.DateErrorEnum.DateErrorH\x00\x12]\n\x10\x64\x61te_range_error\x18\" \x01(\x0e\x32\x41.google.ads.googleads.v0.errors.DateRangeErrorEnum.DateRangeErrorH\x00\x12Y\n\x0e\x64istinct_error\x18# \x01(\x0e\x32?.google.ads.googleads.v0.errors.DistinctErrorEnum.DistinctErrorH\x00\x12\x85\x01\n\x1e\x66\x65\x65\x64_attribute_reference_error\x18$ \x01(\x0e\x32[.google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceErrorH\x00\x12Y\n\x0e\x66unction_error\x18% \x01(\x0e\x32?.google.ads.googleads.v0.errors.FunctionErrorEnum.FunctionErrorH\x00\x12o\n\x16\x66unction_parsing_error\x18& \x01(\x0e\x32M.google.ads.googleads.v0.errors.FunctionParsingErrorEnum.FunctionParsingErrorH\x00\x12G\n\x08id_error\x18\' \x01(\x0e\x32\x33.google.ads.googleads.v0.errors.IdErrorEnum.IdErrorH\x00\x12P\n\x0bimage_error\x18( \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.ImageErrorEnum.ImageErrorH\x00\x12\x63\n\x12media_bundle_error\x18* \x01(\x0e\x32\x45.google.ads.googleads.v0.errors.MediaBundleErrorEnum.MediaBundleErrorH\x00\x12P\n\x0bmedia_error\x18+ \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.MediaErrorEnum.MediaErrorH\x00\x12_\n\x10multiplier_error\x18, \x01(\x0e\x32\x43.google.ads.googleads.v0.errors.MultiplierErrorEnum.MultiplierErrorH\x00\x12|\n\x1bnew_resource_creation_error\x18- \x01(\x0e\x32U.google.ads.googleads.v0.errors.NewResourceCreationErrorEnum.NewResourceCreationErrorH\x00\x12Z\n\x0fnot_empty_error\x18. \x01(\x0e\x32?.google.ads.googleads.v0.errors.NotEmptyErrorEnum.NotEmptyErrorH\x00\x12M\n\nnull_error\x18/ \x01(\x0e\x32\x37.google.ads.googleads.v0.errors.NullErrorEnum.NullErrorH\x00\x12Y\n\x0eoperator_error\x18\x30 \x01(\x0e\x32?.google.ads.googleads.v0.errors.OperatorErrorEnum.OperatorErrorH\x00\x12P\n\x0brange_error\x18\x31 \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.RangeErrorEnum.RangeErrorH\x00\x12k\n\x14recommendation_error\x18: \x01(\x0e\x32K.google.ads.googleads.v0.errors.RecommendationErrorEnum.RecommendationErrorH\x00\x12`\n\x11region_code_error\x18\x33 \x01(\x0e\x32\x43.google.ads.googleads.v0.errors.RegionCodeErrorEnum.RegionCodeErrorH\x00\x12V\n\rsetting_error\x18\x34 \x01(\x0e\x32=.google.ads.googleads.v0.errors.SettingErrorEnum.SettingErrorH\x00\x12\x66\n\x13string_format_error\x18\x35 \x01(\x0e\x32G.google.ads.googleads.v0.errors.StringFormatErrorEnum.StringFormatErrorH\x00\x12\x66\n\x13string_length_error\x18\x36 \x01(\x0e\x32G.google.ads.googleads.v0.errors.StringLengthErrorEnum.StringLengthErrorH\x00\x12\x82\x01\n\x1doperation_access_denied_error\x18\x37 \x01(\x0e\x32Y.google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedErrorH\x00\x12\x7f\n\x1cresource_access_denied_error\x18\x38 \x01(\x0e\x32W.google.ads.googleads.v0.errors.ResourceAccessDeniedErrorEnum.ResourceAccessDeniedErrorH\x00\x12\x92\x01\n#resource_count_limit_exceeded_error\x18\x39 \x01(\x0e\x32\x63.google.ads.googleads.v0.errors.ResourceCountLimitExceededErrorEnum.ResourceCountLimitExceededErrorH\x00\x12z\n\x1b\x61\x64_group_bid_modifier_error\x18; \x01(\x0e\x32S.google.ads.googleads.v0.errors.AdGroupBidModifierErrorEnum.AdGroupBidModifierErrorH\x00\x12V\n\rcontext_error\x18< \x01(\x0e\x32=.google.ads.googleads.v0.errors.ContextErrorEnum.ContextErrorH\x00\x12P\n\x0b\x66ield_error\x18= \x01(\x0e\x32\x39.google.ads.googleads.v0.errors.FieldErrorEnum.FieldErrorH\x00\x42\x0c\n\nerror_code\"\xf6\x01\n\rErrorLocation\x12\x34\n\x0foperation_index\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12[\n\x13\x66ield_path_elements\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement\x1aR\n\x10\x46ieldPathElement\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12*\n\x05index\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x88\x01\n\x0c\x45rrorDetails\x12\x1e\n\x16unpublished_error_code\x18\x01 \x01(\t\x12X\n\x18policy_violation_details\x18\x02 \x01(\x0b\x32\x36.google.ads.googleads.v0.errors.PolicyViolationDetails\"\xb3\x01\n\x16PolicyViolationDetails\x12#\n\x1b\x65xternal_policy_description\x18\x02 \x01(\t\x12?\n\x03key\x18\x04 \x01(\x0b\x32\x32.google.ads.googleads.v0.common.PolicyViolationKey\x12\x1c\n\x14\x65xternal_policy_name\x18\x05 \x01(\t\x12\x15\n\ris_exemptible\x18\x06 \x01(\x08\x42\xc1\x01\n\"com.google.ads.googleads.v0.errorsB\x0b\x45rrorsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_policy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_value__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__customizer__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__ad__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__sharing__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_adx__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authentication__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authorization__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__strategy__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__budget__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_collection__size__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_context__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_criterion__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__range__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_distinct__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__mask__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__parsing__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_id__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_image__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_internal__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_list__operation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__bundle__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_multiplier__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_mutate__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_new__resource__creation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_not__empty__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_null__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operation__access__denied__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operator__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_query__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_quota__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_range__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_recommendation__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_region__code__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_request__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__access__denied__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_setting__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__format__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__length__error__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_url__field__error__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_GOOGLEADSFAILURE = _descriptor.Descriptor( + name='GoogleAdsFailure', + full_name='google.ads.googleads.v0.errors.GoogleAdsFailure', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='errors', full_name='google.ads.googleads.v0.errors.GoogleAdsFailure.errors', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3379, + serialized_end=3461, +) + + +_GOOGLEADSERROR = _descriptor.Descriptor( + name='GoogleAdsError', + full_name='google.ads.googleads.v0.errors.GoogleAdsError', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='error_code', full_name='google.ads.googleads.v0.errors.GoogleAdsError.error_code', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='message', full_name='google.ads.googleads.v0.errors.GoogleAdsError.message', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='trigger', full_name='google.ads.googleads.v0.errors.GoogleAdsError.trigger', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='location', full_name='google.ads.googleads.v0.errors.GoogleAdsError.location', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='details', full_name='google.ads.googleads.v0.errors.GoogleAdsError.details', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3464, + serialized_end=3744, +) + + +_ERRORCODE = _descriptor.Descriptor( + name='ErrorCode', + full_name='google.ads.googleads.v0.errors.ErrorCode', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='request_error', full_name='google.ads.googleads.v0.errors.ErrorCode.request_error', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bidding_strategy_error', full_name='google.ads.googleads.v0.errors.ErrorCode.bidding_strategy_error', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_field_error', full_name='google.ads.googleads.v0.errors.ErrorCode.url_field_error', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='list_operation_error', full_name='google.ads.googleads.v0.errors.ErrorCode.list_operation_error', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='query_error', full_name='google.ads.googleads.v0.errors.ErrorCode.query_error', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mutate_error', full_name='google.ads.googleads.v0.errors.ErrorCode.mutate_error', index=5, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='field_mask_error', full_name='google.ads.googleads.v0.errors.ErrorCode.field_mask_error', index=6, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='authorization_error', full_name='google.ads.googleads.v0.errors.ErrorCode.authorization_error', index=7, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='internal_error', full_name='google.ads.googleads.v0.errors.ErrorCode.internal_error', index=8, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='quota_error', full_name='google.ads.googleads.v0.errors.ErrorCode.quota_error', index=9, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_error', index=10, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_group_error', index=11, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_budget_error', full_name='google.ads.googleads.v0.errors.ErrorCode.campaign_budget_error', index=12, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_error', full_name='google.ads.googleads.v0.errors.ErrorCode.campaign_error', index=13, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='authentication_error', full_name='google.ads.googleads.v0.errors.ErrorCode.authentication_error', index=14, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_criterion_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_group_criterion_error', index=15, + number=18, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_customizer_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_customizer_error', index=16, + number=19, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_ad_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_group_ad_error', index=17, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_sharing_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_sharing_error', index=18, + number=24, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='adx_error', full_name='google.ads.googleads.v0.errors.ErrorCode.adx_error', index=19, + number=25, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bidding_error', full_name='google.ads.googleads.v0.errors.ErrorCode.bidding_error', index=20, + number=26, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_criterion_error', full_name='google.ads.googleads.v0.errors.ErrorCode.campaign_criterion_error', index=21, + number=29, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='collection_size_error', full_name='google.ads.googleads.v0.errors.ErrorCode.collection_size_error', index=22, + number=31, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='criterion_error', full_name='google.ads.googleads.v0.errors.ErrorCode.criterion_error', index=23, + number=32, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='date_error', full_name='google.ads.googleads.v0.errors.ErrorCode.date_error', index=24, + number=33, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='date_range_error', full_name='google.ads.googleads.v0.errors.ErrorCode.date_range_error', index=25, + number=34, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='distinct_error', full_name='google.ads.googleads.v0.errors.ErrorCode.distinct_error', index=26, + number=35, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='feed_attribute_reference_error', full_name='google.ads.googleads.v0.errors.ErrorCode.feed_attribute_reference_error', index=27, + number=36, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='function_error', full_name='google.ads.googleads.v0.errors.ErrorCode.function_error', index=28, + number=37, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='function_parsing_error', full_name='google.ads.googleads.v0.errors.ErrorCode.function_parsing_error', index=29, + number=38, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id_error', full_name='google.ads.googleads.v0.errors.ErrorCode.id_error', index=30, + number=39, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='image_error', full_name='google.ads.googleads.v0.errors.ErrorCode.image_error', index=31, + number=40, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='media_bundle_error', full_name='google.ads.googleads.v0.errors.ErrorCode.media_bundle_error', index=32, + number=42, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='media_error', full_name='google.ads.googleads.v0.errors.ErrorCode.media_error', index=33, + number=43, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='multiplier_error', full_name='google.ads.googleads.v0.errors.ErrorCode.multiplier_error', index=34, + number=44, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_resource_creation_error', full_name='google.ads.googleads.v0.errors.ErrorCode.new_resource_creation_error', index=35, + number=45, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_empty_error', full_name='google.ads.googleads.v0.errors.ErrorCode.not_empty_error', index=36, + number=46, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='null_error', full_name='google.ads.googleads.v0.errors.ErrorCode.null_error', index=37, + number=47, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operator_error', full_name='google.ads.googleads.v0.errors.ErrorCode.operator_error', index=38, + number=48, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='range_error', full_name='google.ads.googleads.v0.errors.ErrorCode.range_error', index=39, + number=49, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='recommendation_error', full_name='google.ads.googleads.v0.errors.ErrorCode.recommendation_error', index=40, + number=58, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='region_code_error', full_name='google.ads.googleads.v0.errors.ErrorCode.region_code_error', index=41, + number=51, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='setting_error', full_name='google.ads.googleads.v0.errors.ErrorCode.setting_error', index=42, + number=52, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='string_format_error', full_name='google.ads.googleads.v0.errors.ErrorCode.string_format_error', index=43, + number=53, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='string_length_error', full_name='google.ads.googleads.v0.errors.ErrorCode.string_length_error', index=44, + number=54, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operation_access_denied_error', full_name='google.ads.googleads.v0.errors.ErrorCode.operation_access_denied_error', index=45, + number=55, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resource_access_denied_error', full_name='google.ads.googleads.v0.errors.ErrorCode.resource_access_denied_error', index=46, + number=56, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resource_count_limit_exceeded_error', full_name='google.ads.googleads.v0.errors.ErrorCode.resource_count_limit_exceeded_error', index=47, + number=57, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier_error', full_name='google.ads.googleads.v0.errors.ErrorCode.ad_group_bid_modifier_error', index=48, + number=59, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='context_error', full_name='google.ads.googleads.v0.errors.ErrorCode.context_error', index=49, + number=60, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='field_error', full_name='google.ads.googleads.v0.errors.ErrorCode.field_error', index=50, + number=61, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='error_code', full_name='google.ads.googleads.v0.errors.ErrorCode.error_code', + index=0, containing_type=None, fields=[]), + ], + serialized_start=3747, + serialized_end=8802, +) + + +_ERRORLOCATION_FIELDPATHELEMENT = _descriptor.Descriptor( + name='FieldPathElement', + full_name='google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='field_name', full_name='google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement.field_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='index', full_name='google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement.index', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8969, + serialized_end=9051, +) + +_ERRORLOCATION = _descriptor.Descriptor( + name='ErrorLocation', + full_name='google.ads.googleads.v0.errors.ErrorLocation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='operation_index', full_name='google.ads.googleads.v0.errors.ErrorLocation.operation_index', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='field_path_elements', full_name='google.ads.googleads.v0.errors.ErrorLocation.field_path_elements', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_ERRORLOCATION_FIELDPATHELEMENT, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8805, + serialized_end=9051, +) + + +_ERRORDETAILS = _descriptor.Descriptor( + name='ErrorDetails', + full_name='google.ads.googleads.v0.errors.ErrorDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='unpublished_error_code', full_name='google.ads.googleads.v0.errors.ErrorDetails.unpublished_error_code', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='policy_violation_details', full_name='google.ads.googleads.v0.errors.ErrorDetails.policy_violation_details', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9054, + serialized_end=9190, +) + + +_POLICYVIOLATIONDETAILS = _descriptor.Descriptor( + name='PolicyViolationDetails', + full_name='google.ads.googleads.v0.errors.PolicyViolationDetails', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='external_policy_description', full_name='google.ads.googleads.v0.errors.PolicyViolationDetails.external_policy_description', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='key', full_name='google.ads.googleads.v0.errors.PolicyViolationDetails.key', index=1, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='external_policy_name', full_name='google.ads.googleads.v0.errors.PolicyViolationDetails.external_policy_name', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='is_exemptible', full_name='google.ads.googleads.v0.errors.PolicyViolationDetails.is_exemptible', index=3, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9193, + serialized_end=9372, +) + +_GOOGLEADSFAILURE.fields_by_name['errors'].message_type = _GOOGLEADSERROR +_GOOGLEADSERROR.fields_by_name['error_code'].message_type = _ERRORCODE +_GOOGLEADSERROR.fields_by_name['trigger'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_value__pb2._VALUE +_GOOGLEADSERROR.fields_by_name['location'].message_type = _ERRORLOCATION +_GOOGLEADSERROR.fields_by_name['details'].message_type = _ERRORDETAILS +_ERRORCODE.fields_by_name['request_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_request__error__pb2._REQUESTERRORENUM_REQUESTERROR +_ERRORCODE.fields_by_name['bidding_strategy_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__strategy__error__pb2._BIDDINGSTRATEGYERRORENUM_BIDDINGSTRATEGYERROR +_ERRORCODE.fields_by_name['url_field_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_url__field__error__pb2._URLFIELDERRORENUM_URLFIELDERROR +_ERRORCODE.fields_by_name['list_operation_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_list__operation__error__pb2._LISTOPERATIONERRORENUM_LISTOPERATIONERROR +_ERRORCODE.fields_by_name['query_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_query__error__pb2._QUERYERRORENUM_QUERYERROR +_ERRORCODE.fields_by_name['mutate_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_mutate__error__pb2._MUTATEERRORENUM_MUTATEERROR +_ERRORCODE.fields_by_name['field_mask_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__mask__error__pb2._FIELDMASKERRORENUM_FIELDMASKERROR +_ERRORCODE.fields_by_name['authorization_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authorization__error__pb2._AUTHORIZATIONERRORENUM_AUTHORIZATIONERROR +_ERRORCODE.fields_by_name['internal_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_internal__error__pb2._INTERNALERRORENUM_INTERNALERROR +_ERRORCODE.fields_by_name['quota_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_quota__error__pb2._QUOTAERRORENUM_QUOTAERROR +_ERRORCODE.fields_by_name['ad_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__error__pb2._ADERRORENUM_ADERROR +_ERRORCODE.fields_by_name['ad_group_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__error__pb2._ADGROUPERRORENUM_ADGROUPERROR +_ERRORCODE.fields_by_name['campaign_budget_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__budget__error__pb2._CAMPAIGNBUDGETERRORENUM_CAMPAIGNBUDGETERROR +_ERRORCODE.fields_by_name['campaign_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__error__pb2._CAMPAIGNERRORENUM_CAMPAIGNERROR +_ERRORCODE.fields_by_name['authentication_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_authentication__error__pb2._AUTHENTICATIONERRORENUM_AUTHENTICATIONERROR +_ERRORCODE.fields_by_name['ad_group_criterion_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__criterion__error__pb2._ADGROUPCRITERIONERRORENUM_ADGROUPCRITERIONERROR +_ERRORCODE.fields_by_name['ad_customizer_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__customizer__error__pb2._ADCUSTOMIZERERRORENUM_ADCUSTOMIZERERROR +_ERRORCODE.fields_by_name['ad_group_ad_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__ad__error__pb2._ADGROUPADERRORENUM_ADGROUPADERROR +_ERRORCODE.fields_by_name['ad_sharing_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__sharing__error__pb2._ADSHARINGERRORENUM_ADSHARINGERROR +_ERRORCODE.fields_by_name['adx_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_adx__error__pb2._ADXERRORENUM_ADXERROR +_ERRORCODE.fields_by_name['bidding_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_bidding__error__pb2._BIDDINGERRORENUM_BIDDINGERROR +_ERRORCODE.fields_by_name['campaign_criterion_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_campaign__criterion__error__pb2._CAMPAIGNCRITERIONERRORENUM_CAMPAIGNCRITERIONERROR +_ERRORCODE.fields_by_name['collection_size_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_collection__size__error__pb2._COLLECTIONSIZEERRORENUM_COLLECTIONSIZEERROR +_ERRORCODE.fields_by_name['criterion_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_criterion__error__pb2._CRITERIONERRORENUM_CRITERIONERROR +_ERRORCODE.fields_by_name['date_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__error__pb2._DATEERRORENUM_DATEERROR +_ERRORCODE.fields_by_name['date_range_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_date__range__error__pb2._DATERANGEERRORENUM_DATERANGEERROR +_ERRORCODE.fields_by_name['distinct_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_distinct__error__pb2._DISTINCTERRORENUM_DISTINCTERROR +_ERRORCODE.fields_by_name['feed_attribute_reference_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_feed__attribute__reference__error__pb2._FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR +_ERRORCODE.fields_by_name['function_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__error__pb2._FUNCTIONERRORENUM_FUNCTIONERROR +_ERRORCODE.fields_by_name['function_parsing_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_function__parsing__error__pb2._FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR +_ERRORCODE.fields_by_name['id_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_id__error__pb2._IDERRORENUM_IDERROR +_ERRORCODE.fields_by_name['image_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_image__error__pb2._IMAGEERRORENUM_IMAGEERROR +_ERRORCODE.fields_by_name['media_bundle_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__bundle__error__pb2._MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR +_ERRORCODE.fields_by_name['media_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_media__error__pb2._MEDIAERRORENUM_MEDIAERROR +_ERRORCODE.fields_by_name['multiplier_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_multiplier__error__pb2._MULTIPLIERERRORENUM_MULTIPLIERERROR +_ERRORCODE.fields_by_name['new_resource_creation_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_new__resource__creation__error__pb2._NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR +_ERRORCODE.fields_by_name['not_empty_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_not__empty__error__pb2._NOTEMPTYERRORENUM_NOTEMPTYERROR +_ERRORCODE.fields_by_name['null_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_null__error__pb2._NULLERRORENUM_NULLERROR +_ERRORCODE.fields_by_name['operator_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operator__error__pb2._OPERATORERRORENUM_OPERATORERROR +_ERRORCODE.fields_by_name['range_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_range__error__pb2._RANGEERRORENUM_RANGEERROR +_ERRORCODE.fields_by_name['recommendation_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_recommendation__error__pb2._RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR +_ERRORCODE.fields_by_name['region_code_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_region__code__error__pb2._REGIONCODEERRORENUM_REGIONCODEERROR +_ERRORCODE.fields_by_name['setting_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_setting__error__pb2._SETTINGERRORENUM_SETTINGERROR +_ERRORCODE.fields_by_name['string_format_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__format__error__pb2._STRINGFORMATERRORENUM_STRINGFORMATERROR +_ERRORCODE.fields_by_name['string_length_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_string__length__error__pb2._STRINGLENGTHERRORENUM_STRINGLENGTHERROR +_ERRORCODE.fields_by_name['operation_access_denied_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_operation__access__denied__error__pb2._OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR +_ERRORCODE.fields_by_name['resource_access_denied_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__access__denied__error__pb2._RESOURCEACCESSDENIEDERRORENUM_RESOURCEACCESSDENIEDERROR +_ERRORCODE.fields_by_name['resource_count_limit_exceeded_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_resource__count__limit__exceeded__error__pb2._RESOURCECOUNTLIMITEXCEEDEDERRORENUM_RESOURCECOUNTLIMITEXCEEDEDERROR +_ERRORCODE.fields_by_name['ad_group_bid_modifier_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_ad__group__bid__modifier__error__pb2._ADGROUPBIDMODIFIERERRORENUM_ADGROUPBIDMODIFIERERROR +_ERRORCODE.fields_by_name['context_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_context__error__pb2._CONTEXTERRORENUM_CONTEXTERROR +_ERRORCODE.fields_by_name['field_error'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_errors_dot_field__error__pb2._FIELDERRORENUM_FIELDERROR +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['request_error']) +_ERRORCODE.fields_by_name['request_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['bidding_strategy_error']) +_ERRORCODE.fields_by_name['bidding_strategy_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['url_field_error']) +_ERRORCODE.fields_by_name['url_field_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['list_operation_error']) +_ERRORCODE.fields_by_name['list_operation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['query_error']) +_ERRORCODE.fields_by_name['query_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['mutate_error']) +_ERRORCODE.fields_by_name['mutate_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['field_mask_error']) +_ERRORCODE.fields_by_name['field_mask_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['authorization_error']) +_ERRORCODE.fields_by_name['authorization_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['internal_error']) +_ERRORCODE.fields_by_name['internal_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['quota_error']) +_ERRORCODE.fields_by_name['quota_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_error']) +_ERRORCODE.fields_by_name['ad_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_error']) +_ERRORCODE.fields_by_name['ad_group_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_budget_error']) +_ERRORCODE.fields_by_name['campaign_budget_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_error']) +_ERRORCODE.fields_by_name['campaign_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['authentication_error']) +_ERRORCODE.fields_by_name['authentication_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_criterion_error']) +_ERRORCODE.fields_by_name['ad_group_criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_customizer_error']) +_ERRORCODE.fields_by_name['ad_customizer_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_ad_error']) +_ERRORCODE.fields_by_name['ad_group_ad_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_sharing_error']) +_ERRORCODE.fields_by_name['ad_sharing_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['adx_error']) +_ERRORCODE.fields_by_name['adx_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['bidding_error']) +_ERRORCODE.fields_by_name['bidding_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['campaign_criterion_error']) +_ERRORCODE.fields_by_name['campaign_criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['collection_size_error']) +_ERRORCODE.fields_by_name['collection_size_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['criterion_error']) +_ERRORCODE.fields_by_name['criterion_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['date_error']) +_ERRORCODE.fields_by_name['date_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['date_range_error']) +_ERRORCODE.fields_by_name['date_range_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['distinct_error']) +_ERRORCODE.fields_by_name['distinct_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['feed_attribute_reference_error']) +_ERRORCODE.fields_by_name['feed_attribute_reference_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['function_error']) +_ERRORCODE.fields_by_name['function_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['function_parsing_error']) +_ERRORCODE.fields_by_name['function_parsing_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['id_error']) +_ERRORCODE.fields_by_name['id_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['image_error']) +_ERRORCODE.fields_by_name['image_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['media_bundle_error']) +_ERRORCODE.fields_by_name['media_bundle_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['media_error']) +_ERRORCODE.fields_by_name['media_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['multiplier_error']) +_ERRORCODE.fields_by_name['multiplier_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['new_resource_creation_error']) +_ERRORCODE.fields_by_name['new_resource_creation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['not_empty_error']) +_ERRORCODE.fields_by_name['not_empty_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['null_error']) +_ERRORCODE.fields_by_name['null_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['operator_error']) +_ERRORCODE.fields_by_name['operator_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['range_error']) +_ERRORCODE.fields_by_name['range_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['recommendation_error']) +_ERRORCODE.fields_by_name['recommendation_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['region_code_error']) +_ERRORCODE.fields_by_name['region_code_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['setting_error']) +_ERRORCODE.fields_by_name['setting_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['string_format_error']) +_ERRORCODE.fields_by_name['string_format_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['string_length_error']) +_ERRORCODE.fields_by_name['string_length_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['operation_access_denied_error']) +_ERRORCODE.fields_by_name['operation_access_denied_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['resource_access_denied_error']) +_ERRORCODE.fields_by_name['resource_access_denied_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['resource_count_limit_exceeded_error']) +_ERRORCODE.fields_by_name['resource_count_limit_exceeded_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['ad_group_bid_modifier_error']) +_ERRORCODE.fields_by_name['ad_group_bid_modifier_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['context_error']) +_ERRORCODE.fields_by_name['context_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORCODE.oneofs_by_name['error_code'].fields.append( + _ERRORCODE.fields_by_name['field_error']) +_ERRORCODE.fields_by_name['field_error'].containing_oneof = _ERRORCODE.oneofs_by_name['error_code'] +_ERRORLOCATION_FIELDPATHELEMENT.fields_by_name['index'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ERRORLOCATION_FIELDPATHELEMENT.containing_type = _ERRORLOCATION +_ERRORLOCATION.fields_by_name['operation_index'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ERRORLOCATION.fields_by_name['field_path_elements'].message_type = _ERRORLOCATION_FIELDPATHELEMENT +_ERRORDETAILS.fields_by_name['policy_violation_details'].message_type = _POLICYVIOLATIONDETAILS +_POLICYVIOLATIONDETAILS.fields_by_name['key'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_policy__pb2._POLICYVIOLATIONKEY +DESCRIPTOR.message_types_by_name['GoogleAdsFailure'] = _GOOGLEADSFAILURE +DESCRIPTOR.message_types_by_name['GoogleAdsError'] = _GOOGLEADSERROR +DESCRIPTOR.message_types_by_name['ErrorCode'] = _ERRORCODE +DESCRIPTOR.message_types_by_name['ErrorLocation'] = _ERRORLOCATION +DESCRIPTOR.message_types_by_name['ErrorDetails'] = _ERRORDETAILS +DESCRIPTOR.message_types_by_name['PolicyViolationDetails'] = _POLICYVIOLATIONDETAILS +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GoogleAdsFailure = _reflection.GeneratedProtocolMessageType('GoogleAdsFailure', (_message.Message,), dict( + DESCRIPTOR = _GOOGLEADSFAILURE, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """Describes how a GoogleAds API call failed. It's returned inside + google.rpc.Status.details when a call fails. + + + Attributes: + errors: + The list of errors that occurred. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.GoogleAdsFailure) + )) +_sym_db.RegisterMessage(GoogleAdsFailure) + +GoogleAdsError = _reflection.GeneratedProtocolMessageType('GoogleAdsError', (_message.Message,), dict( + DESCRIPTOR = _GOOGLEADSERROR, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """GoogleAds-specific error. + + + Attributes: + error_code: + An enum value that indicates which error occurred. + message: + A human-readable description of the error. + trigger: + The value that triggered the error. + location: + Describes the part of the request proto that caused the error. + details: + Additional error details, which are returned by certain error + codes. Most error codes do not include details. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.GoogleAdsError) + )) +_sym_db.RegisterMessage(GoogleAdsError) + +ErrorCode = _reflection.GeneratedProtocolMessageType('ErrorCode', (_message.Message,), dict( + DESCRIPTOR = _ERRORCODE, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """The error reason represented by type and enum. + + + Attributes: + error_code: + The list of error enums + request_error: + An error caused by the request + bidding_strategy_error: + An error with a Bidding Strategy mutate. + url_field_error: + An error with a URL field mutate. + list_operation_error: + An error with a list operation. + query_error: + An error with an AWQL query + mutate_error: + An error with a mutate + field_mask_error: + An error with a field mask + authorization_error: + An error encountered when trying to authorize a user. + internal_error: + An unexpected server-side error. + quota_error: + An error with the amonut of quota remaining. + ad_error: + An error with an Ad Group Ad mutate. + ad_group_error: + An error with an Ad Group mutate. + campaign_budget_error: + An error with a Campaign Budget mutate. + campaign_error: + An error with a Campaign mutate. + authentication_error: + Indicates failure to properly authenticate user. + ad_group_criterion_error: + Indicates failure to properly authenticate user. + ad_customizer_error: + The reasons for the ad customizer error + ad_group_ad_error: + The reasons for the ad group ad error + ad_sharing_error: + The reasons for the ad sharing error + adx_error: + The reasons for the adx error + bidding_error: + The reasons for the bidding errors + campaign_criterion_error: + The reasons for the campaign criterion error + collection_size_error: + The reasons for the collection size error + criterion_error: + The reasons for the criterion error + date_error: + The reasons for the date error + date_range_error: + The reasons for the date range error + distinct_error: + The reasons for the distinct error + feed_attribute_reference_error: + The reasons for the feed attribute reference error + function_error: + The reasons for the function error + function_parsing_error: + The reasons for the function parsing error + id_error: + The reasons for the id error + image_error: + The reasons for the image error + media_bundle_error: + The reasons for the media bundle error + media_error: + The reasons for the media error + multiplier_error: + The reasons for the multiplier error + new_resource_creation_error: + The reasons for the new resource creation error + not_empty_error: + The reasons for the not empty error + null_error: + The reasons for the null error + operator_error: + The reasons for the operator error + range_error: + The reasons for the range error + recommendation_error: + The reasons for error in applying a recommendation + region_code_error: + The reasons for the region code error + setting_error: + The reasons for the setting error + string_format_error: + The reasons for the string format error + string_length_error: + The reasons for the string length error + operation_access_denied_error: + The reasons for the operation access denied error + resource_access_denied_error: + The reasons for the resource access denied error + resource_count_limit_exceeded_error: + The reasons for the resource count limit exceeded error + ad_group_bid_modifier_error: + The reasons for the ad group bid modifier error + context_error: + The reasons for the context error + field_error: + The reasons for the field error + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ErrorCode) + )) +_sym_db.RegisterMessage(ErrorCode) + +ErrorLocation = _reflection.GeneratedProtocolMessageType('ErrorLocation', (_message.Message,), dict( + + FieldPathElement = _reflection.GeneratedProtocolMessageType('FieldPathElement', (_message.Message,), dict( + DESCRIPTOR = _ERRORLOCATION_FIELDPATHELEMENT, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """A part of a field path. + + + Attributes: + field_name: + The name of a field + index: + If field\_name is a list, this is the element that failed + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement) + )) + , + DESCRIPTOR = _ERRORLOCATION, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """Describes the part of the request proto that caused the error. + + + Attributes: + operation_index: + The mutate operation that failed + field_path_elements: + A field path that indicates which field was invalid in the + resource being mutated. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ErrorLocation) + )) +_sym_db.RegisterMessage(ErrorLocation) +_sym_db.RegisterMessage(ErrorLocation.FieldPathElement) + +ErrorDetails = _reflection.GeneratedProtocolMessageType('ErrorDetails', (_message.Message,), dict( + DESCRIPTOR = _ERRORDETAILS, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """Additional error details. + + + Attributes: + unpublished_error_code: + The error code that should have been returned, but wasn't. + This is used when the error code is + InternalError.ERROR\_CODE\_NOT\_PUBLISHED. + policy_violation_details: + Describes an ad policy violation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ErrorDetails) + )) +_sym_db.RegisterMessage(ErrorDetails) + +PolicyViolationDetails = _reflection.GeneratedProtocolMessageType('PolicyViolationDetails', (_message.Message,), dict( + DESCRIPTOR = _POLICYVIOLATIONDETAILS, + __module__ = 'google.ads.googleads_v0.proto.errors.errors_pb2' + , + __doc__ = """Error returned as part of a mutate response. This error indicates single + policy violation by some text in one of the fields. + + + Attributes: + external_policy_description: + Human readable description of policy violation. + key: + Unique identifier for this violation. If policy is exemptible, + this key may be used to request exemption. + external_policy_name: + Human readable name of the policy. + is_exemptible: + Whether user can file an exemption request for this violation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.PolicyViolationDetails) + )) +_sym_db.RegisterMessage(PolicyViolationDetails) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\013ErrorsProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/errors_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/errors_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/errors_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2.py b/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2.py new file mode 100644 index 000000000..8e7aa3d78 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2.py @@ -0,0 +1,103 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/feed_attribute_reference_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/feed_attribute_reference_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nIgoogle/ads/googleads_v0/proto/errors/feed_attribute_reference_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xba\x01\n\x1f\x46\x65\x65\x64\x41ttributeReferenceErrorEnum\"\x96\x01\n\x1b\x46\x65\x65\x64\x41ttributeReferenceError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1d\x43\x41NNOT_REFERENCE_DELETED_FEED\x10\x02\x12\x15\n\x11INVALID_FEED_NAME\x10\x03\x12\x1f\n\x1bINVALID_FEED_ATTRIBUTE_NAME\x10\x04\x42\xd6\x01\n\"com.google.ads.googleads.v0.errorsB FeedAttributeReferenceErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR = _descriptor.EnumDescriptor( + name='FeedAttributeReferenceError', + full_name='google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum.FeedAttributeReferenceError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_REFERENCE_DELETED_FEED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_NAME', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FEED_ATTRIBUTE_NAME', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=146, + serialized_end=296, +) +_sym_db.RegisterEnumDescriptor(_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR) + + +_FEEDATTRIBUTEREFERENCEERRORENUM = _descriptor.Descriptor( + name='FeedAttributeReferenceErrorEnum', + full_name='google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=110, + serialized_end=296, +) + +_FEEDATTRIBUTEREFERENCEERRORENUM_FEEDATTRIBUTEREFERENCEERROR.containing_type = _FEEDATTRIBUTEREFERENCEERRORENUM +DESCRIPTOR.message_types_by_name['FeedAttributeReferenceErrorEnum'] = _FEEDATTRIBUTEREFERENCEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FeedAttributeReferenceErrorEnum = _reflection.GeneratedProtocolMessageType('FeedAttributeReferenceErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _FEEDATTRIBUTEREFERENCEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.feed_attribute_reference_error_pb2' + , + __doc__ = """Container for enum describing possible feed attribute reference errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum) + )) +_sym_db.RegisterMessage(FeedAttributeReferenceErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB FeedAttributeReferenceErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/feed_attribute_reference_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/field_error_pb2.py b/google/ads/google_ads/v0/proto/errors/field_error_pb2.py new file mode 100644 index 000000000..a2152a5e1 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/field_error_pb2.py @@ -0,0 +1,111 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/field_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/field_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/field_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xa8\x01\n\x0e\x46ieldErrorEnum\"\x95\x01\n\nFieldError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0c\n\x08REQUIRED\x10\x02\x12\x13\n\x0fIMMUTABLE_FIELD\x10\x03\x12\x11\n\rINVALID_VALUE\x10\x04\x12\x17\n\x13VALUE_MUST_BE_UNSET\x10\x05\x12\x1a\n\x16REQUIRED_NONEMPTY_LIST\x10\x06\x42\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0f\x46ieldErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_FIELDERRORENUM_FIELDERROR = _descriptor.EnumDescriptor( + name='FieldError', + full_name='google.ads.googleads.v0.errors.FieldErrorEnum.FieldError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REQUIRED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMMUTABLE_FIELD', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VALUE_MUST_BE_UNSET', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REQUIRED_NONEMPTY_LIST', index=6, number=6, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=110, + serialized_end=259, +) +_sym_db.RegisterEnumDescriptor(_FIELDERRORENUM_FIELDERROR) + + +_FIELDERRORENUM = _descriptor.Descriptor( + name='FieldErrorEnum', + full_name='google.ads.googleads.v0.errors.FieldErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FIELDERRORENUM_FIELDERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=91, + serialized_end=259, +) + +_FIELDERRORENUM_FIELDERROR.containing_type = _FIELDERRORENUM +DESCRIPTOR.message_types_by_name['FieldErrorEnum'] = _FIELDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FieldErrorEnum = _reflection.GeneratedProtocolMessageType('FieldErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _FIELDERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.field_error_pb2' + , + __doc__ = """Container for enum describing possible field errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.FieldErrorEnum) + )) +_sym_db.RegisterMessage(FieldErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017FieldErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/field_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/field_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/field_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2.py b/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2.py new file mode 100644 index 000000000..76ec0433c --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/field_mask_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/field_mask_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n;google/ads/googleads_v0/proto/errors/field_mask_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xa7\x01\n\x12\x46ieldMaskErrorEnum\"\x90\x01\n\x0e\x46ieldMaskError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12\x46IELD_MASK_MISSING\x10\x05\x12\x1a\n\x16\x46IELD_MASK_NOT_ALLOWED\x10\x04\x12\x13\n\x0f\x46IELD_NOT_FOUND\x10\x02\x12\x17\n\x13\x46IELD_HAS_SUBFIELDS\x10\x03\x42\xc9\x01\n\"com.google.ads.googleads.v0.errorsB\x13\x46ieldMaskErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_FIELDMASKERRORENUM_FIELDMASKERROR = _descriptor.EnumDescriptor( + name='FieldMaskError', + full_name='google.ads.googleads.v0.errors.FieldMaskErrorEnum.FieldMaskError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_MASK_MISSING', index=2, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_MASK_NOT_ALLOWED', index=3, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_FOUND', index=4, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_HAS_SUBFIELDS', index=5, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=119, + serialized_end=263, +) +_sym_db.RegisterEnumDescriptor(_FIELDMASKERRORENUM_FIELDMASKERROR) + + +_FIELDMASKERRORENUM = _descriptor.Descriptor( + name='FieldMaskErrorEnum', + full_name='google.ads.googleads.v0.errors.FieldMaskErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FIELDMASKERRORENUM_FIELDMASKERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=96, + serialized_end=263, +) + +_FIELDMASKERRORENUM_FIELDMASKERROR.containing_type = _FIELDMASKERRORENUM +DESCRIPTOR.message_types_by_name['FieldMaskErrorEnum'] = _FIELDMASKERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FieldMaskErrorEnum = _reflection.GeneratedProtocolMessageType('FieldMaskErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _FIELDMASKERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.field_mask_error_pb2' + , + __doc__ = """Container for enum describing possible field mask errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.FieldMaskErrorEnum) + )) +_sym_db.RegisterMessage(FieldMaskErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\023FieldMaskErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/field_mask_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/function_error_pb2.py b/google/ads/google_ads/v0/proto/errors/function_error_pb2.py new file mode 100644 index 000000000..f3dfe726b --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/function_error_pb2.py @@ -0,0 +1,155 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/function_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/function_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/errors/function_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xc1\x04\n\x11\x46unctionErrorEnum\"\xab\x04\n\rFunctionError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17INVALID_FUNCTION_FORMAT\x10\x02\x12\x16\n\x12\x44\x41TA_TYPE_MISMATCH\x10\x03\x12 \n\x1cINVALID_CONJUNCTION_OPERANDS\x10\x04\x12\x1e\n\x1aINVALID_NUMBER_OF_OPERANDS\x10\x05\x12\x18\n\x14INVALID_OPERAND_TYPE\x10\x06\x12\x14\n\x10INVALID_OPERATOR\x10\x07\x12 \n\x1cINVALID_REQUEST_CONTEXT_TYPE\x10\x08\x12)\n%INVALID_FUNCTION_FOR_CALL_PLACEHOLDER\x10\t\x12$\n INVALID_FUNCTION_FOR_PLACEHOLDER\x10\n\x12\x13\n\x0fINVALID_OPERAND\x10\x0b\x12\"\n\x1eMISSING_CONSTANT_OPERAND_VALUE\x10\x0c\x12\"\n\x1eINVALID_CONSTANT_OPERAND_VALUE\x10\r\x12\x13\n\x0fINVALID_NESTING\x10\x0e\x12#\n\x1fMULTIPLE_FEED_IDS_NOT_SUPPORTED\x10\x0f\x12/\n+INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA\x10\x10\x12\x1a\n\x16INVALID_ATTRIBUTE_NAME\x10\x11\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12\x46unctionErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_FUNCTIONERRORENUM_FUNCTIONERROR = _descriptor.EnumDescriptor( + name='FunctionError', + full_name='google.ads.googleads.v0.errors.FunctionErrorEnum.FunctionError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FORMAT', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DATA_TYPE_MISMATCH', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CONJUNCTION_OPERANDS', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_NUMBER_OF_OPERANDS', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERAND_TYPE', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATOR', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_REQUEST_CONTEXT_TYPE', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_CALL_PLACEHOLDER', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_PLACEHOLDER', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERAND', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_CONSTANT_OPERAND_VALUE', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CONSTANT_OPERAND_VALUE', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_NESTING', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_FEED_IDS_NOT_SUPPORTED', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_ATTRIBUTE_NAME', index=17, number=17, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=116, + serialized_end=671, +) +_sym_db.RegisterEnumDescriptor(_FUNCTIONERRORENUM_FUNCTIONERROR) + + +_FUNCTIONERRORENUM = _descriptor.Descriptor( + name='FunctionErrorEnum', + full_name='google.ads.googleads.v0.errors.FunctionErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FUNCTIONERRORENUM_FUNCTIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=94, + serialized_end=671, +) + +_FUNCTIONERRORENUM_FUNCTIONERROR.containing_type = _FUNCTIONERRORENUM +DESCRIPTOR.message_types_by_name['FunctionErrorEnum'] = _FUNCTIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FunctionErrorEnum = _reflection.GeneratedProtocolMessageType('FunctionErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _FUNCTIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.function_error_pb2' + , + __doc__ = """Container for enum describing possible function errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.FunctionErrorEnum) + )) +_sym_db.RegisterMessage(FunctionErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022FunctionErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/function_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/function_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/function_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2.py b/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2.py new file mode 100644 index 000000000..312b3e586 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2.py @@ -0,0 +1,135 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/function_parsing_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/function_parsing_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nAgoogle/ads/googleads_v0/proto/errors/function_parsing_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\x82\x03\n\x18\x46unctionParsingErrorEnum\"\xe5\x02\n\x14\x46unctionParsingError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rNO_MORE_INPUT\x10\x02\x12\x16\n\x12\x45XPECTED_CHARACTER\x10\x03\x12\x18\n\x14UNEXPECTED_SEPARATOR\x10\x04\x12\x1a\n\x16UNMATCHED_LEFT_BRACKET\x10\x05\x12\x1b\n\x17UNMATCHED_RIGHT_BRACKET\x10\x06\x12\x1d\n\x19TOO_MANY_NESTED_FUNCTIONS\x10\x07\x12\x1e\n\x1aMISSING_RIGHT_HAND_OPERAND\x10\x08\x12\x19\n\x15INVALID_OPERATOR_NAME\x10\t\x12/\n+FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER\x10\n\x12\x0f\n\x0bNO_OPERANDS\x10\x0b\x12\x15\n\x11TOO_MANY_OPERANDS\x10\x0c\x42\xcf\x01\n\"com.google.ads.googleads.v0.errorsB\x19\x46unctionParsingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR = _descriptor.EnumDescriptor( + name='FunctionParsingError', + full_name='google.ads.googleads.v0.errors.FunctionParsingErrorEnum.FunctionParsingError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NO_MORE_INPUT', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_CHARACTER', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SEPARATOR', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNMATCHED_LEFT_BRACKET', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNMATCHED_RIGHT_BRACKET', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_NESTED_FUNCTIONS', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_RIGHT_HAND_OPERAND', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_OPERATOR_NAME', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NO_OPERANDS', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_OPERANDS', index=12, number=12, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=131, + serialized_end=488, +) +_sym_db.RegisterEnumDescriptor(_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR) + + +_FUNCTIONPARSINGERRORENUM = _descriptor.Descriptor( + name='FunctionParsingErrorEnum', + full_name='google.ads.googleads.v0.errors.FunctionParsingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=102, + serialized_end=488, +) + +_FUNCTIONPARSINGERRORENUM_FUNCTIONPARSINGERROR.containing_type = _FUNCTIONPARSINGERRORENUM +DESCRIPTOR.message_types_by_name['FunctionParsingErrorEnum'] = _FUNCTIONPARSINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +FunctionParsingErrorEnum = _reflection.GeneratedProtocolMessageType('FunctionParsingErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _FUNCTIONPARSINGERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.function_parsing_error_pb2' + , + __doc__ = """Container for enum describing possible function parsing errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.FunctionParsingErrorEnum) + )) +_sym_db.RegisterMessage(FunctionParsingErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\031FunctionParsingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/function_parsing_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/id_error_pb2.py b/google/ads/google_ads/v0/proto/errors/id_error_pb2.py new file mode 100644 index 000000000..28dadf3b8 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/id_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/id_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/id_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n3google/ads/googleads_v0/proto/errors/id_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"E\n\x0bIdErrorEnum\"6\n\x07IdError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\r\n\tNOT_FOUND\x10\x02\x42\xc2\x01\n\"com.google.ads.googleads.v0.errorsB\x0cIdErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_IDERRORENUM_IDERROR = _descriptor.EnumDescriptor( + name='IdError', + full_name='google.ads.googleads.v0.errors.IdErrorEnum.IdError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NOT_FOUND', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=102, + serialized_end=156, +) +_sym_db.RegisterEnumDescriptor(_IDERRORENUM_IDERROR) + + +_IDERRORENUM = _descriptor.Descriptor( + name='IdErrorEnum', + full_name='google.ads.googleads.v0.errors.IdErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _IDERRORENUM_IDERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=87, + serialized_end=156, +) + +_IDERRORENUM_IDERROR.containing_type = _IDERRORENUM +DESCRIPTOR.message_types_by_name['IdErrorEnum'] = _IDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +IdErrorEnum = _reflection.GeneratedProtocolMessageType('IdErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _IDERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.id_error_pb2' + , + __doc__ = """Container for enum describing possible id errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.IdErrorEnum) + )) +_sym_db.RegisterMessage(IdErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\014IdErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/id_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/id_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/id_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/image_error_pb2.py b/google/ads/google_ads/v0/proto/errors/image_error_pb2.py new file mode 100644 index 000000000..6eafbf5d8 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/image_error_pb2.py @@ -0,0 +1,239 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/image_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/image_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/image_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\x8a\x08\n\x0eImageErrorEnum\"\xf7\x07\n\nImageError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rINVALID_IMAGE\x10\x02\x12\x11\n\rSTORAGE_ERROR\x10\x03\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x04\x12\x13\n\x0fUNEXPECTED_SIZE\x10\x05\x12\x18\n\x14\x41NIMATED_NOT_ALLOWED\x10\x06\x12\x16\n\x12\x41NIMATION_TOO_LONG\x10\x07\x12\x10\n\x0cSERVER_ERROR\x10\x08\x12\x19\n\x15\x43MYK_JPEG_NOT_ALLOWED\x10\t\x12\x15\n\x11\x46LASH_NOT_ALLOWED\x10\n\x12\x1a\n\x16\x46LASH_WITHOUT_CLICKTAG\x10\x0b\x12&\n\"FLASH_ERROR_AFTER_FIXING_CLICK_TAG\x10\x0c\x12\x1a\n\x16\x41NIMATED_VISUAL_EFFECT\x10\r\x12\x0f\n\x0b\x46LASH_ERROR\x10\x0e\x12\x12\n\x0eLAYOUT_PROBLEM\x10\x0f\x12\x1e\n\x1aPROBLEM_READING_IMAGE_FILE\x10\x10\x12\x17\n\x13\x45RROR_STORING_IMAGE\x10\x11\x12\x1c\n\x18\x41SPECT_RATIO_NOT_ALLOWED\x10\x12\x12\x1d\n\x19\x46LASH_HAS_NETWORK_OBJECTS\x10\x13\x12\x1d\n\x19\x46LASH_HAS_NETWORK_METHODS\x10\x14\x12\x11\n\rFLASH_HAS_URL\x10\x15\x12\x1c\n\x18\x46LASH_HAS_MOUSE_TRACKING\x10\x16\x12\x18\n\x14\x46LASH_HAS_RANDOM_NUM\x10\x17\x12\x16\n\x12\x46LASH_SELF_TARGETS\x10\x18\x12\x1b\n\x17\x46LASH_BAD_GETURL_TARGET\x10\x19\x12\x1f\n\x1b\x46LASH_VERSION_NOT_SUPPORTED\x10\x1a\x12&\n\"FLASH_WITHOUT_HARD_CODED_CLICK_URL\x10\x1b\x12\x16\n\x12INVALID_FLASH_FILE\x10\x1c\x12$\n FAILED_TO_FIX_CLICK_TAG_IN_FLASH\x10\x1d\x12$\n FLASH_ACCESSES_NETWORK_RESOURCES\x10\x1e\x12\x1a\n\x16\x46LASH_EXTERNAL_JS_CALL\x10\x1f\x12\x1a\n\x16\x46LASH_EXTERNAL_FS_CALL\x10 \x12\x12\n\x0e\x46ILE_TOO_LARGE\x10!\x12\x18\n\x14IMAGE_DATA_TOO_LARGE\x10\"\x12\x1a\n\x16IMAGE_PROCESSING_ERROR\x10#\x12\x13\n\x0fIMAGE_TOO_SMALL\x10$\x12\x11\n\rINVALID_INPUT\x10%\x12\x18\n\x14PROBLEM_READING_FILE\x10&B\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0fImageErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_IMAGEERRORENUM_IMAGEERROR = _descriptor.EnumDescriptor( + name='ImageError', + full_name='google.ads.googleads.v0.errors.ImageErrorEnum.ImageError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_IMAGE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STORAGE_ERROR', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_REQUEST', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SIZE', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ANIMATED_NOT_ALLOWED', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ANIMATION_TOO_LONG', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SERVER_ERROR', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CMYK_JPEG_NOT_ALLOWED', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_NOT_ALLOWED', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_WITHOUT_CLICKTAG', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_ERROR_AFTER_FIXING_CLICK_TAG', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ANIMATED_VISUAL_EFFECT', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_ERROR', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LAYOUT_PROBLEM', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROBLEM_READING_IMAGE_FILE', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ERROR_STORING_IMAGE', index=17, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ASPECT_RATIO_NOT_ALLOWED', index=18, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_NETWORK_OBJECTS', index=19, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_NETWORK_METHODS', index=20, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_URL', index=21, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_MOUSE_TRACKING', index=22, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_HAS_RANDOM_NUM', index=23, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_SELF_TARGETS', index=24, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_BAD_GETURL_TARGET', index=25, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_VERSION_NOT_SUPPORTED', index=26, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_WITHOUT_HARD_CODED_CLICK_URL', index=27, number=27, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FLASH_FILE', index=28, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED_TO_FIX_CLICK_TAG_IN_FLASH', index=29, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_ACCESSES_NETWORK_RESOURCES', index=30, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_EXTERNAL_JS_CALL', index=31, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLASH_EXTERNAL_FS_CALL', index=32, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FILE_TOO_LARGE', index=33, number=33, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMAGE_DATA_TOO_LARGE', index=34, number=34, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMAGE_PROCESSING_ERROR', index=35, number=35, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMAGE_TOO_SMALL', index=36, number=36, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=37, number=37, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROBLEM_READING_FILE', index=38, number=38, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=110, + serialized_end=1125, +) +_sym_db.RegisterEnumDescriptor(_IMAGEERRORENUM_IMAGEERROR) + + +_IMAGEERRORENUM = _descriptor.Descriptor( + name='ImageErrorEnum', + full_name='google.ads.googleads.v0.errors.ImageErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _IMAGEERRORENUM_IMAGEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=91, + serialized_end=1125, +) + +_IMAGEERRORENUM_IMAGEERROR.containing_type = _IMAGEERRORENUM +DESCRIPTOR.message_types_by_name['ImageErrorEnum'] = _IMAGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ImageErrorEnum = _reflection.GeneratedProtocolMessageType('ImageErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _IMAGEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.image_error_pb2' + , + __doc__ = """Container for enum describing possible image errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ImageErrorEnum) + )) +_sym_db.RegisterMessage(ImageErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017ImageErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/image_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/image_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/image_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/internal_error_pb2.py b/google/ads/google_ads/v0/proto/errors/internal_error_pb2.py new file mode 100644 index 000000000..d6e647251 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/internal_error_pb2.py @@ -0,0 +1,103 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/internal_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/internal_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/errors/internal_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\x89\x01\n\x11InternalErrorEnum\"t\n\rInternalError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1c\n\x18\x45RROR_CODE_NOT_PUBLISHED\x10\x03\x12\x13\n\x0fTRANSIENT_ERROR\x10\x04\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12InternalErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_INTERNALERRORENUM_INTERNALERROR = _descriptor.EnumDescriptor( + name='InternalError', + full_name='google.ads.googleads.v0.errors.InternalErrorEnum.InternalError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INTERNAL_ERROR', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ERROR_CODE_NOT_PUBLISHED', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TRANSIENT_ERROR', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=115, + serialized_end=231, +) +_sym_db.RegisterEnumDescriptor(_INTERNALERRORENUM_INTERNALERROR) + + +_INTERNALERRORENUM = _descriptor.Descriptor( + name='InternalErrorEnum', + full_name='google.ads.googleads.v0.errors.InternalErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _INTERNALERRORENUM_INTERNALERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=94, + serialized_end=231, +) + +_INTERNALERRORENUM_INTERNALERROR.containing_type = _INTERNALERRORENUM +DESCRIPTOR.message_types_by_name['InternalErrorEnum'] = _INTERNALERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +InternalErrorEnum = _reflection.GeneratedProtocolMessageType('InternalErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _INTERNALERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.internal_error_pb2' + , + __doc__ = """Container for enum describing possible internal errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.InternalErrorEnum) + )) +_sym_db.RegisterMessage(InternalErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022InternalErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/internal_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/internal_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/internal_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2.py b/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2.py new file mode 100644 index 000000000..fda007e39 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/list_operation_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/list_operation_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n?google/ads/googleads_v0/proto/errors/list_operation_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"~\n\x16ListOperationErrorEnum\"d\n\x12ListOperationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16REQUIRED_FIELD_MISSING\x10\x07\x12\x14\n\x10\x44UPLICATE_VALUES\x10\x08\x42\xcd\x01\n\"com.google.ads.googleads.v0.errorsB\x17ListOperationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_LISTOPERATIONERRORENUM_LISTOPERATIONERROR = _descriptor.EnumDescriptor( + name='ListOperationError', + full_name='google.ads.googleads.v0.errors.ListOperationErrorEnum.ListOperationError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REQUIRED_FIELD_MISSING', index=2, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_VALUES', index=3, number=8, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=125, + serialized_end=225, +) +_sym_db.RegisterEnumDescriptor(_LISTOPERATIONERRORENUM_LISTOPERATIONERROR) + + +_LISTOPERATIONERRORENUM = _descriptor.Descriptor( + name='ListOperationErrorEnum', + full_name='google.ads.googleads.v0.errors.ListOperationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LISTOPERATIONERRORENUM_LISTOPERATIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=99, + serialized_end=225, +) + +_LISTOPERATIONERRORENUM_LISTOPERATIONERROR.containing_type = _LISTOPERATIONERRORENUM +DESCRIPTOR.message_types_by_name['ListOperationErrorEnum'] = _LISTOPERATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ListOperationErrorEnum = _reflection.GeneratedProtocolMessageType('ListOperationErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _LISTOPERATIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.list_operation_error_pb2' + , + __doc__ = """Container for enum describing possible list operation errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.ListOperationErrorEnum) + )) +_sym_db.RegisterMessage(ListOperationErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\027ListOperationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/list_operation_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2.py b/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2.py new file mode 100644 index 000000000..c86b447c0 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2.py @@ -0,0 +1,179 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/media_bundle_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/media_bundle_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/errors/media_bundle_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xb8\x05\n\x14MediaBundleErrorEnum\"\x9f\x05\n\x10MediaBundleError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x03\x12\"\n\x1e\x44OUBLECLICK_BUNDLE_NOT_ALLOWED\x10\x04\x12\x1c\n\x18\x45XTERNAL_URL_NOT_ALLOWED\x10\x05\x12\x12\n\x0e\x46ILE_TOO_LARGE\x10\x06\x12.\n*GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED\x10\x07\x12\x11\n\rINVALID_INPUT\x10\x08\x12\x18\n\x14INVALID_MEDIA_BUNDLE\x10\t\x12\x1e\n\x1aINVALID_MEDIA_BUNDLE_ENTRY\x10\n\x12\x15\n\x11INVALID_MIME_TYPE\x10\x0b\x12\x10\n\x0cINVALID_PATH\x10\x0c\x12\x19\n\x15INVALID_URL_REFERENCE\x10\r\x12\x18\n\x14MEDIA_DATA_TOO_LARGE\x10\x0e\x12&\n\"MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY\x10\x0f\x12\x10\n\x0cSERVER_ERROR\x10\x10\x12\x11\n\rSTORAGE_ERROR\x10\x11\x12\x1d\n\x19SWIFFY_BUNDLE_NOT_ALLOWED\x10\x12\x12\x12\n\x0eTOO_MANY_FILES\x10\x13\x12\x13\n\x0fUNEXPECTED_SIZE\x10\x14\x12/\n+UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT\x10\x15\x12\x1d\n\x19UNSUPPORTED_HTML5_FEATURE\x10\x16\x12)\n%URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT\x10\x17\x12\x1b\n\x17\x43USTOM_EXIT_NOT_ALLOWED\x10\x18\x42\xcb\x01\n\"com.google.ads.googleads.v0.errorsB\x15MediaBundleErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR = _descriptor.EnumDescriptor( + name='MediaBundleError', + full_name='google.ads.googleads.v0.errors.MediaBundleErrorEnum.MediaBundleError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_REQUEST', index=2, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DOUBLECLICK_BUNDLE_NOT_ALLOWED', index=3, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXTERNAL_URL_NOT_ALLOWED', index=4, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FILE_TOO_LARGE', index=5, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED', index=6, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_INPUT', index=7, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE', index=8, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_BUNDLE_ENTRY', index=9, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MIME_TYPE', index=10, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PATH', index=11, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_REFERENCE', index=12, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEDIA_DATA_TOO_LARGE', index=13, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY', index=14, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SERVER_ERROR', index=15, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STORAGE_ERROR', index=16, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SWIFFY_BUNDLE_NOT_ALLOWED', index=17, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_FILES', index=18, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_SIZE', index=19, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT', index=20, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_HTML5_FEATURE', index=21, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT', index=22, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUSTOM_EXIT_NOT_ALLOWED', index=23, number=24, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=123, + serialized_end=794, +) +_sym_db.RegisterEnumDescriptor(_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR) + + +_MEDIABUNDLEERRORENUM = _descriptor.Descriptor( + name='MediaBundleErrorEnum', + full_name='google.ads.googleads.v0.errors.MediaBundleErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=98, + serialized_end=794, +) + +_MEDIABUNDLEERRORENUM_MEDIABUNDLEERROR.containing_type = _MEDIABUNDLEERRORENUM +DESCRIPTOR.message_types_by_name['MediaBundleErrorEnum'] = _MEDIABUNDLEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaBundleErrorEnum = _reflection.GeneratedProtocolMessageType('MediaBundleErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _MEDIABUNDLEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.media_bundle_error_pb2' + , + __doc__ = """Container for enum describing possible media bundle errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.MediaBundleErrorEnum) + )) +_sym_db.RegisterMessage(MediaBundleErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\025MediaBundleErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/media_bundle_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/media_error_pb2.py b/google/ads/google_ads/v0/proto/errors/media_error_pb2.py new file mode 100644 index 000000000..ed7ce0237 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/media_error_pb2.py @@ -0,0 +1,187 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/media_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/media_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/media_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\x8f\x06\n\x0eMediaErrorEnum\"\xfc\x05\n\nMediaError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1c\n\x18\x43\x41NNOT_ADD_STANDARD_ICON\x10\x02\x12\x30\n,CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES\x10\x03\x12$\n CANNOT_SPECIFY_MEDIA_ID_AND_DATA\x10\x04\x12\x13\n\x0f\x44UPLICATE_MEDIA\x10\x05\x12\x0f\n\x0b\x45MPTY_FIELD\x10\x06\x12\'\n#RESOURCE_REFERENCED_IN_MULTIPLE_OPS\x10\x07\x12*\n&FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE\x10\x08\x12\x14\n\x10INVALID_MEDIA_ID\x10\t\x12\x1a\n\x16INVALID_MEDIA_SUB_TYPE\x10\n\x12\x16\n\x12INVALID_MEDIA_TYPE\x10\x0b\x12\x15\n\x11INVALID_MIME_TYPE\x10\x0c\x12\x18\n\x14INVALID_REFERENCE_ID\x10\r\x12\x17\n\x13INVALID_YOU_TUBE_ID\x10\x0e\x12\x1c\n\x18MEDIA_FAILED_TRANSCODING\x10\x0f\x12\x18\n\x14MEDIA_NOT_TRANSCODED\x10\x10\x12)\n%MEDIA_TYPE_DOES_NOT_MATCH_OBJECT_TYPE\x10\x11\x12\x17\n\x13NO_FIELDS_SPECIFIED\x10\x12\x12\"\n\x1eNULL_REFERENCE_ID_AND_MEDIA_ID\x10\x13\x12\x0c\n\x08TOO_LONG\x10\x14\x12\x19\n\x15UNSUPPORTED_OPERATION\x10\x15\x12\x14\n\x10UNSUPPORTED_TYPE\x10\x16\x12 \n\x1cYOU_TUBE_SERVICE_UNAVAILABLE\x10\x17\x12,\n(YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION\x10\x18\x12\x1c\n\x18YOU_TUBE_VIDEO_NOT_FOUND\x10\x19\x42\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0fMediaErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_MEDIAERRORENUM_MEDIAERROR = _descriptor.EnumDescriptor( + name='MediaError', + full_name='google.ads.googleads.v0.errors.MediaErrorEnum.MediaError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_ADD_STANDARD_ICON', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SPECIFY_MEDIA_ID_AND_DATA', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_MEDIA', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EMPTY_FIELD', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RESOURCE_REFERENCED_IN_MULTIPLE_OPS', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_ID', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_SUB_TYPE', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MEDIA_TYPE', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_MIME_TYPE', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_REFERENCE_ID', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_YOU_TUBE_ID', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEDIA_FAILED_TRANSCODING', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEDIA_NOT_TRANSCODED', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEDIA_TYPE_DOES_NOT_MATCH_OBJECT_TYPE', index=17, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NO_FIELDS_SPECIFIED', index=18, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NULL_REFERENCE_ID_AND_MEDIA_ID', index=19, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=20, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_OPERATION', index=21, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNSUPPORTED_TYPE', index=22, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_SERVICE_UNAVAILABLE', index=23, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION', index=24, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='YOU_TUBE_VIDEO_NOT_FOUND', index=25, number=25, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=110, + serialized_end=874, +) +_sym_db.RegisterEnumDescriptor(_MEDIAERRORENUM_MEDIAERROR) + + +_MEDIAERRORENUM = _descriptor.Descriptor( + name='MediaErrorEnum', + full_name='google.ads.googleads.v0.errors.MediaErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MEDIAERRORENUM_MEDIAERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=91, + serialized_end=874, +) + +_MEDIAERRORENUM_MEDIAERROR.containing_type = _MEDIAERRORENUM +DESCRIPTOR.message_types_by_name['MediaErrorEnum'] = _MEDIAERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MediaErrorEnum = _reflection.GeneratedProtocolMessageType('MediaErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _MEDIAERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.media_error_pb2' + , + __doc__ = """Container for enum describing possible media errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.MediaErrorEnum) + )) +_sym_db.RegisterMessage(MediaErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017MediaErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/media_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/media_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/media_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2.py b/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2.py new file mode 100644 index 000000000..a9a68cd60 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2.py @@ -0,0 +1,139 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/multiplier_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/multiplier_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n;google/ads/googleads_v0/proto/errors/multiplier_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xcf\x04\n\x13MultiplierErrorEnum\"\xb7\x04\n\x0fMultiplierError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x17\n\x13MULTIPLIER_TOO_HIGH\x10\x02\x12\x16\n\x12MULTIPLIER_TOO_LOW\x10\x03\x12\x1e\n\x1aTOO_MANY_FRACTIONAL_DIGITS\x10\x04\x12/\n+MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY\x10\x05\x12\x33\n/MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING\x10\x06\x12\x1b\n\x17NO_MULTIPLIER_SPECIFIED\x10\x07\x12\x30\n,MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET\x10\x08\x12\x32\n.MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET\x10\t\x12\x31\n-MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET\x10\n\x12\x33\n/MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID\x10\x0b\x12\x31\n-BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER\x10\x0c\x12\x31\n-MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH\x10\rB\xca\x01\n\"com.google.ads.googleads.v0.errorsB\x14MultiplierErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_MULTIPLIERERRORENUM_MULTIPLIERERROR = _descriptor.EnumDescriptor( + name='MultiplierError', + full_name='google.ads.googleads.v0.errors.MultiplierErrorEnum.MultiplierError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_TOO_HIGH', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_TOO_LOW', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_FRACTIONAL_DIGITS', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NO_MULTIPLIER_SPECIFIED', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH', index=13, number=13, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=120, + serialized_end=687, +) +_sym_db.RegisterEnumDescriptor(_MULTIPLIERERRORENUM_MULTIPLIERERROR) + + +_MULTIPLIERERRORENUM = _descriptor.Descriptor( + name='MultiplierErrorEnum', + full_name='google.ads.googleads.v0.errors.MultiplierErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MULTIPLIERERRORENUM_MULTIPLIERERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=96, + serialized_end=687, +) + +_MULTIPLIERERRORENUM_MULTIPLIERERROR.containing_type = _MULTIPLIERERRORENUM +DESCRIPTOR.message_types_by_name['MultiplierErrorEnum'] = _MULTIPLIERERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MultiplierErrorEnum = _reflection.GeneratedProtocolMessageType('MultiplierErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _MULTIPLIERERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.multiplier_error_pb2' + , + __doc__ = """Container for enum describing possible multiplier errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.MultiplierErrorEnum) + )) +_sym_db.RegisterMessage(MultiplierErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\024MultiplierErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/multiplier_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/mutate_error_pb2.py b/google/ads/google_ads/v0/proto/errors/mutate_error_pb2.py new file mode 100644 index 000000000..1b970f725 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/mutate_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/mutate_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/mutate_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n7google/ads/googleads_v0/proto/errors/mutate_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"y\n\x0fMutateErrorEnum\"f\n\x0bMutateError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12RESOURCE_NOT_FOUND\x10\x03\x12!\n\x1dID_EXISTS_IN_MULTIPLE_MUTATES\x10\x07\x42\xc6\x01\n\"com.google.ads.googleads.v0.errorsB\x10MutateErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_MUTATEERRORENUM_MUTATEERROR = _descriptor.EnumDescriptor( + name='MutateError', + full_name='google.ads.googleads.v0.errors.MutateErrorEnum.MutateError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RESOURCE_NOT_FOUND', index=2, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ID_EXISTS_IN_MULTIPLE_MUTATES', index=3, number=7, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=110, + serialized_end=212, +) +_sym_db.RegisterEnumDescriptor(_MUTATEERRORENUM_MUTATEERROR) + + +_MUTATEERRORENUM = _descriptor.Descriptor( + name='MutateErrorEnum', + full_name='google.ads.googleads.v0.errors.MutateErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MUTATEERRORENUM_MUTATEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=91, + serialized_end=212, +) + +_MUTATEERRORENUM_MUTATEERROR.containing_type = _MUTATEERRORENUM +DESCRIPTOR.message_types_by_name['MutateErrorEnum'] = _MUTATEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +MutateErrorEnum = _reflection.GeneratedProtocolMessageType('MutateErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _MUTATEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.mutate_error_pb2' + , + __doc__ = """Container for enum describing possible mutate errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.MutateErrorEnum) + )) +_sym_db.RegisterMessage(MutateErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\020MutateErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/mutate_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/mutate_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/mutate_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2.py b/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2.py new file mode 100644 index 000000000..cb0751ab9 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2.py @@ -0,0 +1,103 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/new_resource_creation_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/new_resource_creation_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nFgoogle/ads/googleads_v0/proto/errors/new_resource_creation_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xad\x01\n\x1cNewResourceCreationErrorEnum\"\x8c\x01\n\x18NewResourceCreationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x19\n\x15\x43\x41NNOT_SET_ID_FOR_ADD\x10\x02\x12\x16\n\x12\x44UPLICATE_TEMP_IDS\x10\x03\x12\x1f\n\x1bTEMP_ID_RESOURCE_HAD_ERRORS\x10\x04\x42\xd3\x01\n\"com.google.ads.googleads.v0.errorsB\x1dNewResourceCreationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR = _descriptor.EnumDescriptor( + name='NewResourceCreationError', + full_name='google.ads.googleads.v0.errors.NewResourceCreationErrorEnum.NewResourceCreationError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANNOT_SET_ID_FOR_ADD', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_TEMP_IDS', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TEMP_ID_RESOURCE_HAD_ERRORS', index=4, number=4, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=140, + serialized_end=280, +) +_sym_db.RegisterEnumDescriptor(_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR) + + +_NEWRESOURCECREATIONERRORENUM = _descriptor.Descriptor( + name='NewResourceCreationErrorEnum', + full_name='google.ads.googleads.v0.errors.NewResourceCreationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=107, + serialized_end=280, +) + +_NEWRESOURCECREATIONERRORENUM_NEWRESOURCECREATIONERROR.containing_type = _NEWRESOURCECREATIONERRORENUM +DESCRIPTOR.message_types_by_name['NewResourceCreationErrorEnum'] = _NEWRESOURCECREATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NewResourceCreationErrorEnum = _reflection.GeneratedProtocolMessageType('NewResourceCreationErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _NEWRESOURCECREATIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.new_resource_creation_error_pb2' + , + __doc__ = """Container for enum describing possible new resource creation errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.NewResourceCreationErrorEnum) + )) +_sym_db.RegisterMessage(NewResourceCreationErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\035NewResourceCreationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/new_resource_creation_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2.py b/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2.py new file mode 100644 index 000000000..0a68c0826 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/not_empty_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/not_empty_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n:google/ads/googleads_v0/proto/errors/not_empty_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"R\n\x11NotEmptyErrorEnum\"=\n\rNotEmptyError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0e\n\nEMPTY_LIST\x10\x02\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12NotEmptyErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_NOTEMPTYERRORENUM_NOTEMPTYERROR = _descriptor.EnumDescriptor( + name='NotEmptyError', + full_name='google.ads.googleads.v0.errors.NotEmptyErrorEnum.NotEmptyError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EMPTY_LIST', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=115, + serialized_end=176, +) +_sym_db.RegisterEnumDescriptor(_NOTEMPTYERRORENUM_NOTEMPTYERROR) + + +_NOTEMPTYERRORENUM = _descriptor.Descriptor( + name='NotEmptyErrorEnum', + full_name='google.ads.googleads.v0.errors.NotEmptyErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NOTEMPTYERRORENUM_NOTEMPTYERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=94, + serialized_end=176, +) + +_NOTEMPTYERRORENUM_NOTEMPTYERROR.containing_type = _NOTEMPTYERRORENUM +DESCRIPTOR.message_types_by_name['NotEmptyErrorEnum'] = _NOTEMPTYERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NotEmptyErrorEnum = _reflection.GeneratedProtocolMessageType('NotEmptyErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _NOTEMPTYERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.not_empty_error_pb2' + , + __doc__ = """Container for enum describing possible not empty errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.NotEmptyErrorEnum) + )) +_sym_db.RegisterMessage(NotEmptyErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022NotEmptyErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/not_empty_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/null_error_pb2.py b/google/ads/google_ads/v0/proto/errors/null_error_pb2.py new file mode 100644 index 000000000..ebfddf76d --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/null_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/null_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/null_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n5google/ads/googleads_v0/proto/errors/null_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"L\n\rNullErrorEnum\";\n\tNullError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x10\n\x0cNULL_CONTENT\x10\x02\x42\xc4\x01\n\"com.google.ads.googleads.v0.errorsB\x0eNullErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_NULLERRORENUM_NULLERROR = _descriptor.EnumDescriptor( + name='NullError', + full_name='google.ads.googleads.v0.errors.NullErrorEnum.NullError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NULL_CONTENT', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=106, + serialized_end=165, +) +_sym_db.RegisterEnumDescriptor(_NULLERRORENUM_NULLERROR) + + +_NULLERRORENUM = _descriptor.Descriptor( + name='NullErrorEnum', + full_name='google.ads.googleads.v0.errors.NullErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NULLERRORENUM_NULLERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=89, + serialized_end=165, +) + +_NULLERRORENUM_NULLERROR.containing_type = _NULLERRORENUM +DESCRIPTOR.message_types_by_name['NullErrorEnum'] = _NULLERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +NullErrorEnum = _reflection.GeneratedProtocolMessageType('NullErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _NULLERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.null_error_pb2' + , + __doc__ = """Container for enum describing possible null errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.NullErrorEnum) + )) +_sym_db.RegisterMessage(NullErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\016NullErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/null_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/null_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/null_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2.py b/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2.py new file mode 100644 index 000000000..0e31d0d9d --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2.py @@ -0,0 +1,127 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/operation_access_denied_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/operation_access_denied_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\nHgoogle/ads/googleads_v0/proto/errors/operation_access_denied_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xc4\x03\n\x1eOperationAccessDeniedErrorEnum\"\xa1\x03\n\x1aOperationAccessDeniedError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x18\n\x14\x41\x43TION_NOT_PERMITTED\x10\x02\x12\"\n\x1e\x43REATE_OPERATION_NOT_PERMITTED\x10\x03\x12\"\n\x1eREMOVE_OPERATION_NOT_PERMITTED\x10\x04\x12\"\n\x1eUPDATE_OPERATION_NOT_PERMITTED\x10\x05\x12*\n&MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT\x10\x06\x12-\n)OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE\x10\x07\x12#\n\x1f\x43REATE_AS_REMOVED_NOT_PERMITTED\x10\x08\x12\x30\n,OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE\x10\t\x12-\n)OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE\x10\nB\xd5\x01\n\"com.google.ads.googleads.v0.errorsB\x1fOperationAccessDeniedErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR = _descriptor.EnumDescriptor( + name='OperationAccessDeniedError', + full_name='google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum.OperationAccessDeniedError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ACTION_NOT_PERMITTED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CREATE_OPERATION_NOT_PERMITTED', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REMOVE_OPERATION_NOT_PERMITTED', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UPDATE_OPERATION_NOT_PERMITTED', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CREATE_AS_REMOVED_NOT_PERMITTED', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE', index=10, number=10, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=144, + serialized_end=561, +) +_sym_db.RegisterEnumDescriptor(_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR) + + +_OPERATIONACCESSDENIEDERRORENUM = _descriptor.Descriptor( + name='OperationAccessDeniedErrorEnum', + full_name='google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=109, + serialized_end=561, +) + +_OPERATIONACCESSDENIEDERRORENUM_OPERATIONACCESSDENIEDERROR.containing_type = _OPERATIONACCESSDENIEDERRORENUM +DESCRIPTOR.message_types_by_name['OperationAccessDeniedErrorEnum'] = _OPERATIONACCESSDENIEDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OperationAccessDeniedErrorEnum = _reflection.GeneratedProtocolMessageType('OperationAccessDeniedErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _OPERATIONACCESSDENIEDERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.operation_access_denied_error_pb2' + , + __doc__ = """Container for enum describing possible operation access denied errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum) + )) +_sym_db.RegisterMessage(OperationAccessDeniedErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\037OperationAccessDeniedErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/operation_access_denied_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/operator_error_pb2.py b/google/ads/google_ads/v0/proto/errors/operator_error_pb2.py new file mode 100644 index 000000000..d7ed6b850 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/operator_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/operator_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/operator_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/errors/operator_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"^\n\x11OperatorErrorEnum\"I\n\rOperatorError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1a\n\x16OPERATOR_NOT_SUPPORTED\x10\x02\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12OperatorErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_OPERATORERRORENUM_OPERATORERROR = _descriptor.EnumDescriptor( + name='OperatorError', + full_name='google.ads.googleads.v0.errors.OperatorErrorEnum.OperatorError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATOR_NOT_SUPPORTED', index=2, number=2, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=114, + serialized_end=187, +) +_sym_db.RegisterEnumDescriptor(_OPERATORERRORENUM_OPERATORERROR) + + +_OPERATORERRORENUM = _descriptor.Descriptor( + name='OperatorErrorEnum', + full_name='google.ads.googleads.v0.errors.OperatorErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OPERATORERRORENUM_OPERATORERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=93, + serialized_end=187, +) + +_OPERATORERRORENUM_OPERATORERROR.containing_type = _OPERATORERRORENUM +DESCRIPTOR.message_types_by_name['OperatorErrorEnum'] = _OPERATORERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +OperatorErrorEnum = _reflection.GeneratedProtocolMessageType('OperatorErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _OPERATORERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.operator_error_pb2' + , + __doc__ = """Container for enum describing possible operator errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.OperatorErrorEnum) + )) +_sym_db.RegisterMessage(OperatorErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022OperatorErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/operator_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/operator_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/operator_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/query_error_pb2.py b/google/ads/google_ads/v0/proto/errors/query_error_pb2.py new file mode 100644 index 000000000..42d1d6eb0 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/query_error_pb2.py @@ -0,0 +1,287 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/query_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/query_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/query_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xe4\x0c\n\x0eQueryErrorEnum\"\xd1\x0c\n\nQueryError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0f\n\x0bQUERY_ERROR\x10\x32\x12\x15\n\x11\x42\x41\x44_ENUM_CONSTANT\x10\x12\x12\x17\n\x13\x42\x41\x44_ESCAPE_SEQUENCE\x10\x07\x12\x12\n\x0e\x42\x41\x44_FIELD_NAME\x10\x0c\x12\x13\n\x0f\x42\x41\x44_LIMIT_VALUE\x10\x0f\x12\x0e\n\nBAD_NUMBER\x10\x05\x12\x10\n\x0c\x42\x41\x44_OPERATOR\x10\x03\x12$\n BAD_RESOURCE_TYPE_IN_FROM_CLAUSE\x10-\x12\x0e\n\nBAD_SYMBOL\x10\x02\x12\r\n\tBAD_VALUE\x10\x04\x12\x17\n\x13\x44\x41TE_RANGE_TOO_WIDE\x10$\x12\x10\n\x0c\x45XPECTED_AND\x10\x1e\x12\x0f\n\x0b\x45XPECTED_BY\x10\x0e\x12-\n)EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE\x10%\x12\"\n\x1e\x45XPECTED_FILTERS_ON_DATE_RANGE\x10\x37\x12\x11\n\rEXPECTED_FROM\x10,\x12\x11\n\rEXPECTED_LIST\x10)\x12.\n*EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE\x10\x10\x12\x13\n\x0f\x45XPECTED_SELECT\x10\r\x12\x19\n\x15\x45XPECTED_SINGLE_VALUE\x10*\x12(\n$EXPECTED_VALUE_WITH_BETWEEN_OPERATOR\x10\x1d\x12\x17\n\x13INVALID_DATE_FORMAT\x10&\x12\x18\n\x14INVALID_STRING_VALUE\x10\x39\x12\'\n#INVALID_VALUE_WITH_BETWEEN_OPERATOR\x10\x1a\x12&\n\"INVALID_VALUE_WITH_DURING_OPERATOR\x10\x16\x12$\n INVALID_VALUE_WITH_LIKE_OPERATOR\x10\x38\x12\x1b\n\x17OPERATOR_FIELD_MISMATCH\x10#\x12&\n\"PROHIBITED_EMPTY_LIST_IN_CONDITION\x10\x1c\x12\x1c\n\x18PROHIBITED_ENUM_CONSTANT\x10\x36\x12\x31\n-PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE\x10\x1f\x12\'\n#PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE\x10(\x12%\n!PROHIBITED_FIELD_IN_SELECT_CLAUSE\x10\x17\x12$\n PROHIBITED_FIELD_IN_WHERE_CLAUSE\x10\x18\x12+\n\'PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE\x10+\x12-\n)PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE\x10\x30\x12,\n(PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE\x10:\x12/\n+PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE\x10\x31\x12\x30\n,PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE\x10\x33\x12<\n8PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE\x10\x35\x12\x17\n\x13LIMIT_VALUE_TOO_LOW\x10\x19\x12 \n\x1cPROHIBITED_NEWLINE_IN_STRING\x10\x08\x12(\n$PROHIBITED_VALUE_COMBINATION_IN_LIST\x10\n\x12\x36\n2PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR\x10\x15\x12\x19\n\x15STRING_NOT_TERMINATED\x10\x06\x12\x15\n\x11TOO_MANY_SEGMENTS\x10\"\x12\x1b\n\x17UNEXPECTED_END_OF_QUERY\x10\t\x12\x1a\n\x16UNEXPECTED_FROM_CLAUSE\x10/\x12\x16\n\x12UNRECOGNIZED_FIELD\x10 \x12\x14\n\x10UNEXPECTED_INPUT\x10\x0b\x42\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0fQueryErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_QUERYERRORENUM_QUERYERROR = _descriptor.EnumDescriptor( + name='QueryError', + full_name='google.ads.googleads.v0.errors.QueryErrorEnum.QueryError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='QUERY_ERROR', index=2, number=50, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_ENUM_CONSTANT', index=3, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_ESCAPE_SEQUENCE', index=4, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_FIELD_NAME', index=5, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_LIMIT_VALUE', index=6, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_NUMBER', index=7, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_OPERATOR', index=8, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_RESOURCE_TYPE_IN_FROM_CLAUSE', index=9, number=45, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_SYMBOL', index=10, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BAD_VALUE', index=11, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DATE_RANGE_TOO_WIDE', index=12, number=36, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_AND', index=13, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_BY', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE', index=15, number=37, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_FILTERS_ON_DATE_RANGE', index=16, number=55, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_FROM', index=17, number=44, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_LIST', index=18, number=41, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE', index=19, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_SELECT', index=20, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_SINGLE_VALUE', index=21, number=42, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXPECTED_VALUE_WITH_BETWEEN_OPERATOR', index=22, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_DATE_FORMAT', index=23, number=38, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_STRING_VALUE', index=24, number=57, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_BETWEEN_OPERATOR', index=25, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_DURING_OPERATOR', index=26, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_VALUE_WITH_LIKE_OPERATOR', index=27, number=56, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPERATOR_FIELD_MISMATCH', index=28, number=35, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_EMPTY_LIST_IN_CONDITION', index=29, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_ENUM_CONSTANT', index=30, number=54, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE', index=31, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE', index=32, number=40, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_SELECT_CLAUSE', index=33, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_FIELD_IN_WHERE_CLAUSE', index=34, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE', index=35, number=43, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE', index=36, number=48, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE', index=37, number=58, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE', index=38, number=49, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE', index=39, number=51, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE', index=40, number=53, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LIMIT_VALUE_TOO_LOW', index=41, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_NEWLINE_IN_STRING', index=42, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_VALUE_COMBINATION_IN_LIST', index=43, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR', index=44, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STRING_NOT_TERMINATED', index=45, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_SEGMENTS', index=46, number=34, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_END_OF_QUERY', index=47, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_FROM_CLAUSE', index=48, number=47, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNRECOGNIZED_FIELD', index=49, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNEXPECTED_INPUT', index=50, number=11, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=110, + serialized_end=1727, +) +_sym_db.RegisterEnumDescriptor(_QUERYERRORENUM_QUERYERROR) + + +_QUERYERRORENUM = _descriptor.Descriptor( + name='QueryErrorEnum', + full_name='google.ads.googleads.v0.errors.QueryErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUERYERRORENUM_QUERYERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=91, + serialized_end=1727, +) + +_QUERYERRORENUM_QUERYERROR.containing_type = _QUERYERRORENUM +DESCRIPTOR.message_types_by_name['QueryErrorEnum'] = _QUERYERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QueryErrorEnum = _reflection.GeneratedProtocolMessageType('QueryErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _QUERYERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.query_error_pb2' + , + __doc__ = """Container for enum describing possible query errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.QueryErrorEnum) + )) +_sym_db.RegisterMessage(QueryErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017QueryErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/query_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/query_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/query_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/quota_error_pb2.py b/google/ads/google_ads/v0/proto/errors/quota_error_pb2.py new file mode 100644 index 000000000..f80412694 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/quota_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/quota_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/quota_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/quota_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"k\n\x0eQuotaErrorEnum\"Y\n\nQuotaError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x16\n\x12RESOURCE_EXHAUSTED\x10\x02\x12\x15\n\x11\x41\x43\x43\x45SS_PROHIBITED\x10\x03\x42\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0fQuotaErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_QUOTAERRORENUM_QUOTAERROR = _descriptor.EnumDescriptor( + name='QuotaError', + full_name='google.ads.googleads.v0.errors.QuotaErrorEnum.QuotaError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RESOURCE_EXHAUSTED', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ACCESS_PROHIBITED', index=3, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=108, + serialized_end=197, +) +_sym_db.RegisterEnumDescriptor(_QUOTAERRORENUM_QUOTAERROR) + + +_QUOTAERRORENUM = _descriptor.Descriptor( + name='QuotaErrorEnum', + full_name='google.ads.googleads.v0.errors.QuotaErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUOTAERRORENUM_QUOTAERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=90, + serialized_end=197, +) + +_QUOTAERRORENUM_QUOTAERROR.containing_type = _QUOTAERRORENUM +DESCRIPTOR.message_types_by_name['QuotaErrorEnum'] = _QUOTAERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +QuotaErrorEnum = _reflection.GeneratedProtocolMessageType('QuotaErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _QUOTAERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.quota_error_pb2' + , + __doc__ = """Container for enum describing possible quota errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.QuotaErrorEnum) + )) +_sym_db.RegisterMessage(QuotaErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017QuotaErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/quota_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/quota_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/quota_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/range_error_pb2.py b/google/ads/google_ads/v0/proto/errors/range_error_pb2.py new file mode 100644 index 000000000..21d3ed61d --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/range_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/range_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/range_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/errors/range_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"W\n\x0eRangeErrorEnum\"E\n\nRangeError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x0b\n\x07TOO_LOW\x10\x02\x12\x0c\n\x08TOO_HIGH\x10\x03\x42\xc5\x01\n\"com.google.ads.googleads.v0.errorsB\x0fRangeErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_RANGEERRORENUM_RANGEERROR = _descriptor.EnumDescriptor( + name='RangeError', + full_name='google.ads.googleads.v0.errors.RangeErrorEnum.RangeError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_LOW', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_HIGH', index=3, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=108, + serialized_end=177, +) +_sym_db.RegisterEnumDescriptor(_RANGEERRORENUM_RANGEERROR) + + +_RANGEERRORENUM = _descriptor.Descriptor( + name='RangeErrorEnum', + full_name='google.ads.googleads.v0.errors.RangeErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RANGEERRORENUM_RANGEERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=90, + serialized_end=177, +) + +_RANGEERRORENUM_RANGEERROR.containing_type = _RANGEERRORENUM +DESCRIPTOR.message_types_by_name['RangeErrorEnum'] = _RANGEERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RangeErrorEnum = _reflection.GeneratedProtocolMessageType('RangeErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _RANGEERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.range_error_pb2' + , + __doc__ = """Container for enum describing possible range errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.RangeErrorEnum) + )) +_sym_db.RegisterMessage(RangeErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\017RangeErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/range_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/range_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/range_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2.py b/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2.py new file mode 100644 index 000000000..3b99127e9 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2.py @@ -0,0 +1,116 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/recommendation_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/recommendation_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n?google/ads/googleads_v0/proto/errors/recommendation_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xe9\x01\n\x17RecommendationErrorEnum\"\xcd\x01\n\x13RecommendationError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x1b\n\x17\x42UDGET_AMOUNT_TOO_SMALL\x10\x02\x12\x1b\n\x17\x42UDGET_AMOUNT_TOO_LARGE\x10\x03\x12\x19\n\x15INVALID_BUDGET_AMOUNT\x10\x04\x12\x10\n\x0cPOLICY_ERROR\x10\x05\x12\x16\n\x12INVALID_BID_AMOUNT\x10\x06\x12\x19\n\x15\x41\x44GROUP_KEYWORD_LIMIT\x10\x07\x42\xce\x01\n\"com.google.ads.googleads.v0.errorsB\x18RecommendationErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR = _descriptor.EnumDescriptor( + name='RecommendationError', + full_name='google.ads.googleads.v0.errors.RecommendationErrorEnum.RecommendationError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BUDGET_AMOUNT_TOO_SMALL', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BUDGET_AMOUNT_TOO_LARGE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_BUDGET_AMOUNT', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='POLICY_ERROR', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_BID_AMOUNT', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADGROUP_KEYWORD_LIMIT', index=7, number=7, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=128, + serialized_end=333, +) +_sym_db.RegisterEnumDescriptor(_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR) + + +_RECOMMENDATIONERRORENUM = _descriptor.Descriptor( + name='RecommendationErrorEnum', + full_name='google.ads.googleads.v0.errors.RecommendationErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=333, +) + +_RECOMMENDATIONERRORENUM_RECOMMENDATIONERROR.containing_type = _RECOMMENDATIONERRORENUM +DESCRIPTOR.message_types_by_name['RecommendationErrorEnum'] = _RECOMMENDATIONERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +RecommendationErrorEnum = _reflection.GeneratedProtocolMessageType('RecommendationErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _RECOMMENDATIONERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.recommendation_error_pb2' + , + __doc__ = """Container for enum describing possible errors from applying a + recommendation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.RecommendationErrorEnum) + )) +_sym_db.RegisterMessage(RecommendationErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\030RecommendationErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/recommendation_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/region_code_error_pb2.py b/google/ads/google_ads/v0/proto/errors/region_code_error_pb2.py new file mode 100644 index 000000000..c5e75438b --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/region_code_error_pb2.py @@ -0,0 +1,95 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/region_code_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/region_code_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n\n:TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN\x10\x0c\x12\x38\n4UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION\x10\r\x12\x42\n>UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG\x10\x0e\x12<\n8UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED\x10\x0f\x12\x38\n4TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN\x10\x10\x12\x36\n2TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN\x10\x11\x12\x31\n-MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN\x10\x12\x12\x1e\n\x1aTOO_MANY_EXCLAMATION_MARKS\x10\x13\x42\xc7\x01\n\"com.google.ads.googleads.v0.errorsB\x11SettingErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_SETTINGERRORENUM_SETTINGERROR = _descriptor.EnumDescriptor( + name='SettingError', + full_name='google.ads.googleads.v0.errors.SettingErrorEnum.SettingError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SETTING_TYPE_IS_NOT_AVAILABLE', index=2, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN', index=3, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP', index=4, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL', index=5, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP', index=6, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT', index=7, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME', index=8, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME', index=9, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE', index=10, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN', index=11, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION', index=12, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG', index=13, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED', index=14, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN', index=15, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN', index=16, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN', index=17, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_MANY_EXCLAMATION_MARKS', index=18, number=19, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=114, + serialized_end=1179, +) +_sym_db.RegisterEnumDescriptor(_SETTINGERRORENUM_SETTINGERROR) + + +_SETTINGERRORENUM = _descriptor.Descriptor( + name='SettingErrorEnum', + full_name='google.ads.googleads.v0.errors.SettingErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SETTINGERRORENUM_SETTINGERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=93, + serialized_end=1179, +) + +_SETTINGERRORENUM_SETTINGERROR.containing_type = _SETTINGERRORENUM +DESCRIPTOR.message_types_by_name['SettingErrorEnum'] = _SETTINGERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SettingErrorEnum = _reflection.GeneratedProtocolMessageType('SettingErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _SETTINGERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.setting_error_pb2' + , + __doc__ = """Container for enum describing possible setting errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.SettingErrorEnum) + )) +_sym_db.RegisterMessage(SettingErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\021SettingErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/setting_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/setting_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/setting_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/string_format_error_pb2.py b/google/ads/google_ads/v0/proto/errors/string_format_error_pb2.py new file mode 100644 index 000000000..f63f0a9b9 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/string_format_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/string_format_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/string_format_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/errors/string_format_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"q\n\x15StringFormatErrorEnum\"X\n\x11StringFormatError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\x11\n\rILLEGAL_CHARS\x10\x02\x12\x12\n\x0eINVALID_FORMAT\x10\x03\x42\xcc\x01\n\"com.google.ads.googleads.v0.errorsB\x16StringFormatErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_STRINGFORMATERRORENUM_STRINGFORMATERROR = _descriptor.EnumDescriptor( + name='StringFormatError', + full_name='google.ads.googleads.v0.errors.StringFormatErrorEnum.StringFormatError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ILLEGAL_CHARS', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FORMAT', index=3, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=123, + serialized_end=211, +) +_sym_db.RegisterEnumDescriptor(_STRINGFORMATERRORENUM_STRINGFORMATERROR) + + +_STRINGFORMATERRORENUM = _descriptor.Descriptor( + name='StringFormatErrorEnum', + full_name='google.ads.googleads.v0.errors.StringFormatErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _STRINGFORMATERRORENUM_STRINGFORMATERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=98, + serialized_end=211, +) + +_STRINGFORMATERRORENUM_STRINGFORMATERROR.containing_type = _STRINGFORMATERRORENUM +DESCRIPTOR.message_types_by_name['StringFormatErrorEnum'] = _STRINGFORMATERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StringFormatErrorEnum = _reflection.GeneratedProtocolMessageType('StringFormatErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _STRINGFORMATERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.string_format_error_pb2' + , + __doc__ = """Container for enum describing possible string format errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.StringFormatErrorEnum) + )) +_sym_db.RegisterMessage(StringFormatErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\026StringFormatErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/string_format_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/string_format_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/string_format_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/string_length_error_pb2.py b/google/ads/google_ads/v0/proto/errors/string_length_error_pb2.py new file mode 100644 index 000000000..c1f47772a --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/string_length_error_pb2.py @@ -0,0 +1,99 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/string_length_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/string_length_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/errors/string_length_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"g\n\x15StringLengthErrorEnum\"N\n\x11StringLengthError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12\r\n\tTOO_SHORT\x10\x02\x12\x0c\n\x08TOO_LONG\x10\x03\x42\xcc\x01\n\"com.google.ads.googleads.v0.errorsB\x16StringLengthErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_STRINGLENGTHERRORENUM_STRINGLENGTHERROR = _descriptor.EnumDescriptor( + name='StringLengthError', + full_name='google.ads.googleads.v0.errors.StringLengthErrorEnum.StringLengthError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_SHORT', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TOO_LONG', index=3, number=3, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=123, + serialized_end=201, +) +_sym_db.RegisterEnumDescriptor(_STRINGLENGTHERRORENUM_STRINGLENGTHERROR) + + +_STRINGLENGTHERRORENUM = _descriptor.Descriptor( + name='StringLengthErrorEnum', + full_name='google.ads.googleads.v0.errors.StringLengthErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _STRINGLENGTHERRORENUM_STRINGLENGTHERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=98, + serialized_end=201, +) + +_STRINGLENGTHERRORENUM_STRINGLENGTHERROR.containing_type = _STRINGLENGTHERRORENUM +DESCRIPTOR.message_types_by_name['StringLengthErrorEnum'] = _STRINGLENGTHERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StringLengthErrorEnum = _reflection.GeneratedProtocolMessageType('StringLengthErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _STRINGLENGTHERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.string_length_error_pb2' + , + __doc__ = """Container for enum describing possible string length errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.StringLengthErrorEnum) + )) +_sym_db.RegisterMessage(StringLengthErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\026StringLengthErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/string_length_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/string_length_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/string_length_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/errors/url_field_error_pb2.py b/google/ads/google_ads/v0/proto/errors/url_field_error_pb2.py new file mode 100644 index 000000000..10837b138 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/url_field_error_pb2.py @@ -0,0 +1,267 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/errors/url_field_error.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/errors/url_field_error.proto', + package='google.ads.googleads.v0.errors', + syntax='proto3', + serialized_pb=_b('\n:google/ads/googleads_v0/proto/errors/url_field_error.proto\x12\x1egoogle.ads.googleads.v0.errors\"\xd7\x0c\n\x11UrlFieldErrorEnum\"\xc1\x0c\n\rUrlFieldError\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0b\n\x07UNKNOWN\x10\x01\x12!\n\x1dINVALID_TRACKING_URL_TEMPLATE\x10\x02\x12(\n$INVALID_TAG_IN_TRACKING_URL_TEMPLATE\x10\x03\x12%\n!MISSING_TRACKING_URL_TEMPLATE_TAG\x10\x04\x12-\n)MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE\x10\x05\x12-\n)INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE\x10\x06\x12#\n\x1fMALFORMED_TRACKING_URL_TEMPLATE\x10\x07\x12)\n%MISSING_HOST_IN_TRACKING_URL_TEMPLATE\x10\x08\x12(\n$INVALID_TLD_IN_TRACKING_URL_TEMPLATE\x10\t\x12.\n*REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG\x10\n\x12\x15\n\x11INVALID_FINAL_URL\x10\x0b\x12\x1c\n\x18INVALID_TAG_IN_FINAL_URL\x10\x0c\x12\"\n\x1eREDUNDANT_NESTED_FINAL_URL_TAG\x10\r\x12!\n\x1dMISSING_PROTOCOL_IN_FINAL_URL\x10\x0e\x12!\n\x1dINVALID_PROTOCOL_IN_FINAL_URL\x10\x0f\x12\x17\n\x13MALFORMED_FINAL_URL\x10\x10\x12\x1d\n\x19MISSING_HOST_IN_FINAL_URL\x10\x11\x12\x1c\n\x18INVALID_TLD_IN_FINAL_URL\x10\x12\x12\x1c\n\x18INVALID_FINAL_MOBILE_URL\x10\x13\x12#\n\x1fINVALID_TAG_IN_FINAL_MOBILE_URL\x10\x14\x12)\n%REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG\x10\x15\x12(\n$MISSING_PROTOCOL_IN_FINAL_MOBILE_URL\x10\x16\x12(\n$INVALID_PROTOCOL_IN_FINAL_MOBILE_URL\x10\x17\x12\x1e\n\x1aMALFORMED_FINAL_MOBILE_URL\x10\x18\x12$\n MISSING_HOST_IN_FINAL_MOBILE_URL\x10\x19\x12#\n\x1fINVALID_TLD_IN_FINAL_MOBILE_URL\x10\x1a\x12\x19\n\x15INVALID_FINAL_APP_URL\x10\x1b\x12 \n\x1cINVALID_TAG_IN_FINAL_APP_URL\x10\x1c\x12&\n\"REDUNDANT_NESTED_FINAL_APP_URL_TAG\x10\x1d\x12 \n\x1cMULTIPLE_APP_URLS_FOR_OSTYPE\x10\x1e\x12\x12\n\x0eINVALID_OSTYPE\x10\x1f\x12 \n\x1cINVALID_PROTOCOL_FOR_APP_URL\x10 \x12\"\n\x1eINVALID_PACKAGE_ID_FOR_APP_URL\x10!\x12-\n)URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT\x10\"\x12\x32\n.INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY\x10\'\x12\x34\n0INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE\x10(\x12-\n)INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE\x10)\x12-\n)REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG\x10*\x12\x14\n\x10MISSING_PROTOCOL\x10+\x12\x0f\n\x0bINVALID_URL\x10,\x12\x1e\n\x1a\x44\x45STINATION_URL_DEPRECATED\x10-\x12\x16\n\x12INVALID_TAG_IN_URL\x10.\x12\x13\n\x0fMISSING_URL_TAG\x10/\x12\x14\n\x10\x44UPLICATE_URL_ID\x10\x30\x12\x12\n\x0eINVALID_URL_ID\x10\x31\x42\xc8\x01\n\"com.google.ads.googleads.v0.errorsB\x12UrlFieldErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\xa2\x02\x03GAA\xaa\x02\x1eGoogle.Ads.GoogleAds.V0.Errors\xca\x02\x1eGoogle\\Ads\\GoogleAds\\V0\\Errorsb\x06proto3') +) + + + +_URLFIELDERRORENUM_URLFIELDERROR = _descriptor.EnumDescriptor( + name='UrlFieldError', + full_name='google.ads.googleads.v0.errors.UrlFieldErrorEnum.UrlFieldError', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=1, number=1, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TRACKING_URL_TEMPLATE', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_TRACKING_URL_TEMPLATE', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_TRACKING_URL_TEMPLATE_TAG', index=4, number=4, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE', index=5, number=5, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE', index=6, number=6, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MALFORMED_TRACKING_URL_TEMPLATE', index=7, number=7, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_TRACKING_URL_TEMPLATE', index=8, number=8, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_TRACKING_URL_TEMPLATE', index=9, number=9, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG', index=10, number=10, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_URL', index=11, number=11, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_URL', index=12, number=12, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_URL_TAG', index=13, number=13, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_FINAL_URL', index=14, number=14, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_FINAL_URL', index=15, number=15, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MALFORMED_FINAL_URL', index=16, number=16, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_FINAL_URL', index=17, number=17, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_FINAL_URL', index=18, number=18, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_MOBILE_URL', index=19, number=19, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_MOBILE_URL', index=20, number=20, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG', index=21, number=21, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL_IN_FINAL_MOBILE_URL', index=22, number=22, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_IN_FINAL_MOBILE_URL', index=23, number=23, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MALFORMED_FINAL_MOBILE_URL', index=24, number=24, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_HOST_IN_FINAL_MOBILE_URL', index=25, number=25, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TLD_IN_FINAL_MOBILE_URL', index=26, number=26, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_FINAL_APP_URL', index=27, number=27, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_FINAL_APP_URL', index=28, number=28, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_FINAL_APP_URL_TAG', index=29, number=29, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTIPLE_APP_URLS_FOR_OSTYPE', index=30, number=30, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_OSTYPE', index=31, number=31, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PROTOCOL_FOR_APP_URL', index=32, number=32, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_PACKAGE_ID_FOR_APP_URL', index=33, number=33, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT', index=34, number=34, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY', index=35, number=39, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE', index=36, number=40, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE', index=37, number=41, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG', index=38, number=42, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_PROTOCOL', index=39, number=43, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_URL', index=40, number=44, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DESTINATION_URL_DEPRECATED', index=41, number=45, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_TAG_IN_URL', index=42, number=46, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MISSING_URL_TAG', index=43, number=47, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUPLICATE_URL_ID', index=44, number=48, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INVALID_URL_ID', index=45, number=49, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=117, + serialized_end=1718, +) +_sym_db.RegisterEnumDescriptor(_URLFIELDERRORENUM_URLFIELDERROR) + + +_URLFIELDERRORENUM = _descriptor.Descriptor( + name='UrlFieldErrorEnum', + full_name='google.ads.googleads.v0.errors.UrlFieldErrorEnum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _URLFIELDERRORENUM_URLFIELDERROR, + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=95, + serialized_end=1718, +) + +_URLFIELDERRORENUM_URLFIELDERROR.containing_type = _URLFIELDERRORENUM +DESCRIPTOR.message_types_by_name['UrlFieldErrorEnum'] = _URLFIELDERRORENUM +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +UrlFieldErrorEnum = _reflection.GeneratedProtocolMessageType('UrlFieldErrorEnum', (_message.Message,), dict( + DESCRIPTOR = _URLFIELDERRORENUM, + __module__ = 'google.ads.googleads_v0.proto.errors.url_field_error_pb2' + , + __doc__ = """Container for enum describing possible url field errors. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.errors.UrlFieldErrorEnum) + )) +_sym_db.RegisterMessage(UrlFieldErrorEnum) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"com.google.ads.googleads.v0.errorsB\022UrlFieldErrorProtoP\001ZDgoogle.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors\242\002\003GAA\252\002\036Google.Ads.GoogleAds.V0.Errors\312\002\036Google\\Ads\\GoogleAds\\V0\\Errors')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/errors/url_field_error_pb2_grpc.py b/google/ads/google_ads/v0/proto/errors/url_field_error_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/errors/url_field_error_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/__init__.py b/google/ads/google_ads/v0/proto/resources/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/proto/resources/ad_group_ad_pb2.py b/google/ads/google_ads/v0/proto/resources/ad_group_ad_pb2.py new file mode 100644 index 000000000..978e5b0dd --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_group_ad_pb2.py @@ -0,0 +1,116 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/ad_group_ad.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import ad_group_ad_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__ad__status__pb2 +from google.ads.google_ads.v0.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/ad_group_ad.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n9google/ads/googleads_v0/proto/resources/ad_group_ad.proto\x12!google.ads.googleads.v0.resources\x1agoogle/ads/googleads_v0/proto/enums/quality_score_bucket.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xbc\x12\n\x10\x41\x64GroupCriterion\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x31\n\x0c\x63riterion_id\x18\x1a \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12`\n\x06status\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v0.enums.AdGroupCriterionStatusEnum.AdGroupCriterionStatus\x12U\n\x0cquality_info\x18\x04 \x01(\x0b\x32?.google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo\x12.\n\x08\x61\x64_group\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12L\n\x04type\x18\x19 \x01(\x0e\x32>.google.ads.googleads.v0.enums.CriterionTypeEnum.CriterionType\x12,\n\x08negative\x18\x1f \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x33\n\x0e\x63pc_bid_micros\x18\x10 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x33\n\x0e\x63pm_bid_micros\x18\x11 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x33\n\x0e\x63pv_bid_micros\x18\x18 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16percent_cpc_bid_micros\x18! \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12=\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_micros\x18\x12 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12=\n\x18\x65\x66\x66\x65\x63tive_cpm_bid_micros\x18\x13 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12=\n\x18\x65\x66\x66\x65\x63tive_cpv_bid_micros\x18\x14 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x45\n effective_percent_cpc_bid_micros\x18\" \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12`\n\x18\x65\x66\x66\x65\x63tive_cpc_bid_source\x18\x15 \x01(\x0e\x32>.google.ads.googleads.v0.enums.BiddingSourceEnum.BiddingSource\x12`\n\x18\x65\x66\x66\x65\x63tive_cpm_bid_source\x18\x16 \x01(\x0e\x32>.google.ads.googleads.v0.enums.BiddingSourceEnum.BiddingSource\x12`\n\x18\x65\x66\x66\x65\x63tive_cpv_bid_source\x18\x17 \x01(\x0e\x32>.google.ads.googleads.v0.enums.BiddingSourceEnum.BiddingSource\x12h\n effective_percent_cpc_bid_source\x18# \x01(\x0e\x32>.google.ads.googleads.v0.enums.BiddingSourceEnum.BiddingSource\x12\x61\n\x12position_estimates\x18\n \x01(\x0b\x32\x45.google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates\x12\x30\n\nfinal_urls\x18\x0b \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\x0e \x03(\x0b\x32/.google.ads.googleads.v0.common.CustomParameter\x12>\n\x07keyword\x18\x1b \x01(\x0b\x32+.google.ads.googleads.v0.common.KeywordInfoH\x00\x12I\n\rlisting_group\x18 \x01(\x0b\x32\x30.google.ads.googleads.v0.common.ListingGroupInfoH\x00\x1a\xff\x02\n\x0bQualityInfo\x12\x32\n\rquality_score\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12h\n\x16\x63reative_quality_score\x18\x02 \x01(\x0e\x32H.google.ads.googleads.v0.enums.QualityScoreBucketEnum.QualityScoreBucket\x12j\n\x18post_click_quality_score\x18\x03 \x01(\x0e\x32H.google.ads.googleads.v0.enums.QualityScoreBucketEnum.QualityScoreBucket\x12\x66\n\x14search_predicted_ctr\x18\x04 \x01(\x0e\x32H.google.ads.googleads.v0.enums.QualityScoreBucketEnum.QualityScoreBucket\x1a\xcc\x01\n\x11PositionEstimates\x12:\n\x15\x66irst_page_cpc_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x19\x66irst_position_cpc_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x16top_of_page_cpc_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x0b\n\tcriterionB\xda\x01\n%com.google.ads.googleads.v0.resourcesB\x15\x41\x64GroupCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__criterion__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__source__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_quality__score__bucket__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_ADGROUPCRITERION_QUALITYINFO = _descriptor.Descriptor( + name='QualityInfo', + full_name='google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='quality_score', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo.quality_score', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='creative_quality_score', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo.creative_quality_score', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='post_click_quality_score', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo.post_click_quality_score', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='search_predicted_ctr', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo.search_predicted_ctr', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2260, + serialized_end=2643, +) + +_ADGROUPCRITERION_POSITIONESTIMATES = _descriptor.Descriptor( + name='PositionEstimates', + full_name='google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='first_page_cpc_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates.first_page_cpc_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='first_position_cpc_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates.first_position_cpc_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='top_of_page_cpc_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates.top_of_page_cpc_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2646, + serialized_end=2850, +) + +_ADGROUPCRITERION = _descriptor.Descriptor( + name='AdGroupCriterion', + full_name='google.ads.googleads.v0.resources.AdGroupCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.criterion_id', index=1, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.status', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='quality_info', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.quality_info', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.ad_group', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.type', index=5, + number=25, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='negative', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.negative', index=6, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.cpc_bid_micros', index=7, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpm_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.cpm_bid_micros', index=8, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpv_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.cpv_bid_micros', index=9, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='percent_cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.percent_cpc_bid_micros', index=10, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpc_bid_micros', index=11, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpm_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpm_bid_micros', index=12, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpv_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpv_bid_micros', index=13, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_percent_cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_percent_cpc_bid_micros', index=14, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpc_bid_source', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpc_bid_source', index=15, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpm_bid_source', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpm_bid_source', index=16, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_cpv_bid_source', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_cpv_bid_source', index=17, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='effective_percent_cpc_bid_source', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.effective_percent_cpc_bid_source', index=18, + number=35, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='position_estimates', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.position_estimates', index=19, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.final_urls', index=20, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.tracking_url_template', index=21, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.url_custom_parameters', index=22, + number=14, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.keyword', index=23, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='listing_group', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.listing_group', index=24, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_ADGROUPCRITERION_QUALITYINFO, _ADGROUPCRITERION_POSITIONESTIMATES, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v0.resources.AdGroupCriterion.criterion', + index=0, containing_type=None, fields=[]), + ], + serialized_start=499, + serialized_end=2863, +) + +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['quality_score'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['creative_quality_score'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['post_click_quality_score'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.fields_by_name['search_predicted_ctr'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_quality__score__bucket__pb2._QUALITYSCOREBUCKETENUM_QUALITYSCOREBUCKET +_ADGROUPCRITERION_QUALITYINFO.containing_type = _ADGROUPCRITERION +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_page_cpc_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['first_position_cpc_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION_POSITIONESTIMATES.fields_by_name['top_of_page_cpc_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION_POSITIONESTIMATES.containing_type = _ADGROUPCRITERION +_ADGROUPCRITERION.fields_by_name['criterion_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__criterion__status__pb2._ADGROUPCRITERIONSTATUSENUM_ADGROUPCRITERIONSTATUS +_ADGROUPCRITERION.fields_by_name['quality_info'].message_type = _ADGROUPCRITERION_QUALITYINFO +_ADGROUPCRITERION.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPCRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_ADGROUPCRITERION.fields_by_name['negative'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_ADGROUPCRITERION.fields_by_name['cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['cpm_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['cpv_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['percent_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUPCRITERION.fields_by_name['effective_cpc_bid_source'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_cpm_bid_source'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_cpv_bid_source'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['effective_percent_cpc_bid_source'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__source__pb2._BIDDINGSOURCEENUM_BIDDINGSOURCE +_ADGROUPCRITERION.fields_by_name['position_estimates'].message_type = _ADGROUPCRITERION_POSITIONESTIMATES +_ADGROUPCRITERION.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPCRITERION.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUPCRITERION.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_ADGROUPCRITERION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_ADGROUPCRITERION.fields_by_name['listing_group'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2._LISTINGGROUPINFO +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['keyword']) +_ADGROUPCRITERION.fields_by_name['keyword'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +_ADGROUPCRITERION.oneofs_by_name['criterion'].fields.append( + _ADGROUPCRITERION.fields_by_name['listing_group']) +_ADGROUPCRITERION.fields_by_name['listing_group'].containing_oneof = _ADGROUPCRITERION.oneofs_by_name['criterion'] +DESCRIPTOR.message_types_by_name['AdGroupCriterion'] = _ADGROUPCRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroupCriterion = _reflection.GeneratedProtocolMessageType('AdGroupCriterion', (_message.Message,), dict( + + QualityInfo = _reflection.GeneratedProtocolMessageType('QualityInfo', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPCRITERION_QUALITYINFO, + __module__ = 'google.ads.googleads_v0.proto.resources.ad_group_criterion_pb2' + , + __doc__ = """A container for ad group criterion quality information. + + + Attributes: + quality_score: + The quality score. This field may not be populated if Google + does not have enough information to determine a value. + creative_quality_score: + The performance of the ad compared to other advertisers. + post_click_quality_score: + The quality score of the landing page. + search_predicted_ctr: + The click-through rate compared to that of other advertisers. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo) + )) + , + + PositionEstimates = _reflection.GeneratedProtocolMessageType('PositionEstimates', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPCRITERION_POSITIONESTIMATES, + __module__ = 'google.ads.googleads_v0.proto.resources.ad_group_criterion_pb2' + , + __doc__ = """Estimates for criterion bids at various positions. + + + Attributes: + first_page_cpc_micros: + The estimate of the CPC bid required for ad to be shown on + first page of search results. + first_position_cpc_micros: + The estimate of the CPC bid required for ad to be displayed in + first position, at the top of the first page of search + results. + top_of_page_cpc_micros: + The estimate of the CPC bid required for ad to be displayed at + the top of the first page of search results. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates) + )) + , + DESCRIPTOR = _ADGROUPCRITERION, + __module__ = 'google.ads.googleads_v0.proto.resources.ad_group_criterion_pb2' + , + __doc__ = """An ad group criterion. + + + Attributes: + resource_name: + The resource name of the ad group criterion. Ad group + criterion resource names have the form: ``customers/{customer + _id}/adGroupCriteria/{ad_group_id}_{criterion_id}`` + criterion_id: + The ID of the criterion. This field is ignored for mutates. + status: + The status of the criterion. + quality_info: + Information regarding the quality of the criterion. + ad_group: + The ad group to which the criterion belongs. This field must + not be used in WHERE clauses. + type: + The type of the criterion. + negative: + Whether to target (``false``) or exclude (``true``) the + criterion. This field is immutable. To switch a criterion + from positive to negative, remove then re-add it. + cpc_bid_micros: + The CPC (cost-per-click) bid. + cpm_bid_micros: + The CPM (cost-per-thousand viewable impressions) bid. + cpv_bid_micros: + The CPV (cost-per-view) bid. + percent_cpc_bid_micros: + The CPC bid amount, expressed as a fraction of the advertised + price for some good or service. The valid range for the + fraction is [0,1) and the value stored here is 1,000,000 \* + [fraction]. + effective_cpc_bid_micros: + The effective CPC (cost-per-click) bid. + effective_cpm_bid_micros: + The effective CPM (cost-per-thousand viewable impressions) + bid. + effective_cpv_bid_micros: + The effective CPV (cost-per-view) bid. + effective_percent_cpc_bid_micros: + The effective Percent CPC bid amount. + effective_cpc_bid_source: + Source of the effective CPC bid. + effective_cpm_bid_source: + Source of the effective CPM bid. + effective_cpv_bid_source: + Source of the effective CPV bid. + effective_percent_cpc_bid_source: + Source of the effective Percent CPC bid. + position_estimates: + Estimates for criterion bids at various positions. + final_urls: + The list of possible final URLs after all cross-domain + redirects for the ad. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + criterion: + The ad group criterion. Exactly one must be set. + keyword: + Keyword. + listing_group: + Listing group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.AdGroupCriterion) + )) +_sym_db.RegisterMessage(AdGroupCriterion) +_sym_db.RegisterMessage(AdGroupCriterion.QualityInfo) +_sym_db.RegisterMessage(AdGroupCriterion.PositionEstimates) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\025AdGroupCriterionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/ad_group_criterion_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/ad_group_criterion_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_group_criterion_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/ad_group_pb2.py b/google/ads/google_ads/v0/proto/resources/ad_group_pb2.py new file mode 100644 index 000000000..755d2b104 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_group_pb2.py @@ -0,0 +1,230 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/ad_group.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__status__pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/ad_group.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/resources/ad_group.proto\x12!google.ads.googleads.v0.resources\x1a;google/ads/googleads_v0/proto/common/custom_parameter.proto\x1a\x39google/ads/googleads_v0/proto/enums/ad_group_status.proto\x1a\x37google/ads/googleads_v0/proto/enums/ad_group_type.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x99\x06\n\x07\x41\x64Group\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x06status\x18\x05 \x01(\x0e\x32>.google.ads.googleads.v0.enums.AdGroupStatusEnum.AdGroupStatus\x12H\n\x04type\x18\x0c \x01(\x0e\x32:.google.ads.googleads.v0.enums.AdGroupTypeEnum.AdGroupType\x12;\n\x15tracking_url_template\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\x06 \x03(\x0b\x32/.google.ads.googleads.v0.common.CustomParameter\x12.\n\x08\x63\x61mpaign\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\x0e\x63pc_bid_micros\x18\x0e \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x33\n\x0e\x63pm_bid_micros\x18\x0f \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x33\n\x0e\x63pa_bid_micros\x18\x10 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x33\n\x0e\x63pv_bid_micros\x18\x11 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14target_roas_override\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12;\n\x16percent_cpc_bid_micros\x18\x14 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\xd1\x01\n%com.google.ads.googleads.v0.resourcesB\x0c\x41\x64GroupProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_ADGROUP = _descriptor.Descriptor( + name='AdGroup', + full_name='google.ads.googleads.v0.resources.AdGroup', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.AdGroup.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.AdGroup.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.AdGroup.name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v0.resources.AdGroup.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.resources.AdGroup.type', index=4, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v0.resources.AdGroup.tracking_url_template', index=5, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v0.resources.AdGroup.url_custom_parameters', index=6, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v0.resources.AdGroup.campaign', index=7, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroup.cpc_bid_micros', index=8, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpm_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroup.cpm_bid_micros', index=9, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpa_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroup.cpa_bid_micros', index=10, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpv_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroup.cpv_bid_micros', index=11, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_roas_override', full_name='google.ads.googleads.v0.resources.AdGroup.target_roas_override', index=12, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='percent_cpc_bid_micros', full_name='google.ads.googleads.v0.resources.AdGroup.percent_cpc_bid_micros', index=13, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=303, + serialized_end=1096, +) + +_ADGROUP.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUP.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUP.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__status__pb2._ADGROUPSTATUSENUM_ADGROUPSTATUS +_ADGROUP.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__group__type__pb2._ADGROUPTYPEENUM_ADGROUPTYPE +_ADGROUP.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUP.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_ADGROUP.fields_by_name['campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_ADGROUP.fields_by_name['cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUP.fields_by_name['cpm_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUP.fields_by_name['cpa_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUP.fields_by_name['cpv_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_ADGROUP.fields_by_name['target_roas_override'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE +_ADGROUP.fields_by_name['percent_cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['AdGroup'] = _ADGROUP +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +AdGroup = _reflection.GeneratedProtocolMessageType('AdGroup', (_message.Message,), dict( + DESCRIPTOR = _ADGROUP, + __module__ = 'google.ads.googleads_v0.proto.resources.ad_group_pb2' + , + __doc__ = """An ad group. + + + Attributes: + resource_name: + The resource name of the ad group. Ad group resource names + have the form: + ``customers/{customer_id}/adGroups/{ad_group_id}`` + id: + The ID of the ad group. + name: + The name of the ad group. This field is required and should + not be empty when creating new ad groups. It must contain + fewer than 255 UTF-8 full-width characters. It must not + contain any null (code point 0x0), NL line feed (code point + 0xA) or carriage return (code point 0xD) characters. + status: + The status of the ad group. + type: + The type of the ad group. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + campaign: + The campaign to which the ad group belongs. This field must + not be used in WHERE clauses. + cpc_bid_micros: + The maximum CPC (cost-per-click) bid. + cpm_bid_micros: + The maximum CPM (cost-per-thousand viewable impressions) bid. + cpa_bid_micros: + The target cost-per-acquisition (conversion) bid. + cpv_bid_micros: + The CPV (cost-per-view) bid. + target_roas_override: + The target return on ad spend (ROAS) override. If the ad + group's campaign bidding strategy is a standard Target ROAS + strategy, then this field overrides the target ROAS specified + in the campaign's bidding strategy. Otherwise, this value is + ignored. + percent_cpc_bid_micros: + The percent cpc bid amount, expressed as a fraction of the + advertised price for some good or service. The valid range for + the fraction is [0,1) and the value stored here is 1,000,000 + \* [fraction]. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.AdGroup) + )) +_sym_db.RegisterMessage(AdGroup) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\014AdGroupProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/ad_group_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/ad_group_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_group_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/ad_pb2.py b/google/ads/google_ads/v0/proto/resources/ad_pb2.py new file mode 100644 index 000000000..518084479 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_pb2.py @@ -0,0 +1,251 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/ad.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import ad_type_infos_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2 +from google.ads.google_ads.v0.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v0.proto.enums import ad_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/ad.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n0google/ads/googleads_v0/proto/resources/ad.proto\x12!google.ads.googleads.v0.resources\x1a\x38google/ads/googleads_v0/proto/common/ad_type_infos.proto\x1a;google/ads/googleads_v0/proto/common/custom_parameter.proto\x1a\x31google/ads/googleads_v0/proto/enums/ad_type.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xca\x07\n\x02\x41\x64\x12\'\n\x02id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x30\n\nfinal_urls\x18\x02 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x66inal_mobile_urls\x18\x10 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\n \x03(\x0b\x32/.google.ads.googleads.v0.common.CustomParameter\x12\x31\n\x0b\x64isplay_url\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12>\n\x04type\x18\x05 \x01(\x0e\x32\x30.google.ads.googleads.v0.enums.AdTypeEnum.AdType\x12=\n\x07text_ad\x18\x06 \x01(\x0b\x32*.google.ads.googleads.v0.common.TextAdInfoH\x00\x12N\n\x10\x65xpanded_text_ad\x18\x07 \x01(\x0b\x32\x32.google.ads.googleads.v0.common.ExpandedTextAdInfoH\x00\x12P\n\x11\x64ynamic_search_ad\x18\x08 \x01(\x0b\x32\x33.google.ads.googleads.v0.common.DynamicSearchAdInfoH\x00\x12X\n\x15responsive_display_ad\x18\t \x01(\x0b\x32\x37.google.ads.googleads.v0.common.ResponsiveDisplayAdInfoH\x00\x12\x46\n\x0c\x63\x61ll_only_ad\x18\r \x01(\x0b\x32..google.ads.googleads.v0.common.CallOnlyAdInfoH\x00\x12\x61\n\x1a\x65xpanded_dynamic_search_ad\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v0.common.ExpandedDynamicSearchAdInfoH\x00\x12?\n\x08hotel_ad\x18\x0f \x01(\x0b\x32+.google.ads.googleads.v0.common.HotelAdInfoH\x00\x42\t\n\x07\x61\x64_dataB\xcc\x01\n%com.google.ads.googleads.v0.resourcesB\x07\x41\x64ProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_AD = _descriptor.Descriptor( + name='Ad', + full_name='google.ads.googleads.v0.resources.Ad', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.Ad.id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='final_urls', full_name='google.ads.googleads.v0.resources.Ad.final_urls', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='final_mobile_urls', full_name='google.ads.googleads.v0.resources.Ad.final_mobile_urls', index=2, + number=16, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v0.resources.Ad.tracking_url_template', index=3, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v0.resources.Ad.url_custom_parameters', index=4, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='display_url', full_name='google.ads.googleads.v0.resources.Ad.display_url', index=5, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.resources.Ad.type', index=6, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='text_ad', full_name='google.ads.googleads.v0.resources.Ad.text_ad', index=7, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expanded_text_ad', full_name='google.ads.googleads.v0.resources.Ad.expanded_text_ad', index=8, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dynamic_search_ad', full_name='google.ads.googleads.v0.resources.Ad.dynamic_search_ad', index=9, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='responsive_display_ad', full_name='google.ads.googleads.v0.resources.Ad.responsive_display_ad', index=10, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='call_only_ad', full_name='google.ads.googleads.v0.resources.Ad.call_only_ad', index=11, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expanded_dynamic_search_ad', full_name='google.ads.googleads.v0.resources.Ad.expanded_dynamic_search_ad', index=12, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_ad', full_name='google.ads.googleads.v0.resources.Ad.hotel_ad', index=13, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='ad_data', full_name='google.ads.googleads.v0.resources.Ad.ad_data', + index=0, containing_type=None, fields=[]), + ], + serialized_start=290, + serialized_end=1260, +) + +_AD.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_AD.fields_by_name['final_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AD.fields_by_name['final_mobile_urls'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AD.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AD.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_AD.fields_by_name['display_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_AD.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__type__pb2._ADTYPEENUM_ADTYPE +_AD.fields_by_name['text_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._TEXTADINFO +_AD.fields_by_name['expanded_text_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._EXPANDEDTEXTADINFO +_AD.fields_by_name['dynamic_search_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._DYNAMICSEARCHADINFO +_AD.fields_by_name['responsive_display_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._RESPONSIVEDISPLAYADINFO +_AD.fields_by_name['call_only_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._CALLONLYADINFO +_AD.fields_by_name['expanded_dynamic_search_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._EXPANDEDDYNAMICSEARCHADINFO +_AD.fields_by_name['hotel_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_ad__type__infos__pb2._HOTELADINFO +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['text_ad']) +_AD.fields_by_name['text_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['expanded_text_ad']) +_AD.fields_by_name['expanded_text_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['dynamic_search_ad']) +_AD.fields_by_name['dynamic_search_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['responsive_display_ad']) +_AD.fields_by_name['responsive_display_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['call_only_ad']) +_AD.fields_by_name['call_only_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['expanded_dynamic_search_ad']) +_AD.fields_by_name['expanded_dynamic_search_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +_AD.oneofs_by_name['ad_data'].fields.append( + _AD.fields_by_name['hotel_ad']) +_AD.fields_by_name['hotel_ad'].containing_oneof = _AD.oneofs_by_name['ad_data'] +DESCRIPTOR.message_types_by_name['Ad'] = _AD +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Ad = _reflection.GeneratedProtocolMessageType('Ad', (_message.Message,), dict( + DESCRIPTOR = _AD, + __module__ = 'google.ads.googleads_v0.proto.resources.ad_pb2' + , + __doc__ = """An ad. + + + Attributes: + id: + The ID of the ad. + final_urls: + The list of possible final URLs after all cross-domain + redirects for the ad. + final_mobile_urls: + The list of possible final mobile URLs after all cross-domain + redirects for the ad. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings that can be used to substitute custom + parameter tags in a ``tracking_url_template``, ``final_urls``, + or ``mobile_final_urls``. + display_url: + The URL that appears in the ad description for some ad + formats. + type: + The type of ad. + ad_data: + Details pertinent to the ad type. Exactly one value must be + set. + text_ad: + Details pertaining to a text ad. + expanded_text_ad: + Details pertaining to an expanded text ad. + dynamic_search_ad: + Details pertaining to a Dynamic Search Ad. + responsive_display_ad: + Details pertaining to a responsive display ad. + call_only_ad: + Details pertaining to a call-only ad. + expanded_dynamic_search_ad: + Details pertaining to an Expanded Dynamic Search Ad. This type + of ad has its headline, final URLs, and display URL auto- + generated at serving time according to domain name specific + information provided by ``dynamic_search_ads_setting`` linked + at the campaign level. + hotel_ad: + Details pertaining to a hotel ad. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Ad) + )) +_sym_db.RegisterMessage(Ad) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\007AdProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/ad_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/ad_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/ad_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2.py b/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2.py new file mode 100644 index 000000000..61cc5c1c1 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2.py @@ -0,0 +1,212 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/bidding_strategy.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import bidding_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2 +from google.ads.google_ads.v0.proto.enums import bidding_strategy_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/bidding_strategy.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/resources/bidding_strategy.proto\x12!google.ads.googleads.v0.resources\x1a\x32google/ads/googleads_v0/proto/common/bidding.proto\x1a?google/ads/googleads_v0/proto/enums/bidding_strategy_type.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x91\x05\n\x0f\x42iddingStrategy\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12X\n\x04type\x18\x05 \x01(\x0e\x32J.google.ads.googleads.v0.enums.BiddingStrategyTypeEnum.BiddingStrategyType\x12\x43\n\x0c\x65nhanced_cpc\x18\x07 \x01(\x0b\x32+.google.ads.googleads.v0.common.EnhancedCpcH\x00\x12L\n\x11page_one_promoted\x18\x08 \x01(\x0b\x32/.google.ads.googleads.v0.common.PageOnePromotedH\x00\x12?\n\ntarget_cpa\x18\t \x01(\x0b\x32).google.ads.googleads.v0.common.TargetCpaH\x00\x12R\n\x14target_outrank_share\x18\n \x01(\x0b\x32\x32.google.ads.googleads.v0.common.TargetOutrankShareH\x00\x12\x41\n\x0btarget_roas\x18\x0b \x01(\x0b\x32*.google.ads.googleads.v0.common.TargetRoasH\x00\x12\x43\n\x0ctarget_spend\x18\x0c \x01(\x0b\x32+.google.ads.googleads.v0.common.TargetSpendH\x00\x42\x08\n\x06schemeB\xd9\x01\n%com.google.ads.googleads.v0.resourcesB\x14\x42iddingStrategyProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_BIDDINGSTRATEGY = _descriptor.Descriptor( + name='BiddingStrategy', + full_name='google.ads.googleads.v0.resources.BiddingStrategy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.BiddingStrategy.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.BiddingStrategy.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.BiddingStrategy.name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.resources.BiddingStrategy.type', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='enhanced_cpc', full_name='google.ads.googleads.v0.resources.BiddingStrategy.enhanced_cpc', index=4, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_one_promoted', full_name='google.ads.googleads.v0.resources.BiddingStrategy.page_one_promoted', index=5, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_cpa', full_name='google.ads.googleads.v0.resources.BiddingStrategy.target_cpa', index=6, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_outrank_share', full_name='google.ads.googleads.v0.resources.BiddingStrategy.target_outrank_share', index=7, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v0.resources.BiddingStrategy.target_roas', index=8, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_spend', full_name='google.ads.googleads.v0.resources.BiddingStrategy.target_spend', index=9, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='scheme', full_name='google.ads.googleads.v0.resources.BiddingStrategy.scheme', + index=0, containing_type=None, fields=[]), + ], + serialized_start=251, + serialized_end=908, +) + +_BIDDINGSTRATEGY.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_BIDDINGSTRATEGY.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_BIDDINGSTRATEGY.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2._BIDDINGSTRATEGYTYPEENUM_BIDDINGSTRATEGYTYPE +_BIDDINGSTRATEGY.fields_by_name['enhanced_cpc'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._ENHANCEDCPC +_BIDDINGSTRATEGY.fields_by_name['page_one_promoted'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._PAGEONEPROMOTED +_BIDDINGSTRATEGY.fields_by_name['target_cpa'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETCPA +_BIDDINGSTRATEGY.fields_by_name['target_outrank_share'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETOUTRANKSHARE +_BIDDINGSTRATEGY.fields_by_name['target_roas'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETROAS +_BIDDINGSTRATEGY.fields_by_name['target_spend'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETSPEND +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['enhanced_cpc']) +_BIDDINGSTRATEGY.fields_by_name['enhanced_cpc'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['page_one_promoted']) +_BIDDINGSTRATEGY.fields_by_name['page_one_promoted'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_cpa']) +_BIDDINGSTRATEGY.fields_by_name['target_cpa'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_outrank_share']) +_BIDDINGSTRATEGY.fields_by_name['target_outrank_share'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_roas']) +_BIDDINGSTRATEGY.fields_by_name['target_roas'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +_BIDDINGSTRATEGY.oneofs_by_name['scheme'].fields.append( + _BIDDINGSTRATEGY.fields_by_name['target_spend']) +_BIDDINGSTRATEGY.fields_by_name['target_spend'].containing_oneof = _BIDDINGSTRATEGY.oneofs_by_name['scheme'] +DESCRIPTOR.message_types_by_name['BiddingStrategy'] = _BIDDINGSTRATEGY +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BiddingStrategy = _reflection.GeneratedProtocolMessageType('BiddingStrategy', (_message.Message,), dict( + DESCRIPTOR = _BIDDINGSTRATEGY, + __module__ = 'google.ads.googleads_v0.proto.resources.bidding_strategy_pb2' + , + __doc__ = """A bidding strategy. + + + Attributes: + resource_name: + The resource name of the bidding strategy. Bidding strategy + resource names have the form: ``customers/{customer_id}/biddi + ngStrategies/{bidding_strategy_id}`` + id: + The ID of the bidding strategy. + name: + The name of the bidding strategy. All bidding strategies + within an account must be named distinctly. The length of + this string should be between 1 and 255, inclusive, in UTF-8 + bytes, (trimmed). + type: + The type of the bidding strategy. Create a bidding strategy by + setting the bidding scheme. This field is read-only. + scheme: + The bidding scheme. Only one can be set. + enhanced_cpc: + A bidding strategy that raises bids for clicks that seem more + likely to lead to a conversion and lowers them for clicks + where they seem less likely. + page_one_promoted: + A bidding strategy that sets max CPC bids to target + impressions on page one or page one promoted slots on + google.com. + target_cpa: + A bidding strategy that sets bids to help get as many + conversions as possible at the target cost-per-acquisition + (CPA) you set. + target_outrank_share: + A bidding strategy that sets bids based on the target fraction + of auctions where the advertiser should outrank a specific + competitor. + target_roas: + A bidding strategy that helps you maximize revenue while + averaging a specific target Return On Ad Spend (ROAS). + target_spend: + A bid strategy that sets your bids to help get as many clicks + as possible within your budget. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.BiddingStrategy) + )) +_sym_db.RegisterMessage(BiddingStrategy) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\024BiddingStrategyProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/bidding_strategy_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2.py b/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2.py new file mode 100644 index 000000000..e828ac1cd --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2.py @@ -0,0 +1,179 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/campaign_budget.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import budget_delivery_method_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__delivery__method__pb2 +from google.ads.google_ads.v0.proto.enums import budget_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__status__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/campaign_budget.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/resources/campaign_budget.proto\x12!google.ads.googleads.v0.resources\x1a@google/ads/googleads_v0/proto/enums/budget_delivery_method.proto\x1a\x37google/ads/googleads_v0/proto/enums/budget_status.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xd2\x03\n\x0e\x43\x61mpaignBudget\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\ramount_micros\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12L\n\x06status\x18\x06 \x01(\x0e\x32<.google.ads.googleads.v0.enums.BudgetStatusEnum.BudgetStatus\x12\x65\n\x0f\x64\x65livery_method\x18\x07 \x01(\x0e\x32L.google.ads.googleads.v0.enums.BudgetDeliveryMethodEnum.BudgetDeliveryMethod\x12\x35\n\x11\x65xplicitly_shared\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x34\n\x0freference_count\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\xd8\x01\n%com.google.ads.googleads.v0.resourcesB\x13\x43\x61mpaignBudgetProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__delivery__method__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__status__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNBUDGET = _descriptor.Descriptor( + name='CampaignBudget', + full_name='google.ads.googleads.v0.resources.CampaignBudget', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.CampaignBudget.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.CampaignBudget.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.CampaignBudget.name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='amount_micros', full_name='google.ads.googleads.v0.resources.CampaignBudget.amount_micros', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v0.resources.CampaignBudget.status', index=4, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delivery_method', full_name='google.ads.googleads.v0.resources.CampaignBudget.delivery_method', index=5, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='explicitly_shared', full_name='google.ads.googleads.v0.resources.CampaignBudget.explicitly_shared', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='reference_count', full_name='google.ads.googleads.v0.resources.CampaignBudget.reference_count', index=7, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=256, + serialized_end=722, +) + +_CAMPAIGNBUDGET.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGNBUDGET.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNBUDGET.fields_by_name['amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGNBUDGET.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__status__pb2._BUDGETSTATUSENUM_BUDGETSTATUS +_CAMPAIGNBUDGET.fields_by_name['delivery_method'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_budget__delivery__method__pb2._BUDGETDELIVERYMETHODENUM_BUDGETDELIVERYMETHOD +_CAMPAIGNBUDGET.fields_by_name['explicitly_shared'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGNBUDGET.fields_by_name['reference_count'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +DESCRIPTOR.message_types_by_name['CampaignBudget'] = _CAMPAIGNBUDGET +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignBudget = _reflection.GeneratedProtocolMessageType('CampaignBudget', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNBUDGET, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_budget_pb2' + , + __doc__ = """A campaign budget. + + + Attributes: + resource_name: + The resource name of the campaign budget. Campaign budget + resource names have the form: + ``customers/{customer_id}/campaignBudgets/{budget_id}`` + id: + The ID of the campaign budget. A campaign budget is created + using the CampaignBudgetService create operation and is + assigned a budget ID. A budget ID can be shared across + different campaigns; the system will then allocate the + campaign budget among different campaigns to get optimum + results. + name: + The name of the campaign budget. When creating a campaign + budget through CampaignBudgetService, every explicitly shared + campaign budget must have a non-null, non-empty name. Campaign + budgets that are not explicitly shared derive their name from + the attached campaign's name. The length of this string must + be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed). + amount_micros: + The amount of the budget, in the local currency for the + account. Amount is specified in micros, where one million is + equivalent to one currency unit. + status: + The status of this campaign budget. This field is read-only. + delivery_method: + The delivery method that determines the rate at which the + campaign budget is spent. Defaults to STANDARD if unspecified + in a create operation. + explicitly_shared: + Whether the budget is explicitly shared. This field is set to + false by default. If true, the budget was created with the + purpose of sharing across one or more campaigns. If false, + the budget was created with the intention of only being used + with a single campaign. The budget's name and status will stay + in sync with the campaign's name and status. Attempting to + share the budget with a second campaign will result in an + error. A non-shared budget can become an explicitly shared. + The same operation must also assign the budget a name. A + shared campaign budget can never become non-shared. + reference_count: + The number of campaigns actively using the budget. This field + is read-only. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.CampaignBudget) + )) +_sym_db.RegisterMessage(CampaignBudget) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\023CampaignBudgetProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_budget_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2.py b/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2.py new file mode 100644 index 000000000..abf2b9df0 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2.py @@ -0,0 +1,184 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/campaign_criterion.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v0.proto.enums import criterion_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_criterion__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/campaign_criterion.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n@google/ads/googleads_v0/proto/resources/campaign_criterion.proto\x12!google.ads.googleads.v0.resources\x1a\x33google/ads/googleads_v0/proto/common/criteria.proto\x1a\x38google/ads/googleads_v0/proto/enums/criterion_type.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x8d\x04\n\x11\x43\x61mpaignCriterion\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12.\n\x08\x63\x61mpaign\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0c\x63riterion_id\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x31\n\x0c\x62id_modifier\x18\x0e \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12,\n\x08negative\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12L\n\x04type\x18\x06 \x01(\x0e\x32>.google.ads.googleads.v0.enums.CriterionTypeEnum.CriterionType\x12>\n\x07keyword\x18\x08 \x01(\x0b\x32+.google.ads.googleads.v0.common.KeywordInfoH\x00\x12@\n\x08location\x18\x0c \x01(\x0b\x32,.google.ads.googleads.v0.common.LocationInfoH\x00\x12@\n\x08platform\x18\r \x01(\x0b\x32,.google.ads.googleads.v0.common.PlatformInfoH\x00\x42\x0b\n\tcriterionB\xdb\x01\n%com.google.ads.googleads.v0.resourcesB\x16\x43\x61mpaignCriterionProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_criterion__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGNCRITERION = _descriptor.Descriptor( + name='CampaignCriterion', + full_name='google.ads.googleads.v0.resources.CampaignCriterion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.CampaignCriterion.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v0.resources.CampaignCriterion.campaign', index=1, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='criterion_id', full_name='google.ads.googleads.v0.resources.CampaignCriterion.criterion_id', index=2, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bid_modifier', full_name='google.ads.googleads.v0.resources.CampaignCriterion.bid_modifier', index=3, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='negative', full_name='google.ads.googleads.v0.resources.CampaignCriterion.negative', index=4, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='google.ads.googleads.v0.resources.CampaignCriterion.type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v0.resources.CampaignCriterion.keyword', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='location', full_name='google.ads.googleads.v0.resources.CampaignCriterion.location', index=7, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='platform', full_name='google.ads.googleads.v0.resources.CampaignCriterion.platform', index=8, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='criterion', full_name='google.ads.googleads.v0.resources.CampaignCriterion.criterion', + index=0, containing_type=None, fields=[]), + ], + serialized_start=247, + serialized_end=772, +) + +_CAMPAIGNCRITERION.fields_by_name['campaign'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGNCRITERION.fields_by_name['criterion_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGNCRITERION.fields_by_name['bid_modifier'].message_type = google_dot_protobuf_dot_wrappers__pb2._FLOATVALUE +_CAMPAIGNCRITERION.fields_by_name['negative'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGNCRITERION.fields_by_name['type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_criterion__type__pb2._CRITERIONTYPEENUM_CRITERIONTYPE +_CAMPAIGNCRITERION.fields_by_name['keyword'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2._KEYWORDINFO +_CAMPAIGNCRITERION.fields_by_name['location'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2._LOCATIONINFO +_CAMPAIGNCRITERION.fields_by_name['platform'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2._PLATFORMINFO +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['keyword']) +_CAMPAIGNCRITERION.fields_by_name['keyword'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['location']) +_CAMPAIGNCRITERION.fields_by_name['location'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +_CAMPAIGNCRITERION.oneofs_by_name['criterion'].fields.append( + _CAMPAIGNCRITERION.fields_by_name['platform']) +_CAMPAIGNCRITERION.fields_by_name['platform'].containing_oneof = _CAMPAIGNCRITERION.oneofs_by_name['criterion'] +DESCRIPTOR.message_types_by_name['CampaignCriterion'] = _CAMPAIGNCRITERION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CampaignCriterion = _reflection.GeneratedProtocolMessageType('CampaignCriterion', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNCRITERION, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_criterion_pb2' + , + __doc__ = """A campaign criterion. + + + Attributes: + resource_name: + The resource name of the campaign criterion. Campaign + criterion resource names have the form: ``customers/{customer + _id}/campaignCriteria/{campaign_id}_{criterion_id}`` + campaign: + The campaign to which the criterion belongs. This field must + not be used in WHERE clauses. + criterion_id: + The ID of the criterion. This field is ignored during mutate. + bid_modifier: + The modifier for the bids when the criterion matches. + Allowable modifier values depend on the criterion: - 0.1 - + 10.0: Location - 0.1 - 4.0: Platform (mobile). Use 0 to opt + out of mobile. + negative: + Whether to target (``false``) or exclude (``true``) the + criterion. + type: + The type of the criterion. + criterion: + The campaign criterion. Exactly one must be set. + keyword: + Keyword. + location: + Location. + platform: + Platform. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.CampaignCriterion) + )) +_sym_db.RegisterMessage(CampaignCriterion) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\026CampaignCriterionProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_criterion_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/campaign_pb2.py b/google/ads/google_ads/v0/proto/resources/campaign_pb2.py new file mode 100644 index 000000000..a23874925 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_pb2.py @@ -0,0 +1,619 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/campaign.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import bidding_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2 +from google.ads.google_ads.v0.proto.common import custom_parameter_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2 +from google.ads.google_ads.v0.proto.enums import ad_serving_optimization_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__serving__optimization__status__pb2 +from google.ads.google_ads.v0.proto.enums import advertising_channel_sub_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2 +from google.ads.google_ads.v0.proto.enums import advertising_channel_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__type__pb2 +from google.ads.google_ads.v0.proto.enums import bidding_strategy_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2 +from google.ads.google_ads.v0.proto.enums import campaign_serving_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__serving__status__pb2 +from google.ads.google_ads.v0.proto.enums import campaign_status_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__status__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/campaign.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/resources/campaign.proto\x12!google.ads.googleads.v0.resources\x1a\x32google/ads/googleads_v0/proto/common/bidding.proto\x1a;google/ads/googleads_v0/proto/common/custom_parameter.proto\x1aHgoogle/ads/googleads_v0/proto/enums/ad_serving_optimization_status.proto\x1a\x46google/ads/googleads_v0/proto/enums/advertising_channel_sub_type.proto\x1a\x42google/ads/googleads_v0/proto/enums/advertising_channel_type.proto\x1a?google/ads/googleads_v0/proto/enums/bidding_strategy_type.proto\x1a\x41google/ads/googleads_v0/proto/enums/campaign_serving_status.proto\x1a\x39google/ads/googleads_v0/proto/enums/campaign_status.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xa6\x14\n\x08\x43\x61mpaign\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12P\n\x06status\x18\x05 \x01(\x0e\x32@.google.ads.googleads.v0.enums.CampaignStatusEnum.CampaignStatus\x12\x66\n\x0eserving_status\x18\x15 \x01(\x0e\x32N.google.ads.googleads.v0.enums.CampaignServingStatusEnum.CampaignServingStatus\x12\x82\x01\n\x1e\x61\x64_serving_optimization_status\x18\x08 \x01(\x0e\x32Z.google.ads.googleads.v0.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus\x12r\n\x18\x61\x64vertising_channel_type\x18\t \x01(\x0e\x32P.google.ads.googleads.v0.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType\x12|\n\x1c\x61\x64vertising_channel_sub_type\x18\n \x01(\x0e\x32V.google.ads.googleads.v0.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType\x12;\n\x15tracking_url_template\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12N\n\x15url_custom_parameters\x18\x0c \x03(\x0b\x32/.google.ads.googleads.v0.common.CustomParameter\x12U\n\x10network_settings\x18\x0e \x01(\x0b\x32;.google.ads.googleads.v0.resources.Campaign.NetworkSettings\x12S\n\rhotel_setting\x18 \x01(\x0b\x32<.google.ads.googleads.v0.resources.Campaign.HotelSettingInfo\x12g\n\x1a\x64ynamic_search_ads_setting\x18! \x01(\x0b\x32\x43.google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting\x12\x35\n\x0f\x63\x61mpaign_budget\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12i\n\x15\x62idding_strategy_type\x18\x16 \x01(\x0e\x32J.google.ads.googleads.v0.enums.BiddingStrategyTypeEnum.BiddingStrategyType\x12\x30\n\nstart_date\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08\x65nd_date\x18\x14 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x38\n\x10\x62idding_strategy\x18\x17 \x01(\x0b\x32\x1c.google.protobuf.StringValueH\x00\x12?\n\nmanual_cpc\x18\x18 \x01(\x0b\x32).google.ads.googleads.v0.common.ManualCpcH\x00\x12?\n\nmanual_cpm\x18\x19 \x01(\x0b\x32).google.ads.googleads.v0.common.ManualCpmH\x00\x12S\n\x14maximize_conversions\x18\x1e \x01(\x0b\x32\x33.google.ads.googleads.v0.common.MaximizeConversionsH\x00\x12\\\n\x19maximize_conversion_value\x18\x1f \x01(\x0b\x32\x37.google.ads.googleads.v0.common.MaximizeConversionValueH\x00\x12?\n\ntarget_cpa\x18\x1a \x01(\x0b\x32).google.ads.googleads.v0.common.TargetCpaH\x00\x12\x41\n\x0btarget_roas\x18\x1d \x01(\x0b\x32*.google.ads.googleads.v0.common.TargetRoasH\x00\x12\x43\n\x0ctarget_spend\x18\x1b \x01(\x0b\x32+.google.ads.googleads.v0.common.TargetSpendH\x00\x12\x41\n\x0bpercent_cpc\x18\" \x01(\x0b\x32*.google.ads.googleads.v0.common.PercentCpcH\x00\x1a\x85\x02\n\x0fNetworkSettings\x12\x38\n\x14target_google_search\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x15target_search_network\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12:\n\x16target_content_network\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x41\n\x1dtarget_partner_search_network\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x1aH\n\x10HotelSettingInfo\x12\x34\n\x0fhotel_center_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\xec\x01\n\x17\x44ynamicSearchAdsSetting\x12\x31\n\x0b\x64omain_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rlanguage_code\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x16use_supplied_urls_only\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12-\n\x08\x66\x65\x65\x64_ids\x18\x04 \x03(\x0b\x32\x1b.google.protobuf.Int64ValueB\x1b\n\x19\x63\x61mpaign_bidding_strategyB\xd2\x01\n%com.google.ads.googleads.v0.resourcesB\rCampaignProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__serving__optimization__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__serving__status__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__status__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_CAMPAIGN_NETWORKSETTINGS = _descriptor.Descriptor( + name='NetworkSettings', + full_name='google.ads.googleads.v0.resources.Campaign.NetworkSettings', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_google_search', full_name='google.ads.googleads.v0.resources.Campaign.NetworkSettings.target_google_search', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_search_network', full_name='google.ads.googleads.v0.resources.Campaign.NetworkSettings.target_search_network', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_content_network', full_name='google.ads.googleads.v0.resources.Campaign.NetworkSettings.target_content_network', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_partner_search_network', full_name='google.ads.googleads.v0.resources.Campaign.NetworkSettings.target_partner_search_network', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2639, + serialized_end=2900, +) + +_CAMPAIGN_HOTELSETTINGINFO = _descriptor.Descriptor( + name='HotelSettingInfo', + full_name='google.ads.googleads.v0.resources.Campaign.HotelSettingInfo', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='hotel_center_id', full_name='google.ads.googleads.v0.resources.Campaign.HotelSettingInfo.hotel_center_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2902, + serialized_end=2974, +) + +_CAMPAIGN_DYNAMICSEARCHADSSETTING = _descriptor.Descriptor( + name='DynamicSearchAdsSetting', + full_name='google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='domain_name', full_name='google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting.domain_name', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='language_code', full_name='google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting.language_code', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='use_supplied_urls_only', full_name='google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting.use_supplied_urls_only', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='feed_ids', full_name='google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting.feed_ids', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2977, + serialized_end=3213, +) + +_CAMPAIGN = _descriptor.Descriptor( + name='Campaign', + full_name='google.ads.googleads.v0.resources.Campaign', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.Campaign.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.Campaign.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.Campaign.name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v0.resources.Campaign.status', index=3, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='serving_status', full_name='google.ads.googleads.v0.resources.Campaign.serving_status', index=4, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_serving_optimization_status', full_name='google.ads.googleads.v0.resources.Campaign.ad_serving_optimization_status', index=5, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='advertising_channel_type', full_name='google.ads.googleads.v0.resources.Campaign.advertising_channel_type', index=6, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='advertising_channel_sub_type', full_name='google.ads.googleads.v0.resources.Campaign.advertising_channel_sub_type', index=7, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v0.resources.Campaign.tracking_url_template', index=8, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_custom_parameters', full_name='google.ads.googleads.v0.resources.Campaign.url_custom_parameters', index=9, + number=12, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='network_settings', full_name='google.ads.googleads.v0.resources.Campaign.network_settings', index=10, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hotel_setting', full_name='google.ads.googleads.v0.resources.Campaign.hotel_setting', index=11, + number=32, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dynamic_search_ads_setting', full_name='google.ads.googleads.v0.resources.Campaign.dynamic_search_ads_setting', index=12, + number=33, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v0.resources.Campaign.campaign_budget', index=13, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bidding_strategy_type', full_name='google.ads.googleads.v0.resources.Campaign.bidding_strategy_type', index=14, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='start_date', full_name='google.ads.googleads.v0.resources.Campaign.start_date', index=15, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end_date', full_name='google.ads.googleads.v0.resources.Campaign.end_date', index=16, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bidding_strategy', full_name='google.ads.googleads.v0.resources.Campaign.bidding_strategy', index=17, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='manual_cpc', full_name='google.ads.googleads.v0.resources.Campaign.manual_cpc', index=18, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='manual_cpm', full_name='google.ads.googleads.v0.resources.Campaign.manual_cpm', index=19, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='maximize_conversions', full_name='google.ads.googleads.v0.resources.Campaign.maximize_conversions', index=20, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='maximize_conversion_value', full_name='google.ads.googleads.v0.resources.Campaign.maximize_conversion_value', index=21, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_cpa', full_name='google.ads.googleads.v0.resources.Campaign.target_cpa', index=22, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_roas', full_name='google.ads.googleads.v0.resources.Campaign.target_roas', index=23, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_spend', full_name='google.ads.googleads.v0.resources.Campaign.target_spend', index=24, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='percent_cpc', full_name='google.ads.googleads.v0.resources.Campaign.percent_cpc', index=25, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_CAMPAIGN_NETWORKSETTINGS, _CAMPAIGN_HOTELSETTINGINFO, _CAMPAIGN_DYNAMICSEARCHADSSETTING, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='campaign_bidding_strategy', full_name='google.ads.googleads.v0.resources.Campaign.campaign_bidding_strategy', + index=0, containing_type=None, fields=[]), + ], + serialized_start=644, + serialized_end=3242, +) + +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_google_search'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_search_network'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_content_network'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGN_NETWORKSETTINGS.fields_by_name['target_partner_search_network'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGN_NETWORKSETTINGS.containing_type = _CAMPAIGN +_CAMPAIGN_HOTELSETTINGINFO.fields_by_name['hotel_center_id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGN_HOTELSETTINGINFO.containing_type = _CAMPAIGN +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['domain_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['language_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['use_supplied_urls_only'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CAMPAIGN_DYNAMICSEARCHADSSETTING.fields_by_name['feed_ids'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGN_DYNAMICSEARCHADSSETTING.containing_type = _CAMPAIGN +_CAMPAIGN.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CAMPAIGN.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__status__pb2._CAMPAIGNSTATUSENUM_CAMPAIGNSTATUS +_CAMPAIGN.fields_by_name['serving_status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_campaign__serving__status__pb2._CAMPAIGNSERVINGSTATUSENUM_CAMPAIGNSERVINGSTATUS +_CAMPAIGN.fields_by_name['ad_serving_optimization_status'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__serving__optimization__status__pb2._ADSERVINGOPTIMIZATIONSTATUSENUM_ADSERVINGOPTIMIZATIONSTATUS +_CAMPAIGN.fields_by_name['advertising_channel_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__type__pb2._ADVERTISINGCHANNELTYPEENUM_ADVERTISINGCHANNELTYPE +_CAMPAIGN.fields_by_name['advertising_channel_sub_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_advertising__channel__sub__type__pb2._ADVERTISINGCHANNELSUBTYPEENUM_ADVERTISINGCHANNELSUBTYPE +_CAMPAIGN.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['url_custom_parameters'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_custom__parameter__pb2._CUSTOMPARAMETER +_CAMPAIGN.fields_by_name['network_settings'].message_type = _CAMPAIGN_NETWORKSETTINGS +_CAMPAIGN.fields_by_name['hotel_setting'].message_type = _CAMPAIGN_HOTELSETTINGINFO +_CAMPAIGN.fields_by_name['dynamic_search_ads_setting'].message_type = _CAMPAIGN_DYNAMICSEARCHADSSETTING +_CAMPAIGN.fields_by_name['campaign_budget'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['bidding_strategy_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_bidding__strategy__type__pb2._BIDDINGSTRATEGYTYPEENUM_BIDDINGSTRATEGYTYPE +_CAMPAIGN.fields_by_name['start_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['end_date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['bidding_strategy'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CAMPAIGN.fields_by_name['manual_cpc'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._MANUALCPC +_CAMPAIGN.fields_by_name['manual_cpm'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._MANUALCPM +_CAMPAIGN.fields_by_name['maximize_conversions'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._MAXIMIZECONVERSIONS +_CAMPAIGN.fields_by_name['maximize_conversion_value'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._MAXIMIZECONVERSIONVALUE +_CAMPAIGN.fields_by_name['target_cpa'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETCPA +_CAMPAIGN.fields_by_name['target_roas'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETROAS +_CAMPAIGN.fields_by_name['target_spend'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._TARGETSPEND +_CAMPAIGN.fields_by_name['percent_cpc'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_bidding__pb2._PERCENTCPC +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['bidding_strategy']) +_CAMPAIGN.fields_by_name['bidding_strategy'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['manual_cpc']) +_CAMPAIGN.fields_by_name['manual_cpc'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['manual_cpm']) +_CAMPAIGN.fields_by_name['manual_cpm'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['maximize_conversions']) +_CAMPAIGN.fields_by_name['maximize_conversions'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['maximize_conversion_value']) +_CAMPAIGN.fields_by_name['maximize_conversion_value'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_cpa']) +_CAMPAIGN.fields_by_name['target_cpa'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_roas']) +_CAMPAIGN.fields_by_name['target_roas'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['target_spend']) +_CAMPAIGN.fields_by_name['target_spend'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +_CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'].fields.append( + _CAMPAIGN.fields_by_name['percent_cpc']) +_CAMPAIGN.fields_by_name['percent_cpc'].containing_oneof = _CAMPAIGN.oneofs_by_name['campaign_bidding_strategy'] +DESCRIPTOR.message_types_by_name['Campaign'] = _CAMPAIGN +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Campaign = _reflection.GeneratedProtocolMessageType('Campaign', (_message.Message,), dict( + + NetworkSettings = _reflection.GeneratedProtocolMessageType('NetworkSettings', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGN_NETWORKSETTINGS, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_pb2' + , + __doc__ = """The network settings for the campaign. + + + Attributes: + target_google_search: + Whether ads will be served with google.com search results. + target_search_network: + Whether ads will be served on partner sites in the Google + Search Network (requires ``target_google_search`` to also be + ``true``). + target_content_network: + Whether ads will be served on specified placements in the + Google Display Network. Placements are specified using the + Placement criterion. + target_partner_search_network: + Whether ads will be served on the Google Partner Network. This + is available only to some select Google partner accounts. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Campaign.NetworkSettings) + )) + , + + HotelSettingInfo = _reflection.GeneratedProtocolMessageType('HotelSettingInfo', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGN_HOTELSETTINGINFO, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_pb2' + , + __doc__ = """Campaign-level settings for hotel ads. + + + Attributes: + hotel_center_id: + The linked Hotel Center account. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Campaign.HotelSettingInfo) + )) + , + + DynamicSearchAdsSetting = _reflection.GeneratedProtocolMessageType('DynamicSearchAdsSetting', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGN_DYNAMICSEARCHADSSETTING, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_pb2' + , + __doc__ = """The setting for controlling Dynamic Search Ads (DSA). + + + Attributes: + domain_name: + The Internet domain name that this setting represents, e.g., + "google.com" or "www.google.com". + language_code: + The language code specifying the language of the domain, e.g., + "en". + use_supplied_urls_only: + Whether the campaign uses advertiser supplied URLs + exclusively. + feed_ids: + The list of page feeds associated with the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting) + )) + , + DESCRIPTOR = _CAMPAIGN, + __module__ = 'google.ads.googleads_v0.proto.resources.campaign_pb2' + , + __doc__ = """A campaign. + + + Attributes: + resource_name: + The resource name of the campaign. Campaign resource names + have the form: + ``customers/{customer_id}/campaigns/{campaign_id}`` + id: + The ID of the campaign. + name: + The name of the campaign. This field is required and should + not be empty when creating new campaigns. It must not contain + any null (code point 0x0), NL line feed (code point 0xA) or + carriage return (code point 0xD) characters. + status: + The status of the campaign. When a new campaign is added, the + status defaults to ENABLED. + serving_status: + The ad serving status of the campaign. + ad_serving_optimization_status: + The ad serving optimization status of the campaign. + advertising_channel_type: + The primary serving target for ads within the campaign. The + targeting options can be refined in ``network_settings``. Can + be set only when creating campaigns. After the campaign is + created, the field can not be changed. + advertising_channel_sub_type: + Optional refinement to ``advertising_channel_type``. Must be a + valid sub-type of the parent channel type. Can be set only + when creating campaigns. After campaign is created, the field + can not be changed. + tracking_url_template: + The URL template for constructing a tracking URL. + url_custom_parameters: + The list of mappings used to substitute custom parameter tags + in a ``tracking_url_template``, ``final_urls``, or + ``mobile_final_urls``. + network_settings: + The network settings for the campaign. + hotel_setting: + The hotel setting for the campaign. + dynamic_search_ads_setting: + The setting for controlling Dynamic Search Ads (DSA). + campaign_budget: + The budget of the campaign. This field must not be used in + WHERE clauses. + bidding_strategy_type: + The type of bidding strategy. A bidding strategy can be + created by setting either the bidding scheme to create a + standard bidding strategy or the ``bidding_strategy`` field to + create a portfolio bidding strategy. This field is read-only. + start_date: + The date when campaign started. This field must not be used + in WHERE clauses. + end_date: + The date when campaign ended. This field must not be used in + WHERE clauses. + campaign_bidding_strategy: + The bidding strategy for the campaign. Must be either + portfolio (created via BiddingStrategy service) or standard, + that is embedded into the campaign. + bidding_strategy: + Portfolio bidding strategy used by campaign. This field must + not be used in WHERE clauses. + manual_cpc: + Standard Manual CPC bidding strategy. Manual click-based + bidding where user pays per click. + manual_cpm: + Standard Manual CPM bidding strategy. Manual impression-based + bidding where user pays per thousand impressions. + maximize_conversions: + Standard Maximize Conversions bidding strategy that + automatically maximizes number of conversions given a daily + budget. + maximize_conversion_value: + Standard Maximize Conversion Value bidding strategy that + automatically sets bids to maximize revenue while spending + your budget. + target_cpa: + Standard Target CPA bidding strategy that automatically sets + bids to help get as many conversions as possible at the target + cost-per-acquisition (CPA) you set. + target_roas: + Standard Target ROAS bidding strategy that automatically + maximizes revenue while averaging a specific target return on + ad spend (ROAS). + target_spend: + Standard Target Spend bidding strategy that automatically sets + your bids to help get as many clicks as possible within your + budget. + percent_cpc: + Standard Percent Cpc bidding strategy where bids are a + fraction of the advertised price for some good or service. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Campaign) + )) +_sym_db.RegisterMessage(Campaign) +_sym_db.RegisterMessage(Campaign.NetworkSettings) +_sym_db.RegisterMessage(Campaign.HotelSettingInfo) +_sym_db.RegisterMessage(Campaign.DynamicSearchAdsSetting) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\rCampaignProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/campaign_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/campaign_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/campaign_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/customer_pb2.py b/google/ads/google_ads/v0/proto/resources/customer_pb2.py new file mode 100644 index 000000000..c7fbf0bd3 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/customer_pb2.py @@ -0,0 +1,157 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/customer.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/customer.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n6google/ads/googleads_v0/proto/resources/customer.proto\x12!google.ads.googleads.v0.resources\x1a\x1egoogle/protobuf/wrappers.proto\"\x97\x03\n\x08\x43ustomer\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x36\n\x10\x64\x65scriptive_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rcurrency_code\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\ttime_zone\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12;\n\x15tracking_url_template\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x38\n\x14\x61uto_tagging_enabled\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x36\n\x12has_partners_badge\x18\t \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\xd2\x01\n%com.google.ads.googleads.v0.resourcesB\rCustomerProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_CUSTOMER = _descriptor.Descriptor( + name='Customer', + full_name='google.ads.googleads.v0.resources.Customer', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.Customer.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.Customer.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='descriptive_name', full_name='google.ads.googleads.v0.resources.Customer.descriptive_name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='currency_code', full_name='google.ads.googleads.v0.resources.Customer.currency_code', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='time_zone', full_name='google.ads.googleads.v0.resources.Customer.time_zone', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url_template', full_name='google.ads.googleads.v0.resources.Customer.tracking_url_template', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='auto_tagging_enabled', full_name='google.ads.googleads.v0.resources.Customer.auto_tagging_enabled', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='has_partners_badge', full_name='google.ads.googleads.v0.resources.Customer.has_partners_badge', index=7, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=126, + serialized_end=533, +) + +_CUSTOMER.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_CUSTOMER.fields_by_name['descriptive_name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMER.fields_by_name['currency_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMER.fields_by_name['time_zone'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMER.fields_by_name['tracking_url_template'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_CUSTOMER.fields_by_name['auto_tagging_enabled'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_CUSTOMER.fields_by_name['has_partners_badge'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +DESCRIPTOR.message_types_by_name['Customer'] = _CUSTOMER +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Customer = _reflection.GeneratedProtocolMessageType('Customer', (_message.Message,), dict( + DESCRIPTOR = _CUSTOMER, + __module__ = 'google.ads.googleads_v0.proto.resources.customer_pb2' + , + __doc__ = """A customer. + + + Attributes: + resource_name: + The resource name of the customer. Customer resource names + have the form: ``customers/{customer_id}`` + id: + The ID of the customer. + descriptive_name: + Optional, non-unique descriptive name of the customer. + currency_code: + The currency in which the account operates. A subset of the + currency codes from the ISO 4217 standard is supported. + time_zone: + The local timezone ID of the customer. + tracking_url_template: + The URL template for constructing a tracking URL out of + parameters. + auto_tagging_enabled: + Whether auto-tagging is enabled for the customer. + has_partners_badge: + Whether the Customer has a Partners program badge. If the + Customer is not associated with the Partners program, this + will be false. For more information, see + https://support.google.com/partners/answer/3125774 + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.Customer) + )) +_sym_db.RegisterMessage(Customer) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\rCustomerProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/customer_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/customer_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/customer_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2.py b/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2.py new file mode 100644 index 000000000..2b5c6f9f6 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2.py @@ -0,0 +1,124 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/geo_target_constant.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/geo_target_constant.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\nAgoogle/ads/googleads_v0/proto/resources/geo_target_constant.proto\x12!google.ads.googleads.v0.resources\x1a\x1egoogle/protobuf/wrappers.proto\"\xe6\x01\n\x11GeoTargetConstant\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12*\n\x04name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0c\x63ountry_code\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0btarget_type\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\xdb\x01\n%com.google.ads.googleads.v0.resourcesB\x16GeoTargetConstantProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_GEOTARGETCONSTANT = _descriptor.Descriptor( + name='GeoTargetConstant', + full_name='google.ads.googleads.v0.resources.GeoTargetConstant', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.GeoTargetConstant.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='google.ads.googleads.v0.resources.GeoTargetConstant.id', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.GeoTargetConstant.name', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='country_code', full_name='google.ads.googleads.v0.resources.GeoTargetConstant.country_code', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_type', full_name='google.ads.googleads.v0.resources.GeoTargetConstant.target_type', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=137, + serialized_end=367, +) + +_GEOTARGETCONSTANT.fields_by_name['id'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_GEOTARGETCONSTANT.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GEOTARGETCONSTANT.fields_by_name['country_code'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GEOTARGETCONSTANT.fields_by_name['target_type'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +DESCRIPTOR.message_types_by_name['GeoTargetConstant'] = _GEOTARGETCONSTANT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GeoTargetConstant = _reflection.GeneratedProtocolMessageType('GeoTargetConstant', (_message.Message,), dict( + DESCRIPTOR = _GEOTARGETCONSTANT, + __module__ = 'google.ads.googleads_v0.proto.resources.geo_target_constant_pb2' + , + __doc__ = """A geo target constant. + + + Attributes: + resource_name: + The resource name of the geo target constant. Geo target + constant resource names have the form: + ``geoTargetConstants/{geo_target_constant_id}`` + id: + The ID of the geo target constant. + name: + Geo target constant English name. + country_code: + The ISO-3166-1 alpha-2 country code that is associated with + the target. + target_type: + Geo target constant target type. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.GeoTargetConstant) + )) +_sym_db.RegisterMessage(GeoTargetConstant) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\026GeoTargetConstantProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/geo_target_constant_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2.py b/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2.py new file mode 100644 index 000000000..7318441cc --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2.py @@ -0,0 +1,229 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/google_ads_field.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import google_ads_field_category_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__category__pb2 +from google.ads.google_ads.v0.proto.enums import google_ads_field_data_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__data__type__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/google_ads_field.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n>google/ads/googleads_v0/proto/resources/google_ads_field.proto\x12!google.ads.googleads.v0.resources\x1a\x43google/ads/googleads_v0/proto/enums/google_ads_field_category.proto\x1a\x44google/ads/googleads_v0/proto/enums/google_ads_field_data_type.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x8f\x06\n\x0eGoogleAdsField\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x62\n\x08\x63\x61tegory\x18\x03 \x01(\x0e\x32P.google.ads.googleads.v0.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory\x12.\n\nselectable\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12.\n\nfilterable\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12,\n\x08sortable\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x35\n\x0fselectable_with\x18\x07 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x39\n\x13\x61ttribute_resources\x18\x08 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07metrics\x18\t \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08segments\x18\n \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x65num_values\x18\x0b \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x63\n\tdata_type\x18\x0c \x01(\x0e\x32P.google.ads.googleads.v0.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType\x12.\n\x08type_url\x18\r \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x0bis_repeated\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\xd8\x01\n%com.google.ads.googleads.v0.resourcesB\x13GoogleAdsFieldProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__category__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__data__type__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_GOOGLEADSFIELD = _descriptor.Descriptor( + name='GoogleAdsField', + full_name='google.ads.googleads.v0.resources.GoogleAdsField', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.GoogleAdsField.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='google.ads.googleads.v0.resources.GoogleAdsField.name', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='category', full_name='google.ads.googleads.v0.resources.GoogleAdsField.category', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='selectable', full_name='google.ads.googleads.v0.resources.GoogleAdsField.selectable', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='filterable', full_name='google.ads.googleads.v0.resources.GoogleAdsField.filterable', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sortable', full_name='google.ads.googleads.v0.resources.GoogleAdsField.sortable', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='selectable_with', full_name='google.ads.googleads.v0.resources.GoogleAdsField.selectable_with', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='attribute_resources', full_name='google.ads.googleads.v0.resources.GoogleAdsField.attribute_resources', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='metrics', full_name='google.ads.googleads.v0.resources.GoogleAdsField.metrics', index=8, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='segments', full_name='google.ads.googleads.v0.resources.GoogleAdsField.segments', index=9, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='enum_values', full_name='google.ads.googleads.v0.resources.GoogleAdsField.enum_values', index=10, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='data_type', full_name='google.ads.googleads.v0.resources.GoogleAdsField.data_type', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type_url', full_name='google.ads.googleads.v0.resources.GoogleAdsField.type_url', index=12, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='is_repeated', full_name='google.ads.googleads.v0.resources.GoogleAdsField.is_repeated', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=273, + serialized_end=1056, +) + +_GOOGLEADSFIELD.fields_by_name['name'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['category'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__category__pb2._GOOGLEADSFIELDCATEGORYENUM_GOOGLEADSFIELDCATEGORY +_GOOGLEADSFIELD.fields_by_name['selectable'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_GOOGLEADSFIELD.fields_by_name['filterable'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_GOOGLEADSFIELD.fields_by_name['sortable'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +_GOOGLEADSFIELD.fields_by_name['selectable_with'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['attribute_resources'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['metrics'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['segments'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['enum_values'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['data_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_google__ads__field__data__type__pb2._GOOGLEADSFIELDDATATYPEENUM_GOOGLEADSFIELDDATATYPE +_GOOGLEADSFIELD.fields_by_name['type_url'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSFIELD.fields_by_name['is_repeated'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE +DESCRIPTOR.message_types_by_name['GoogleAdsField'] = _GOOGLEADSFIELD +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GoogleAdsField = _reflection.GeneratedProtocolMessageType('GoogleAdsField', (_message.Message,), dict( + DESCRIPTOR = _GOOGLEADSFIELD, + __module__ = 'google.ads.googleads_v0.proto.resources.google_ads_field_pb2' + , + __doc__ = """A field or resource (artifact) used by GoogleAdsService. + + + Attributes: + resource_name: + The resource name of the artifact. Artifact resource names + have the form: ``googleAdsFields/{name}`` + name: + The name of the artifact. + category: + The category of the artifact. + selectable: + Whether the artifact can be used in a SELECT clause in search + queries. + filterable: + Whether the artifact can be used in a WHERE clause in search + queries. + sortable: + Whether the artifact can be used in a ORDER BY clause in + search queries. + selectable_with: + The names of all resources, segments, and metrics that are + selectable with the described artifact. + attribute_resources: + The names of all resources that are selectable with the + described artifact. Fields from these resources do not segment + metrics when included in search queries. This field is only + set for artifacts whose category is RESOURCE. + metrics: + The names of all metrics that are selectable with the + described artifact. This field is only set for artifacts + whose category is either RESOURCE or SEGMENT. + segments: + The names of all artifacts, whether a segment or another + resource, that segment metrics when included in search + queries. This field is only set for artifacts of category + RESOURCE, SEGMENT or METRIC. + enum_values: + Values the artifact can assume if it is a field of type ENUM. + This field is only set for artifacts of category SEGMENT or + ATTRIBUTE. + data_type: + This field determines the operators that can be used with the + artifact in WHERE clauses. + type_url: + The URL of proto describing the artifact's data type. + is_repeated: + Whether the field artifact is repeated. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.GoogleAdsField) + )) +_sym_db.RegisterMessage(GoogleAdsField) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\023GoogleAdsFieldProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/google_ads_field_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/keyword_view_pb2.py b/google/ads/google_ads/v0/proto/resources/keyword_view_pb2.py new file mode 100644 index 000000000..8b1213523 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/keyword_view_pb2.py @@ -0,0 +1,81 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/keyword_view.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/keyword_view.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n:google/ads/googleads_v0/proto/resources/keyword_view.proto\x12!google.ads.googleads.v0.resources\"$\n\x0bKeywordView\x12\x15\n\rresource_name\x18\x01 \x01(\tB\xd5\x01\n%com.google.ads.googleads.v0.resourcesB\x10KeywordViewProtoP\x01ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\xa2\x02\x03GAA\xaa\x02!Google.Ads.GoogleAds.V0.Resources\xca\x02!Google\\Ads\\GoogleAds\\V0\\Resourcesb\x06proto3') +) + + + + +_KEYWORDVIEW = _descriptor.Descriptor( + name='KeywordView', + full_name='google.ads.googleads.v0.resources.KeywordView', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.resources.KeywordView.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=97, + serialized_end=133, +) + +DESCRIPTOR.message_types_by_name['KeywordView'] = _KEYWORDVIEW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +KeywordView = _reflection.GeneratedProtocolMessageType('KeywordView', (_message.Message,), dict( + DESCRIPTOR = _KEYWORDVIEW, + __module__ = 'google.ads.googleads_v0.proto.resources.keyword_view_pb2' + , + __doc__ = """A keyword view. + + + Attributes: + resource_name: + The resource name of the keyword view. Keyword view resource + names have the form: ``customers/{customer_id}/keywordViews/{ + ad_group_id}_{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.resources.KeywordView) + )) +_sym_db.RegisterMessage(KeywordView) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n%com.google.ads.googleads.v0.resourcesB\020KeywordViewProtoP\001ZJgoogle.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources\242\002\003GAA\252\002!Google.Ads.GoogleAds.V0.Resources\312\002!Google\\Ads\\GoogleAds\\V0\\Resources')) +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/resources/keyword_view_pb2_grpc.py b/google/ads/google_ads/v0/proto/resources/keyword_view_pb2_grpc.py new file mode 100644 index 000000000..a89435267 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/keyword_view_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/google/ads/google_ads/v0/proto/resources/recommendation_pb2.py b/google/ads/google_ads/v0/proto/resources/recommendation_pb2.py new file mode 100644 index 000000000..bb9814b23 --- /dev/null +++ b/google/ads/google_ads/v0/proto/resources/recommendation_pb2.py @@ -0,0 +1,751 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/resources/recommendation.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import criteria_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_criteria__pb2 +from google.ads.google_ads.v0.proto.enums import recommendation_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_recommendation__type__pb2 +from google.ads.google_ads.v0.proto.enums import target_cpa_opt_in_recommendation_goal_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_target__cpa__opt__in__recommendation__goal__pb2 +from google.ads.google_ads.v0.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/resources/recommendation.proto', + package='google.ads.googleads.v0.resources', + syntax='proto3', + serialized_pb=_b('\n\n\x06\x63reate\x18\x01 \x01(\x0b\x32,.google.ads.googleads.v0.resources.AdGroupAdH\x00\x12>\n\x06update\x18\x02 \x01(\x0b\x32,.google.ads.googleads.v0.resources.AdGroupAdH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"d\n\x18MutateAdGroupAdsResponse\x12H\n\x07results\x18\x02 \x03(\x0b\x32\x37.google.ads.googleads.v0.services.MutateAdGroupAdResult\".\n\x15MutateAdGroupAdResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\x86\x03\n\x10\x41\x64GroupAdService\x12\xa9\x01\n\x0cGetAdGroupAd\x12\x35.google.ads.googleads.v0.services.GetAdGroupAdRequest\x1a,.google.ads.googleads.v0.resources.AdGroupAd\"4\x82\xd3\xe4\x93\x02.\x12,/v0/{resource_name=customers/*/adGroupAds/*}\x12\xc5\x01\n\x10MutateAdGroupAds\x12\x39.google.ads.googleads.v0.services.MutateAdGroupAdsRequest\x1a:.google.ads.googleads.v0.services.MutateAdGroupAdsResponse\":\x82\xd3\xe4\x93\x02\x34\"//v0/customers/{customer_id=*}/adGroupAds:mutate:\x01*B\xd5\x01\n$com.google.ads.googleads.v0.servicesB\x15\x41\x64GroupAdServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPADREQUEST = _descriptor.Descriptor( + name='GetAdGroupAdRequest', + full_name='google.ads.googleads.v0.services.GetAdGroupAdRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetAdGroupAdRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=225, + serialized_end=269, +) + + +_MUTATEADGROUPADSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupAdsRequest', + full_name='google.ads.googleads.v0.services.MutateAdGroupAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateAdGroupAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateAdGroupAdsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=271, + serialized_end=391, +) + + +_ADGROUPADOPERATION = _descriptor.Descriptor( + name='AdGroupAdOperation', + full_name='google.ads.googleads.v0.services.AdGroupAdOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.AdGroupAdOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.AdGroupAdOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.AdGroupAdOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.AdGroupAdOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.AdGroupAdOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=394, + serialized_end=622, +) + + +_MUTATEADGROUPADSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupAdsResponse', + full_name='google.ads.googleads.v0.services.MutateAdGroupAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateAdGroupAdsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=624, + serialized_end=724, +) + + +_MUTATEADGROUPADRESULT = _descriptor.Descriptor( + name='MutateAdGroupAdResult', + full_name='google.ads.googleads.v0.services.MutateAdGroupAdResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateAdGroupAdResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=726, + serialized_end=772, +) + +_MUTATEADGROUPADSREQUEST.fields_by_name['operations'].message_type = _ADGROUPADOPERATION +_ADGROUPADOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPADOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_ADGROUPADOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['create']) +_ADGROUPADOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['update']) +_ADGROUPADOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_ADGROUPADOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPADOPERATION.fields_by_name['remove']) +_ADGROUPADOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPADOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPADSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPADRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupAdRequest'] = _GETADGROUPADREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupAdsRequest'] = _MUTATEADGROUPADSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupAdOperation'] = _ADGROUPADOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupAdsResponse'] = _MUTATEADGROUPADSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupAdResult'] = _MUTATEADGROUPADRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupAdRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupAdRequest', (_message.Message,), dict( + DESCRIPTOR = _GETADGROUPADREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_ad_service_pb2' + , + __doc__ = """Request message for + [AdGroupAdService.GetAdGroupAd][google.ads.googleads.v0.services.AdGroupAdService.GetAdGroupAd]. + + + Attributes: + resource_name: + The resource name of the ad to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetAdGroupAdRequest) + )) +_sym_db.RegisterMessage(GetAdGroupAdRequest) + +MutateAdGroupAdsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdsRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPADSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_ad_service_pb2' + , + __doc__ = """Request message for + [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v0.services.AdGroupAdService.MutateAdGroupAds]. + + + Attributes: + customer_id: + The ID of the customer whose ads are being modified. + operations: + The list of operations to perform on individual ads. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupAdsRequest) + )) +_sym_db.RegisterMessage(MutateAdGroupAdsRequest) + +AdGroupAdOperation = _reflection.GeneratedProtocolMessageType('AdGroupAdOperation', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPADOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_ad_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on an ad group ad. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad. + update: + Update operation: The ad is expected to have a valid resource + name. + remove: + Remove operation: A resource name for the removed ad is + expected, in this format: + ``customers/{customer_id}/adGroupAds/{ad_group_id}_{ad_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.AdGroupAdOperation) + )) +_sym_db.RegisterMessage(AdGroupAdOperation) + +MutateAdGroupAdsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdsResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPADSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_ad_service_pb2' + , + __doc__ = """Response message for an ad group ad mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupAdsResponse) + )) +_sym_db.RegisterMessage(MutateAdGroupAdsResponse) + +MutateAdGroupAdResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupAdResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPADRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_ad_service_pb2' + , + __doc__ = """The result for the ad mutate. + + + Attributes: + resource_name: + The resource name returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupAdResult) + )) +_sym_db.RegisterMessage(MutateAdGroupAdResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\025AdGroupAdServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_ADGROUPADSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupAdService', + full_name='google.ads.googleads.v0.services.AdGroupAdService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=775, + serialized_end=1165, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupAd', + full_name='google.ads.googleads.v0.services.AdGroupAdService.GetAdGroupAd', + index=0, + containing_service=None, + input_type=_GETADGROUPADREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002.\022,/v0/{resource_name=customers/*/adGroupAds/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupAds', + full_name='google.ads.googleads.v0.services.AdGroupAdService.MutateAdGroupAds', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPADSREQUEST, + output_type=_MUTATEADGROUPADSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0024\"//v0/customers/{customer_id=*}/adGroupAds:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPADSERVICE) + +DESCRIPTOR.services_by_name['AdGroupAdService'] = _ADGROUPADSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_ad_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/ad_group_ad_service_pb2_grpc.py new file mode 100644 index 000000000..0cf78281f --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_ad_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import ad_group_ad_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2 +from google.ads.google_ads.v0.proto.services import ad_group_ad_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2 + + +class AdGroupAdServiceStub(object): + """Service to manage ads in an ad group. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupAd = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupAdService/GetAdGroupAd', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.GetAdGroupAdRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2.AdGroupAd.FromString, + ) + self.MutateAdGroupAds = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupAdService/MutateAdGroupAds', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsResponse.FromString, + ) + + +class AdGroupAdServiceServicer(object): + """Service to manage ads in an ad group. + """ + + def GetAdGroupAd(self, request, context): + """Returns the requested ad in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupAds(self, request, context): + """Creates, updates, or removes ads. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupAdServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupAd': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupAd, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.GetAdGroupAdRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2.AdGroupAd.SerializeToString, + ), + 'MutateAdGroupAds': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupAds, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__ad__service__pb2.MutateAdGroupAdsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.AdGroupAdService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2.py b/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2.py new file mode 100644 index 000000000..418c7ca85 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2.py @@ -0,0 +1,368 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/ad_group_bid_modifier_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/ad_group_bid_modifier_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nJgoogle/ads/googleads_v0/proto/services/ad_group_bid_modifier_service.proto\x12 google.ads.googleads.v0.services\x1a\x43google/ads/googleads_v0/proto/resources/ad_group_bid_modifier.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"5\n\x1cGetAdGroupBidModifierRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x8a\x01\n MutateAdGroupBidModifiersRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12Q\n\noperations\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v0.services.AdGroupBidModifierOperation\"\xff\x01\n\x1b\x41\x64GroupBidModifierOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x35.google.ads.googleads.v0.resources.AdGroupBidModifierH\x00\x12G\n\x06update\x18\x02 \x01(\x0b\x32\x35.google.ads.googleads.v0.resources.AdGroupBidModifierH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"v\n!MutateAdGroupBidModifiersResponse\x12Q\n\x07results\x18\x02 \x03(\x0b\x32@.google.ads.googleads.v0.services.MutateAdGroupBidModifierResult\"7\n\x1eMutateAdGroupBidModifierResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xd7\x03\n\x19\x41\x64GroupBidModifierService\x12\xcd\x01\n\x15GetAdGroupBidModifier\x12>.google.ads.googleads.v0.services.GetAdGroupBidModifierRequest\x1a\x35.google.ads.googleads.v0.resources.AdGroupBidModifier\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/v0/{resource_name=customers/*/adGroupBidModifiers/*}\x12\xe9\x01\n\x19MutateAdGroupBidModifiers\x12\x42.google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest\x1a\x43.google.ads.googleads.v0.services.MutateAdGroupBidModifiersResponse\"C\x82\xd3\xe4\x93\x02=\"8/v0/customers/{customer_id=*}/adGroupBidModifiers:mutate:\x01*B\xde\x01\n$com.google.ads.googleads.v0.servicesB\x1e\x41\x64GroupBidModifierServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPBIDMODIFIERREQUEST = _descriptor.Descriptor( + name='GetAdGroupBidModifierRequest', + full_name='google.ads.googleads.v0.services.GetAdGroupBidModifierRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetAdGroupBidModifierRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=245, + serialized_end=298, +) + + +_MUTATEADGROUPBIDMODIFIERSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupBidModifiersRequest', + full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=301, + serialized_end=439, +) + + +_ADGROUPBIDMODIFIEROPERATION = _descriptor.Descriptor( + name='AdGroupBidModifierOperation', + full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.AdGroupBidModifierOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=442, + serialized_end=697, +) + + +_MUTATEADGROUPBIDMODIFIERSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupBidModifiersResponse', + full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifiersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifiersResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=699, + serialized_end=817, +) + + +_MUTATEADGROUPBIDMODIFIERRESULT = _descriptor.Descriptor( + name='MutateAdGroupBidModifierResult', + full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifierResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateAdGroupBidModifierResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=819, + serialized_end=874, +) + +_MUTATEADGROUPBIDMODIFIERSREQUEST.fields_by_name['operations'].message_type = _ADGROUPBIDMODIFIEROPERATION +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['create']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['create'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['update']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['update'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPBIDMODIFIEROPERATION.fields_by_name['remove']) +_ADGROUPBIDMODIFIEROPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPBIDMODIFIEROPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPBIDMODIFIERSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPBIDMODIFIERRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupBidModifierRequest'] = _GETADGROUPBIDMODIFIERREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifiersRequest'] = _MUTATEADGROUPBIDMODIFIERSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupBidModifierOperation'] = _ADGROUPBIDMODIFIEROPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifiersResponse'] = _MUTATEADGROUPBIDMODIFIERSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupBidModifierResult'] = _MUTATEADGROUPBIDMODIFIERRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupBidModifierRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupBidModifierRequest', (_message.Message,), dict( + DESCRIPTOR = _GETADGROUPBIDMODIFIERREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_bid_modifier_service_pb2' + , + __doc__ = """Request message for + [AdGroupBidModifierService.GetAdGroupBidModifier][google.ads.googleads.v0.services.AdGroupBidModifierService.GetAdGroupBidModifier]. + + + Attributes: + resource_name: + The resource name of the ad group bid modifier to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetAdGroupBidModifierRequest) + )) +_sym_db.RegisterMessage(GetAdGroupBidModifierRequest) + +MutateAdGroupBidModifiersRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifiersRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPBIDMODIFIERSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_bid_modifier_service_pb2' + , + __doc__ = """Request message for + [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v0.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. + + + Attributes: + customer_id: + ID of the customer whose ad group bid modifiers are being + modified. + operations: + The list of operations to perform on individual ad group bid + modifiers. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest) + )) +_sym_db.RegisterMessage(MutateAdGroupBidModifiersRequest) + +AdGroupBidModifierOperation = _reflection.GeneratedProtocolMessageType('AdGroupBidModifierOperation', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPBIDMODIFIEROPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_bid_modifier_service_pb2' + , + __doc__ = """A single operation (create, remove, update) on an ad group bid modifier. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group bid modifier. + update: + Update operation: The ad group bid modifier is expected to + have a valid resource name. + remove: + Remove operation: A resource name for the removed ad group bid + modifier is expected, in this format: ``customers/{customer_i + d}/adGroupBidModifiers/{ad_group_id}_{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.AdGroupBidModifierOperation) + )) +_sym_db.RegisterMessage(AdGroupBidModifierOperation) + +MutateAdGroupBidModifiersResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifiersResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPBIDMODIFIERSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_bid_modifier_service_pb2' + , + __doc__ = """Response message for ad group bid modifiers mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupBidModifiersResponse) + )) +_sym_db.RegisterMessage(MutateAdGroupBidModifiersResponse) + +MutateAdGroupBidModifierResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupBidModifierResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPBIDMODIFIERRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_bid_modifier_service_pb2' + , + __doc__ = """The result for the criterion mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupBidModifierResult) + )) +_sym_db.RegisterMessage(MutateAdGroupBidModifierResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\036AdGroupBidModifierServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_ADGROUPBIDMODIFIERSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupBidModifierService', + full_name='google.ads.googleads.v0.services.AdGroupBidModifierService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=877, + serialized_end=1348, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupBidModifier', + full_name='google.ads.googleads.v0.services.AdGroupBidModifierService.GetAdGroupBidModifier', + index=0, + containing_service=None, + input_type=_GETADGROUPBIDMODIFIERREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0027\0225/v0/{resource_name=customers/*/adGroupBidModifiers/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupBidModifiers', + full_name='google.ads.googleads.v0.services.AdGroupBidModifierService.MutateAdGroupBidModifiers', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPBIDMODIFIERSREQUEST, + output_type=_MUTATEADGROUPBIDMODIFIERSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002=\"8/v0/customers/{customer_id=*}/adGroupBidModifiers:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPBIDMODIFIERSERVICE) + +DESCRIPTOR.services_by_name['AdGroupBidModifierService'] = _ADGROUPBIDMODIFIERSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2_grpc.py new file mode 100644 index 000000000..323a70319 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_bid_modifier_service_pb2_grpc.py @@ -0,0 +1,65 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.ads.google_ads.v0.proto.services import ad_group_bid_modifier_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2 + + +class AdGroupBidModifierServiceStub(object): + """Service to manage ad group bid modifiers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupBidModifier = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupBidModifierService/GetAdGroupBidModifier', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.GetAdGroupBidModifierRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.AdGroupBidModifier.FromString, + ) + self.MutateAdGroupBidModifiers = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupBidModifierService/MutateAdGroupBidModifiers', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersResponse.FromString, + ) + + +class AdGroupBidModifierServiceServicer(object): + """Service to manage ad group bid modifiers. + """ + + def GetAdGroupBidModifier(self, request, context): + """Returns the requested ad group bid modifier in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupBidModifiers(self, request, context): + """Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupBidModifierServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupBidModifier': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupBidModifier, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.GetAdGroupBidModifierRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.AdGroupBidModifier.SerializeToString, + ), + 'MutateAdGroupBidModifiers': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupBidModifiers, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__bid__modifier__service__pb2.MutateAdGroupBidModifiersResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.AdGroupBidModifierService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2.py b/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2.py new file mode 100644 index 000000000..8291f225c --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2.py @@ -0,0 +1,366 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/ad_group_criterion_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/ad_group_criterion_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nGgoogle/ads/googleads_v0/proto/services/ad_group_criterion_service.proto\x12 google.ads.googleads.v0.services\x1a@google/ads/googleads_v0/proto/resources/ad_group_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"3\n\x1aGetAdGroupCriterionRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x84\x01\n\x1cMutateAdGroupCriteriaRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12O\n\noperations\x18\x02 \x03(\x0b\x32;.google.ads.googleads.v0.services.AdGroupCriterionOperation\"\xf9\x01\n\x19\x41\x64GroupCriterionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x45\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x33.google.ads.googleads.v0.resources.AdGroupCriterionH\x00\x12\x45\n\x06update\x18\x02 \x01(\x0b\x32\x33.google.ads.googleads.v0.resources.AdGroupCriterionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"p\n\x1dMutateAdGroupCriteriaResponse\x12O\n\x07results\x18\x02 \x03(\x0b\x32>.google.ads.googleads.v0.services.MutateAdGroupCriterionResult\"5\n\x1cMutateAdGroupCriterionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xbb\x03\n\x17\x41\x64GroupCriterionService\x12\xc3\x01\n\x13GetAdGroupCriterion\x12<.google.ads.googleads.v0.services.GetAdGroupCriterionRequest\x1a\x33.google.ads.googleads.v0.resources.AdGroupCriterion\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/v0/{resource_name=customers/*/adGroupCriteria/*}\x12\xd9\x01\n\x15MutateAdGroupCriteria\x12>.google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest\x1a?.google.ads.googleads.v0.services.MutateAdGroupCriteriaResponse\"?\x82\xd3\xe4\x93\x02\x39\"4/v0/customers/{customer_id=*}/adGroupCriteria:mutate:\x01*B\xdc\x01\n$com.google.ads.googleads.v0.servicesB\x1c\x41\x64GroupCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPCRITERIONREQUEST = _descriptor.Descriptor( + name='GetAdGroupCriterionRequest', + full_name='google.ads.googleads.v0.services.GetAdGroupCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetAdGroupCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=239, + serialized_end=290, +) + + +_MUTATEADGROUPCRITERIAREQUEST = _descriptor.Descriptor( + name='MutateAdGroupCriteriaRequest', + full_name='google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=293, + serialized_end=425, +) + + +_ADGROUPCRITERIONOPERATION = _descriptor.Descriptor( + name='AdGroupCriterionOperation', + full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.AdGroupCriterionOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=428, + serialized_end=677, +) + + +_MUTATEADGROUPCRITERIARESPONSE = _descriptor.Descriptor( + name='MutateAdGroupCriteriaResponse', + full_name='google.ads.googleads.v0.services.MutateAdGroupCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateAdGroupCriteriaResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=679, + serialized_end=791, +) + + +_MUTATEADGROUPCRITERIONRESULT = _descriptor.Descriptor( + name='MutateAdGroupCriterionResult', + full_name='google.ads.googleads.v0.services.MutateAdGroupCriterionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateAdGroupCriterionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=793, + serialized_end=846, +) + +_MUTATEADGROUPCRITERIAREQUEST.fields_by_name['operations'].message_type = _ADGROUPCRITERIONOPERATION +_ADGROUPCRITERIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPCRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_ADGROUPCRITERIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['create']) +_ADGROUPCRITERIONOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['update']) +_ADGROUPCRITERIONOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPCRITERIONOPERATION.fields_by_name['remove']) +_ADGROUPCRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPCRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPCRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPCRITERIONRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupCriterionRequest'] = _GETADGROUPCRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupCriteriaRequest'] = _MUTATEADGROUPCRITERIAREQUEST +DESCRIPTOR.message_types_by_name['AdGroupCriterionOperation'] = _ADGROUPCRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupCriteriaResponse'] = _MUTATEADGROUPCRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupCriterionResult'] = _MUTATEADGROUPCRITERIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupCriterionRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupCriterionRequest', (_message.Message,), dict( + DESCRIPTOR = _GETADGROUPCRITERIONREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_criterion_service_pb2' + , + __doc__ = """Request message for + [AdGroupCriterionService.GetAdGroupCriterion][google.ads.googleads.v0.services.AdGroupCriterionService.GetAdGroupCriterion]. + + + Attributes: + resource_name: + The resource name of the criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetAdGroupCriterionRequest) + )) +_sym_db.RegisterMessage(GetAdGroupCriterionRequest) + +MutateAdGroupCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriteriaRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPCRITERIAREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_criterion_service_pb2' + , + __doc__ = """Request message for + [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v0.services.AdGroupCriterionService.MutateAdGroupCriteria]. + + + Attributes: + customer_id: + ID of the customer whose criteria are being modified. + operations: + The list of operations to perform on individual criteria. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest) + )) +_sym_db.RegisterMessage(MutateAdGroupCriteriaRequest) + +AdGroupCriterionOperation = _reflection.GeneratedProtocolMessageType('AdGroupCriterionOperation', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPCRITERIONOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_criterion_service_pb2' + , + __doc__ = """A single operation (create, remove, update) on an ad group criterion. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + criterion. + update: + Update operation: The criterion is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed criterion is + expected, in this format: ``customers/{customer_id}/adGroupCr + iteria/{ad_group_id}_{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.AdGroupCriterionOperation) + )) +_sym_db.RegisterMessage(AdGroupCriterionOperation) + +MutateAdGroupCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriteriaResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPCRITERIARESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_criterion_service_pb2' + , + __doc__ = """Response message for an ad group criterion mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupCriteriaResponse) + )) +_sym_db.RegisterMessage(MutateAdGroupCriteriaResponse) + +MutateAdGroupCriterionResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupCriterionResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPCRITERIONRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_criterion_service_pb2' + , + __doc__ = """The result for the criterion mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupCriterionResult) + )) +_sym_db.RegisterMessage(MutateAdGroupCriterionResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\034AdGroupCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_ADGROUPCRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupCriterionService', + full_name='google.ads.googleads.v0.services.AdGroupCriterionService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=849, + serialized_end=1292, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroupCriterion', + full_name='google.ads.googleads.v0.services.AdGroupCriterionService.GetAdGroupCriterion', + index=0, + containing_service=None, + input_type=_GETADGROUPCRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0023\0221/v0/{resource_name=customers/*/adGroupCriteria/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateAdGroupCriteria', + full_name='google.ads.googleads.v0.services.AdGroupCriterionService.MutateAdGroupCriteria', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPCRITERIAREQUEST, + output_type=_MUTATEADGROUPCRITERIARESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0029\"4/v0/customers/{customer_id=*}/adGroupCriteria:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPCRITERIONSERVICE) + +DESCRIPTOR.services_by_name['AdGroupCriterionService'] = _ADGROUPCRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..93132e8fa --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_criterion_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.ads.google_ads.v0.proto.services import ad_group_criterion_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2 + + +class AdGroupCriterionServiceStub(object): + """Service to manage ad group criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroupCriterion = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupCriterionService/GetAdGroupCriterion', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.GetAdGroupCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2.AdGroupCriterion.FromString, + ) + self.MutateAdGroupCriteria = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupCriterionService/MutateAdGroupCriteria', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaResponse.FromString, + ) + + +class AdGroupCriterionServiceServicer(object): + """Service to manage ad group criteria. + """ + + def GetAdGroupCriterion(self, request, context): + """Returns the requested criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroupCriteria(self, request, context): + """Creates, updates, or removes criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroupCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroupCriterion, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.GetAdGroupCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2.AdGroupCriterion.SerializeToString, + ), + 'MutateAdGroupCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroupCriteria, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__criterion__service__pb2.MutateAdGroupCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.AdGroupCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_service_pb2.py b/google/ads/google_ads/v0/proto/services/ad_group_service_pb2.py new file mode 100644 index 000000000..34641d8dd --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_service_pb2.py @@ -0,0 +1,366 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/ad_group_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import ad_group_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/ad_group_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/services/ad_group_service.proto\x12 google.ads.googleads.v0.services\x1a\x36google/ads/googleads_v0/proto/resources/ad_group.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"*\n\x11GetAdGroupRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"t\n\x15MutateAdGroupsRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12\x46\n\noperations\x18\x02 \x03(\x0b\x32\x32.google.ads.googleads.v0.services.AdGroupOperation\"\xde\x01\n\x10\x41\x64GroupOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12<\n\x06\x63reate\x18\x01 \x01(\x0b\x32*.google.ads.googleads.v0.resources.AdGroupH\x00\x12<\n\x06update\x18\x02 \x01(\x0b\x32*.google.ads.googleads.v0.resources.AdGroupH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"`\n\x16MutateAdGroupsResponse\x12\x46\n\x07results\x18\x02 \x03(\x0b\x32\x35.google.ads.googleads.v0.services.MutateAdGroupResult\",\n\x13MutateAdGroupResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xf4\x02\n\x0e\x41\x64GroupService\x12\xa1\x01\n\nGetAdGroup\x12\x33.google.ads.googleads.v0.services.GetAdGroupRequest\x1a*.google.ads.googleads.v0.resources.AdGroup\"2\x82\xd3\xe4\x93\x02,\x12*/v0/{resource_name=customers/*/adGroups/*}\x12\xbd\x01\n\x0eMutateAdGroups\x12\x37.google.ads.googleads.v0.services.MutateAdGroupsRequest\x1a\x38.google.ads.googleads.v0.services.MutateAdGroupsResponse\"8\x82\xd3\xe4\x93\x02\x32\"-/v0/customers/{customer_id=*}/adGroups:mutate:\x01*B\xd3\x01\n$com.google.ads.googleads.v0.servicesB\x13\x41\x64GroupServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETADGROUPREQUEST = _descriptor.Descriptor( + name='GetAdGroupRequest', + full_name='google.ads.googleads.v0.services.GetAdGroupRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetAdGroupRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=219, + serialized_end=261, +) + + +_MUTATEADGROUPSREQUEST = _descriptor.Descriptor( + name='MutateAdGroupsRequest', + full_name='google.ads.googleads.v0.services.MutateAdGroupsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateAdGroupsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateAdGroupsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=263, + serialized_end=379, +) + + +_ADGROUPOPERATION = _descriptor.Descriptor( + name='AdGroupOperation', + full_name='google.ads.googleads.v0.services.AdGroupOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.AdGroupOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.AdGroupOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.AdGroupOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.AdGroupOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.AdGroupOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=382, + serialized_end=604, +) + + +_MUTATEADGROUPSRESPONSE = _descriptor.Descriptor( + name='MutateAdGroupsResponse', + full_name='google.ads.googleads.v0.services.MutateAdGroupsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateAdGroupsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=606, + serialized_end=702, +) + + +_MUTATEADGROUPRESULT = _descriptor.Descriptor( + name='MutateAdGroupResult', + full_name='google.ads.googleads.v0.services.MutateAdGroupResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateAdGroupResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=704, + serialized_end=748, +) + +_MUTATEADGROUPSREQUEST.fields_by_name['operations'].message_type = _ADGROUPOPERATION +_ADGROUPOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_ADGROUPOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2._ADGROUP +_ADGROUPOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2._ADGROUP +_ADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPOPERATION.fields_by_name['create']) +_ADGROUPOPERATION.fields_by_name['create'].containing_oneof = _ADGROUPOPERATION.oneofs_by_name['operation'] +_ADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPOPERATION.fields_by_name['update']) +_ADGROUPOPERATION.fields_by_name['update'].containing_oneof = _ADGROUPOPERATION.oneofs_by_name['operation'] +_ADGROUPOPERATION.oneofs_by_name['operation'].fields.append( + _ADGROUPOPERATION.fields_by_name['remove']) +_ADGROUPOPERATION.fields_by_name['remove'].containing_oneof = _ADGROUPOPERATION.oneofs_by_name['operation'] +_MUTATEADGROUPSRESPONSE.fields_by_name['results'].message_type = _MUTATEADGROUPRESULT +DESCRIPTOR.message_types_by_name['GetAdGroupRequest'] = _GETADGROUPREQUEST +DESCRIPTOR.message_types_by_name['MutateAdGroupsRequest'] = _MUTATEADGROUPSREQUEST +DESCRIPTOR.message_types_by_name['AdGroupOperation'] = _ADGROUPOPERATION +DESCRIPTOR.message_types_by_name['MutateAdGroupsResponse'] = _MUTATEADGROUPSRESPONSE +DESCRIPTOR.message_types_by_name['MutateAdGroupResult'] = _MUTATEADGROUPRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetAdGroupRequest = _reflection.GeneratedProtocolMessageType('GetAdGroupRequest', (_message.Message,), dict( + DESCRIPTOR = _GETADGROUPREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_service_pb2' + , + __doc__ = """Request message for + [AdGroupService.GetAdGroup][google.ads.googleads.v0.services.AdGroupService.GetAdGroup]. + + + Attributes: + resource_name: + The resource name of the ad group to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetAdGroupRequest) + )) +_sym_db.RegisterMessage(GetAdGroupRequest) + +MutateAdGroupsRequest = _reflection.GeneratedProtocolMessageType('MutateAdGroupsRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_service_pb2' + , + __doc__ = """Request message for + [AdGroupService.MutateAdGroups][google.ads.googleads.v0.services.AdGroupService.MutateAdGroups]. + + + Attributes: + customer_id: + The ID of the customer whose ad groups are being modified. + operations: + The list of operations to perform on individual ad groups. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupsRequest) + )) +_sym_db.RegisterMessage(MutateAdGroupsRequest) + +AdGroupOperation = _reflection.GeneratedProtocolMessageType('AdGroupOperation', (_message.Message,), dict( + DESCRIPTOR = _ADGROUPOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on an ad group. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new ad + group. + update: + Update operation: The ad group is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed ad group is + expected, in this format: + ``customers/{customer_id}/adGroups/{ad_group_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.AdGroupOperation) + )) +_sym_db.RegisterMessage(AdGroupOperation) + +MutateAdGroupsResponse = _reflection.GeneratedProtocolMessageType('MutateAdGroupsResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_service_pb2' + , + __doc__ = """Response message for an ad group mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupsResponse) + )) +_sym_db.RegisterMessage(MutateAdGroupsResponse) + +MutateAdGroupResult = _reflection.GeneratedProtocolMessageType('MutateAdGroupResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATEADGROUPRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.ad_group_service_pb2' + , + __doc__ = """The result for the ad group mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateAdGroupResult) + )) +_sym_db.RegisterMessage(MutateAdGroupResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\023AdGroupServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_ADGROUPSERVICE = _descriptor.ServiceDescriptor( + name='AdGroupService', + full_name='google.ads.googleads.v0.services.AdGroupService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=751, + serialized_end=1123, + methods=[ + _descriptor.MethodDescriptor( + name='GetAdGroup', + full_name='google.ads.googleads.v0.services.AdGroupService.GetAdGroup', + index=0, + containing_service=None, + input_type=_GETADGROUPREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2._ADGROUP, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002,\022*/v0/{resource_name=customers/*/adGroups/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateAdGroups', + full_name='google.ads.googleads.v0.services.AdGroupService.MutateAdGroups', + index=1, + containing_service=None, + input_type=_MUTATEADGROUPSREQUEST, + output_type=_MUTATEADGROUPSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0022\"-/v0/customers/{customer_id=*}/adGroups:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_ADGROUPSERVICE) + +DESCRIPTOR.services_by_name['AdGroupService'] = _ADGROUPSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/ad_group_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/ad_group_service_pb2_grpc.py new file mode 100644 index 000000000..e43cf8edb --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/ad_group_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import ad_group_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2 +from google.ads.google_ads.v0.proto.services import ad_group_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2 + + +class AdGroupServiceStub(object): + """Service to manage ad groups. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetAdGroup = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupService/GetAdGroup', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.GetAdGroupRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2.AdGroup.FromString, + ) + self.MutateAdGroups = channel.unary_unary( + '/google.ads.googleads.v0.services.AdGroupService/MutateAdGroups', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.MutateAdGroupsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.MutateAdGroupsResponse.FromString, + ) + + +class AdGroupServiceServicer(object): + """Service to manage ad groups. + """ + + def GetAdGroup(self, request, context): + """Returns the requested ad group in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateAdGroups(self, request, context): + """Creates, updates, or removes ad groups. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_AdGroupServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetAdGroup': grpc.unary_unary_rpc_method_handler( + servicer.GetAdGroup, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.GetAdGroupRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2.AdGroup.SerializeToString, + ), + 'MutateAdGroups': grpc.unary_unary_rpc_method_handler( + servicer.MutateAdGroups, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.MutateAdGroupsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_ad__group__service__pb2.MutateAdGroupsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.AdGroupService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2.py b/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2.py new file mode 100644 index 000000000..1097b38db --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2.py @@ -0,0 +1,368 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/bidding_strategy_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/bidding_strategy_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nEgoogle/ads/googleads_v0/proto/services/bidding_strategy_service.proto\x12 google.ads.googleads.v0.services\x1a>google/ads/googleads_v0/proto/resources/bidding_strategy.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"2\n\x19GetBiddingStrategyRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x85\x01\n\x1eMutateBiddingStrategiesRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12N\n\noperations\x18\x02 \x03(\x0b\x32:.google.ads.googleads.v0.services.BiddingStrategyOperation\"\xf6\x01\n\x18\x42iddingStrategyOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x44\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x32.google.ads.googleads.v0.resources.BiddingStrategyH\x00\x12\x44\n\x06update\x18\x02 \x01(\x0b\x32\x32.google.ads.googleads.v0.resources.BiddingStrategyH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"q\n\x1fMutateBiddingStrategiesResponse\x12N\n\x07results\x18\x02 \x03(\x0b\x32=.google.ads.googleads.v0.services.MutateBiddingStrategyResult\"4\n\x1bMutateBiddingStrategyResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xc1\x03\n\x16\x42iddingStrategyService\x12\xc2\x01\n\x12GetBiddingStrategy\x12;.google.ads.googleads.v0.services.GetBiddingStrategyRequest\x1a\x32.google.ads.googleads.v0.resources.BiddingStrategy\";\x82\xd3\xe4\x93\x02\x35\x12\x33/v0/{resource_name=customers/*/biddingStrategies/*}\x12\xe1\x01\n\x17MutateBiddingStrategies\x12@.google.ads.googleads.v0.services.MutateBiddingStrategiesRequest\x1a\x41.google.ads.googleads.v0.services.MutateBiddingStrategiesResponse\"A\x82\xd3\xe4\x93\x02;\"6/v0/customers/{customer_id=*}/biddingStrategies:mutate:\x01*B\xdb\x01\n$com.google.ads.googleads.v0.servicesB\x1b\x42iddingStrategyServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETBIDDINGSTRATEGYREQUEST = _descriptor.Descriptor( + name='GetBiddingStrategyRequest', + full_name='google.ads.googleads.v0.services.GetBiddingStrategyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetBiddingStrategyRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=235, + serialized_end=285, +) + + +_MUTATEBIDDINGSTRATEGIESREQUEST = _descriptor.Descriptor( + name='MutateBiddingStrategiesRequest', + full_name='google.ads.googleads.v0.services.MutateBiddingStrategiesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateBiddingStrategiesRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateBiddingStrategiesRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=288, + serialized_end=421, +) + + +_BIDDINGSTRATEGYOPERATION = _descriptor.Descriptor( + name='BiddingStrategyOperation', + full_name='google.ads.googleads.v0.services.BiddingStrategyOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.BiddingStrategyOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.BiddingStrategyOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.BiddingStrategyOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.BiddingStrategyOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.BiddingStrategyOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=424, + serialized_end=670, +) + + +_MUTATEBIDDINGSTRATEGIESRESPONSE = _descriptor.Descriptor( + name='MutateBiddingStrategiesResponse', + full_name='google.ads.googleads.v0.services.MutateBiddingStrategiesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateBiddingStrategiesResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=672, + serialized_end=785, +) + + +_MUTATEBIDDINGSTRATEGYRESULT = _descriptor.Descriptor( + name='MutateBiddingStrategyResult', + full_name='google.ads.googleads.v0.services.MutateBiddingStrategyResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateBiddingStrategyResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=787, + serialized_end=839, +) + +_MUTATEBIDDINGSTRATEGIESREQUEST.fields_by_name['operations'].message_type = _BIDDINGSTRATEGYOPERATION +_BIDDINGSTRATEGYOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_BIDDINGSTRATEGYOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_BIDDINGSTRATEGYOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['create']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['create'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['update']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['update'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'].fields.append( + _BIDDINGSTRATEGYOPERATION.fields_by_name['remove']) +_BIDDINGSTRATEGYOPERATION.fields_by_name['remove'].containing_oneof = _BIDDINGSTRATEGYOPERATION.oneofs_by_name['operation'] +_MUTATEBIDDINGSTRATEGIESRESPONSE.fields_by_name['results'].message_type = _MUTATEBIDDINGSTRATEGYRESULT +DESCRIPTOR.message_types_by_name['GetBiddingStrategyRequest'] = _GETBIDDINGSTRATEGYREQUEST +DESCRIPTOR.message_types_by_name['MutateBiddingStrategiesRequest'] = _MUTATEBIDDINGSTRATEGIESREQUEST +DESCRIPTOR.message_types_by_name['BiddingStrategyOperation'] = _BIDDINGSTRATEGYOPERATION +DESCRIPTOR.message_types_by_name['MutateBiddingStrategiesResponse'] = _MUTATEBIDDINGSTRATEGIESRESPONSE +DESCRIPTOR.message_types_by_name['MutateBiddingStrategyResult'] = _MUTATEBIDDINGSTRATEGYRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetBiddingStrategyRequest = _reflection.GeneratedProtocolMessageType('GetBiddingStrategyRequest', (_message.Message,), dict( + DESCRIPTOR = _GETBIDDINGSTRATEGYREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.bidding_strategy_service_pb2' + , + __doc__ = """Request message for + [BiddingStrategyService.GetBiddingStrategy][google.ads.googleads.v0.services.BiddingStrategyService.GetBiddingStrategy]. + + + Attributes: + resource_name: + The resource name of the bidding strategy to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetBiddingStrategyRequest) + )) +_sym_db.RegisterMessage(GetBiddingStrategyRequest) + +MutateBiddingStrategiesRequest = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategiesRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATEBIDDINGSTRATEGIESREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.bidding_strategy_service_pb2' + , + __doc__ = """Request message for + [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v0.services.BiddingStrategyService.MutateBiddingStrategies]. + + + Attributes: + customer_id: + The ID of the customer whose bidding strategies are being + modified. + operations: + The list of operations to perform on individual bidding + strategies. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateBiddingStrategiesRequest) + )) +_sym_db.RegisterMessage(MutateBiddingStrategiesRequest) + +BiddingStrategyOperation = _reflection.GeneratedProtocolMessageType('BiddingStrategyOperation', (_message.Message,), dict( + DESCRIPTOR = _BIDDINGSTRATEGYOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.bidding_strategy_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on a bidding strategy. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + bidding strategy. + update: + Update operation: The bidding strategy is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed bidding + strategy is expected, in this format: ``customers/{customer_i + d}/biddingStrategies/{bidding_strategy_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.BiddingStrategyOperation) + )) +_sym_db.RegisterMessage(BiddingStrategyOperation) + +MutateBiddingStrategiesResponse = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategiesResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATEBIDDINGSTRATEGIESRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.bidding_strategy_service_pb2' + , + __doc__ = """Response message for bidding strategy mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateBiddingStrategiesResponse) + )) +_sym_db.RegisterMessage(MutateBiddingStrategiesResponse) + +MutateBiddingStrategyResult = _reflection.GeneratedProtocolMessageType('MutateBiddingStrategyResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATEBIDDINGSTRATEGYRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.bidding_strategy_service_pb2' + , + __doc__ = """The result for the bidding strategy mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateBiddingStrategyResult) + )) +_sym_db.RegisterMessage(MutateBiddingStrategyResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\033BiddingStrategyServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_BIDDINGSTRATEGYSERVICE = _descriptor.ServiceDescriptor( + name='BiddingStrategyService', + full_name='google.ads.googleads.v0.services.BiddingStrategyService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=842, + serialized_end=1291, + methods=[ + _descriptor.MethodDescriptor( + name='GetBiddingStrategy', + full_name='google.ads.googleads.v0.services.BiddingStrategyService.GetBiddingStrategy', + index=0, + containing_service=None, + input_type=_GETBIDDINGSTRATEGYREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0025\0223/v0/{resource_name=customers/*/biddingStrategies/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateBiddingStrategies', + full_name='google.ads.googleads.v0.services.BiddingStrategyService.MutateBiddingStrategies', + index=1, + containing_service=None, + input_type=_MUTATEBIDDINGSTRATEGIESREQUEST, + output_type=_MUTATEBIDDINGSTRATEGIESRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002;\"6/v0/customers/{customer_id=*}/biddingStrategies:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_BIDDINGSTRATEGYSERVICE) + +DESCRIPTOR.services_by_name['BiddingStrategyService'] = _BIDDINGSTRATEGYSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2_grpc.py new file mode 100644 index 000000000..13fe663eb --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/bidding_strategy_service_pb2_grpc.py @@ -0,0 +1,65 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.ads.google_ads.v0.proto.services import bidding_strategy_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2 + + +class BiddingStrategyServiceStub(object): + """Service to manage bidding strategies. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetBiddingStrategy = channel.unary_unary( + '/google.ads.googleads.v0.services.BiddingStrategyService/GetBiddingStrategy', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.GetBiddingStrategyRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2.BiddingStrategy.FromString, + ) + self.MutateBiddingStrategies = channel.unary_unary( + '/google.ads.googleads.v0.services.BiddingStrategyService/MutateBiddingStrategies', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesResponse.FromString, + ) + + +class BiddingStrategyServiceServicer(object): + """Service to manage bidding strategies. + """ + + def GetBiddingStrategy(self, request, context): + """Returns the requested bidding strategy in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateBiddingStrategies(self, request, context): + """Creates, updates, or removes bidding strategies. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_BiddingStrategyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetBiddingStrategy': grpc.unary_unary_rpc_method_handler( + servicer.GetBiddingStrategy, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.GetBiddingStrategyRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2.BiddingStrategy.SerializeToString, + ), + 'MutateBiddingStrategies': grpc.unary_unary_rpc_method_handler( + servicer.MutateBiddingStrategies, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_bidding__strategy__service__pb2.MutateBiddingStrategiesResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.BiddingStrategyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2.py b/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2.py new file mode 100644 index 000000000..0833f69a3 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2.py @@ -0,0 +1,368 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/campaign_budget_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/campaign_budget_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nDgoogle/ads/googleads_v0/proto/services/campaign_budget_service.proto\x12 google.ads.googleads.v0.services\x1a=google/ads/googleads_v0/proto/resources/campaign_budget.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"1\n\x18GetCampaignBudgetRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x82\x01\n\x1cMutateCampaignBudgetsRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12M\n\noperations\x18\x02 \x03(\x0b\x32\x39.google.ads.googleads.v0.services.CampaignBudgetOperation\"\xf3\x01\n\x17\x43\x61mpaignBudgetOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x31.google.ads.googleads.v0.resources.CampaignBudgetH\x00\x12\x43\n\x06update\x18\x02 \x01(\x0b\x32\x31.google.ads.googleads.v0.resources.CampaignBudgetH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"n\n\x1dMutateCampaignBudgetsResponse\x12M\n\x07results\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v0.services.MutateCampaignBudgetResult\"3\n\x1aMutateCampaignBudgetResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xb3\x03\n\x15\x43\x61mpaignBudgetService\x12\xbd\x01\n\x11GetCampaignBudget\x12:.google.ads.googleads.v0.services.GetCampaignBudgetRequest\x1a\x31.google.ads.googleads.v0.resources.CampaignBudget\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/v0/{resource_name=customers/*/campaignBudgets/*}\x12\xd9\x01\n\x15MutateCampaignBudgets\x12>.google.ads.googleads.v0.services.MutateCampaignBudgetsRequest\x1a?.google.ads.googleads.v0.services.MutateCampaignBudgetsResponse\"?\x82\xd3\xe4\x93\x02\x39\"4/v0/customers/{customer_id=*}/campaignBudgets:mutate:\x01*B\xda\x01\n$com.google.ads.googleads.v0.servicesB\x1a\x43\x61mpaignBudgetServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNBUDGETREQUEST = _descriptor.Descriptor( + name='GetCampaignBudgetRequest', + full_name='google.ads.googleads.v0.services.GetCampaignBudgetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetCampaignBudgetRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=233, + serialized_end=282, +) + + +_MUTATECAMPAIGNBUDGETSREQUEST = _descriptor.Descriptor( + name='MutateCampaignBudgetsRequest', + full_name='google.ads.googleads.v0.services.MutateCampaignBudgetsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateCampaignBudgetsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateCampaignBudgetsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=285, + serialized_end=415, +) + + +_CAMPAIGNBUDGETOPERATION = _descriptor.Descriptor( + name='CampaignBudgetOperation', + full_name='google.ads.googleads.v0.services.CampaignBudgetOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.CampaignBudgetOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.CampaignBudgetOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.CampaignBudgetOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.CampaignBudgetOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.CampaignBudgetOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=418, + serialized_end=661, +) + + +_MUTATECAMPAIGNBUDGETSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignBudgetsResponse', + full_name='google.ads.googleads.v0.services.MutateCampaignBudgetsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateCampaignBudgetsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=663, + serialized_end=773, +) + + +_MUTATECAMPAIGNBUDGETRESULT = _descriptor.Descriptor( + name='MutateCampaignBudgetResult', + full_name='google.ads.googleads.v0.services.MutateCampaignBudgetResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateCampaignBudgetResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=775, + serialized_end=826, +) + +_MUTATECAMPAIGNBUDGETSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNBUDGETOPERATION +_CAMPAIGNBUDGETOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNBUDGETOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_CAMPAIGNBUDGETOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['create']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['update']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNBUDGETOPERATION.fields_by_name['remove']) +_CAMPAIGNBUDGETOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNBUDGETOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNBUDGETSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNBUDGETRESULT +DESCRIPTOR.message_types_by_name['GetCampaignBudgetRequest'] = _GETCAMPAIGNBUDGETREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetsRequest'] = _MUTATECAMPAIGNBUDGETSREQUEST +DESCRIPTOR.message_types_by_name['CampaignBudgetOperation'] = _CAMPAIGNBUDGETOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetsResponse'] = _MUTATECAMPAIGNBUDGETSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignBudgetResult'] = _MUTATECAMPAIGNBUDGETRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignBudgetRequest = _reflection.GeneratedProtocolMessageType('GetCampaignBudgetRequest', (_message.Message,), dict( + DESCRIPTOR = _GETCAMPAIGNBUDGETREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_budget_service_pb2' + , + __doc__ = """Request message for + [CampaignBudgetService.GetCampaignBudget][google.ads.googleads.v0.services.CampaignBudgetService.GetCampaignBudget]. + + + Attributes: + resource_name: + The resource name of the campaign budget to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetCampaignBudgetRequest) + )) +_sym_db.RegisterMessage(GetCampaignBudgetRequest) + +MutateCampaignBudgetsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetsRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNBUDGETSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_budget_service_pb2' + , + __doc__ = """Request message for + [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v0.services.CampaignBudgetService.MutateCampaignBudgets]. + + + Attributes: + customer_id: + The ID of the customer whose campaign budgets are being + modified. + operations: + The list of operations to perform on individual campaign + budgets. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignBudgetsRequest) + )) +_sym_db.RegisterMessage(MutateCampaignBudgetsRequest) + +CampaignBudgetOperation = _reflection.GeneratedProtocolMessageType('CampaignBudgetOperation', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNBUDGETOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_budget_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on a campaign budget. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + budget. + update: + Update operation: The campaign budget is expected to have a + valid resource name. + remove: + Remove operation: A resource name for the removed budget is + expected, in this format: + ``customers/{customer_id}/campaignBudgets/{budget_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.CampaignBudgetOperation) + )) +_sym_db.RegisterMessage(CampaignBudgetOperation) + +MutateCampaignBudgetsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetsResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNBUDGETSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_budget_service_pb2' + , + __doc__ = """Response message for campaign budget mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignBudgetsResponse) + )) +_sym_db.RegisterMessage(MutateCampaignBudgetsResponse) + +MutateCampaignBudgetResult = _reflection.GeneratedProtocolMessageType('MutateCampaignBudgetResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNBUDGETRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_budget_service_pb2' + , + __doc__ = """The result for the campaign budget mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignBudgetResult) + )) +_sym_db.RegisterMessage(MutateCampaignBudgetResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\032CampaignBudgetServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_CAMPAIGNBUDGETSERVICE = _descriptor.ServiceDescriptor( + name='CampaignBudgetService', + full_name='google.ads.googleads.v0.services.CampaignBudgetService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=829, + serialized_end=1264, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignBudget', + full_name='google.ads.googleads.v0.services.CampaignBudgetService.GetCampaignBudget', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNBUDGETREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0023\0221/v0/{resource_name=customers/*/campaignBudgets/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateCampaignBudgets', + full_name='google.ads.googleads.v0.services.CampaignBudgetService.MutateCampaignBudgets', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNBUDGETSREQUEST, + output_type=_MUTATECAMPAIGNBUDGETSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0029\"4/v0/customers/{customer_id=*}/campaignBudgets:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNBUDGETSERVICE) + +DESCRIPTOR.services_by_name['CampaignBudgetService'] = _CAMPAIGNBUDGETSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2_grpc.py new file mode 100644 index 000000000..3f8c75b90 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_budget_service_pb2_grpc.py @@ -0,0 +1,65 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.ads.google_ads.v0.proto.services import campaign_budget_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2 + + +class CampaignBudgetServiceStub(object): + """Service to manage campaign budgets. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignBudget = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignBudgetService/GetCampaignBudget', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.GetCampaignBudgetRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2.CampaignBudget.FromString, + ) + self.MutateCampaignBudgets = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignBudgetService/MutateCampaignBudgets', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsResponse.FromString, + ) + + +class CampaignBudgetServiceServicer(object): + """Service to manage campaign budgets. + """ + + def GetCampaignBudget(self, request, context): + """Returns the requested Campaign Budget in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignBudgets(self, request, context): + """Creates, updates, or removes campaign budgets. Operation statuses are + returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignBudgetServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignBudget': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignBudget, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.GetCampaignBudgetRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2.CampaignBudget.SerializeToString, + ), + 'MutateCampaignBudgets': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignBudgets, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__budget__service__pb2.MutateCampaignBudgetsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.CampaignBudgetService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2.py b/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2.py new file mode 100644 index 000000000..4dde29c6c --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2.py @@ -0,0 +1,366 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/campaign_criterion_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/campaign_criterion_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nGgoogle/ads/googleads_v0/proto/services/campaign_criterion_service.proto\x12 google.ads.googleads.v0.services\x1a@google/ads/googleads_v0/proto/resources/campaign_criterion.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"4\n\x1bGetCampaignCriterionRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"\x86\x01\n\x1dMutateCampaignCriteriaRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12P\n\noperations\x18\x02 \x03(\x0b\x32<.google.ads.googleads.v0.services.CampaignCriterionOperation\"\xfc\x01\n\x1a\x43\x61mpaignCriterionOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x46\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x34.google.ads.googleads.v0.resources.CampaignCriterionH\x00\x12\x46\n\x06update\x18\x02 \x01(\x0b\x32\x34.google.ads.googleads.v0.resources.CampaignCriterionH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"r\n\x1eMutateCampaignCriteriaResponse\x12P\n\x07results\x18\x02 \x03(\x0b\x32?.google.ads.googleads.v0.services.MutateCampaignCriterionResult\"6\n\x1dMutateCampaignCriterionResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xc4\x03\n\x18\x43\x61mpaignCriterionService\x12\xc7\x01\n\x14GetCampaignCriterion\x12=.google.ads.googleads.v0.services.GetCampaignCriterionRequest\x1a\x34.google.ads.googleads.v0.resources.CampaignCriterion\":\x82\xd3\xe4\x93\x02\x34\x12\x32/v0/{resource_name=customers/*/campaignCriteria/*}\x12\xdd\x01\n\x16MutateCampaignCriteria\x12?.google.ads.googleads.v0.services.MutateCampaignCriteriaRequest\x1a@.google.ads.googleads.v0.services.MutateCampaignCriteriaResponse\"@\x82\xd3\xe4\x93\x02:\"5/v0/customers/{customer_id=*}/campaignCriteria:mutate:\x01*B\xdd\x01\n$com.google.ads.googleads.v0.servicesB\x1d\x43\x61mpaignCriterionServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNCRITERIONREQUEST = _descriptor.Descriptor( + name='GetCampaignCriterionRequest', + full_name='google.ads.googleads.v0.services.GetCampaignCriterionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetCampaignCriterionRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=239, + serialized_end=291, +) + + +_MUTATECAMPAIGNCRITERIAREQUEST = _descriptor.Descriptor( + name='MutateCampaignCriteriaRequest', + full_name='google.ads.googleads.v0.services.MutateCampaignCriteriaRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateCampaignCriteriaRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateCampaignCriteriaRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=294, + serialized_end=428, +) + + +_CAMPAIGNCRITERIONOPERATION = _descriptor.Descriptor( + name='CampaignCriterionOperation', + full_name='google.ads.googleads.v0.services.CampaignCriterionOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.CampaignCriterionOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.CampaignCriterionOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.CampaignCriterionOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.CampaignCriterionOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.CampaignCriterionOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=431, + serialized_end=683, +) + + +_MUTATECAMPAIGNCRITERIARESPONSE = _descriptor.Descriptor( + name='MutateCampaignCriteriaResponse', + full_name='google.ads.googleads.v0.services.MutateCampaignCriteriaResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateCampaignCriteriaResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=685, + serialized_end=799, +) + + +_MUTATECAMPAIGNCRITERIONRESULT = _descriptor.Descriptor( + name='MutateCampaignCriterionResult', + full_name='google.ads.googleads.v0.services.MutateCampaignCriterionResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateCampaignCriterionResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=801, + serialized_end=855, +) + +_MUTATECAMPAIGNCRITERIAREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNCRITERIONOPERATION +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNCRITERIONOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['create']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['update']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNCRITERIONOPERATION.fields_by_name['remove']) +_CAMPAIGNCRITERIONOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNCRITERIONOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNCRITERIARESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNCRITERIONRESULT +DESCRIPTOR.message_types_by_name['GetCampaignCriterionRequest'] = _GETCAMPAIGNCRITERIONREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignCriteriaRequest'] = _MUTATECAMPAIGNCRITERIAREQUEST +DESCRIPTOR.message_types_by_name['CampaignCriterionOperation'] = _CAMPAIGNCRITERIONOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignCriteriaResponse'] = _MUTATECAMPAIGNCRITERIARESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignCriterionResult'] = _MUTATECAMPAIGNCRITERIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignCriterionRequest = _reflection.GeneratedProtocolMessageType('GetCampaignCriterionRequest', (_message.Message,), dict( + DESCRIPTOR = _GETCAMPAIGNCRITERIONREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_criterion_service_pb2' + , + __doc__ = """Request message for + [CampaignCriterionService.GetCampaignCriterion][google.ads.googleads.v0.services.CampaignCriterionService.GetCampaignCriterion]. + + + Attributes: + resource_name: + The resource name of the criterion to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetCampaignCriterionRequest) + )) +_sym_db.RegisterMessage(GetCampaignCriterionRequest) + +MutateCampaignCriteriaRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignCriteriaRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNCRITERIAREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_criterion_service_pb2' + , + __doc__ = """Request message for + [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v0.services.CampaignCriterionService.MutateCampaignCriteria]. + + + Attributes: + customer_id: + The ID of the customer whose criteria are being modified. + operations: + The list of operations to perform on individual criteria. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignCriteriaRequest) + )) +_sym_db.RegisterMessage(MutateCampaignCriteriaRequest) + +CampaignCriterionOperation = _reflection.GeneratedProtocolMessageType('CampaignCriterionOperation', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNCRITERIONOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_criterion_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on a campaign criterion. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + criterion. + update: + Update operation: The criterion is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed criterion is + expected, in this format: ``customers/{customer_id}/campaignC + riteria/{campaign_id}_{criterion_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.CampaignCriterionOperation) + )) +_sym_db.RegisterMessage(CampaignCriterionOperation) + +MutateCampaignCriteriaResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignCriteriaResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNCRITERIARESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_criterion_service_pb2' + , + __doc__ = """Response message for campaign criterion mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignCriteriaResponse) + )) +_sym_db.RegisterMessage(MutateCampaignCriteriaResponse) + +MutateCampaignCriterionResult = _reflection.GeneratedProtocolMessageType('MutateCampaignCriterionResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNCRITERIONRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_criterion_service_pb2' + , + __doc__ = """The result for the criterion mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignCriterionResult) + )) +_sym_db.RegisterMessage(MutateCampaignCriterionResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\035CampaignCriterionServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_CAMPAIGNCRITERIONSERVICE = _descriptor.ServiceDescriptor( + name='CampaignCriterionService', + full_name='google.ads.googleads.v0.services.CampaignCriterionService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=858, + serialized_end=1310, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaignCriterion', + full_name='google.ads.googleads.v0.services.CampaignCriterionService.GetCampaignCriterion', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNCRITERIONREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0024\0222/v0/{resource_name=customers/*/campaignCriteria/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateCampaignCriteria', + full_name='google.ads.googleads.v0.services.CampaignCriterionService.MutateCampaignCriteria', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNCRITERIAREQUEST, + output_type=_MUTATECAMPAIGNCRITERIARESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002:\"5/v0/customers/{customer_id=*}/campaignCriteria:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNCRITERIONSERVICE) + +DESCRIPTOR.services_by_name['CampaignCriterionService'] = _CAMPAIGNCRITERIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2_grpc.py new file mode 100644 index 000000000..76c86445b --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_criterion_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.ads.google_ads.v0.proto.services import campaign_criterion_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2 + + +class CampaignCriterionServiceStub(object): + """Service to manage campaign criteria. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaignCriterion = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignCriterionService/GetCampaignCriterion', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.GetCampaignCriterionRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2.CampaignCriterion.FromString, + ) + self.MutateCampaignCriteria = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignCriterionService/MutateCampaignCriteria', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaResponse.FromString, + ) + + +class CampaignCriterionServiceServicer(object): + """Service to manage campaign criteria. + """ + + def GetCampaignCriterion(self, request, context): + """Returns the requested criterion in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaignCriteria(self, request, context): + """Creates, updates, or removes criteria. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignCriterionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaignCriterion': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaignCriterion, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.GetCampaignCriterionRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2.CampaignCriterion.SerializeToString, + ), + 'MutateCampaignCriteria': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaignCriteria, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__criterion__service__pb2.MutateCampaignCriteriaResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.CampaignCriterionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/campaign_service_pb2.py b/google/ads/google_ads/v0/proto/services/campaign_service_pb2.py new file mode 100644 index 000000000..4f1013572 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_service_pb2.py @@ -0,0 +1,366 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/campaign_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/campaign_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/services/campaign_service.proto\x12 google.ads.googleads.v0.services\x1a\x36google/ads/googleads_v0/proto/resources/campaign.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\"+\n\x12GetCampaignRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"v\n\x16MutateCampaignsRequest\x12\x13\n\x0b\x63ustomer_id\x18\x01 \x01(\t\x12G\n\noperations\x18\x02 \x03(\x0b\x32\x33.google.ads.googleads.v0.services.CampaignOperation\"\xe1\x01\n\x11\x43\x61mpaignOperation\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12=\n\x06\x63reate\x18\x01 \x01(\x0b\x32+.google.ads.googleads.v0.resources.CampaignH\x00\x12=\n\x06update\x18\x02 \x01(\x0b\x32+.google.ads.googleads.v0.resources.CampaignH\x00\x12\x10\n\x06remove\x18\x03 \x01(\tH\x00\x42\x0b\n\toperation\"b\n\x17MutateCampaignsResponse\x12G\n\x07results\x18\x02 \x03(\x0b\x32\x36.google.ads.googleads.v0.services.MutateCampaignResult\"-\n\x14MutateCampaignResult\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xfd\x02\n\x0f\x43\x61mpaignService\x12\xa5\x01\n\x0bGetCampaign\x12\x34.google.ads.googleads.v0.services.GetCampaignRequest\x1a+.google.ads.googleads.v0.resources.Campaign\"3\x82\xd3\xe4\x93\x02-\x12+/v0/{resource_name=customers/*/campaigns/*}\x12\xc1\x01\n\x0fMutateCampaigns\x12\x38.google.ads.googleads.v0.services.MutateCampaignsRequest\x1a\x39.google.ads.googleads.v0.services.MutateCampaignsResponse\"9\x82\xd3\xe4\x93\x02\x33\"./v0/customers/{customer_id=*}/campaigns:mutate:\x01*B\xd4\x01\n$com.google.ads.googleads.v0.servicesB\x14\x43\x61mpaignServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,]) + + + + +_GETCAMPAIGNREQUEST = _descriptor.Descriptor( + name='GetCampaignRequest', + full_name='google.ads.googleads.v0.services.GetCampaignRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetCampaignRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=219, + serialized_end=262, +) + + +_MUTATECAMPAIGNSREQUEST = _descriptor.Descriptor( + name='MutateCampaignsRequest', + full_name='google.ads.googleads.v0.services.MutateCampaignsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.MutateCampaignsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.MutateCampaignsRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=264, + serialized_end=382, +) + + +_CAMPAIGNOPERATION = _descriptor.Descriptor( + name='CampaignOperation', + full_name='google.ads.googleads.v0.services.CampaignOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='update_mask', full_name='google.ads.googleads.v0.services.CampaignOperation.update_mask', index=0, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='create', full_name='google.ads.googleads.v0.services.CampaignOperation.create', index=1, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='google.ads.googleads.v0.services.CampaignOperation.update', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='remove', full_name='google.ads.googleads.v0.services.CampaignOperation.remove', index=3, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='operation', full_name='google.ads.googleads.v0.services.CampaignOperation.operation', + index=0, containing_type=None, fields=[]), + ], + serialized_start=385, + serialized_end=610, +) + + +_MUTATECAMPAIGNSRESPONSE = _descriptor.Descriptor( + name='MutateCampaignsResponse', + full_name='google.ads.googleads.v0.services.MutateCampaignsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.MutateCampaignsResponse.results', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=612, + serialized_end=710, +) + + +_MUTATECAMPAIGNRESULT = _descriptor.Descriptor( + name='MutateCampaignResult', + full_name='google.ads.googleads.v0.services.MutateCampaignResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.MutateCampaignResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=712, + serialized_end=757, +) + +_MUTATECAMPAIGNSREQUEST.fields_by_name['operations'].message_type = _CAMPAIGNOPERATION +_CAMPAIGNOPERATION.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_CAMPAIGNOPERATION.fields_by_name['create'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_CAMPAIGNOPERATION.fields_by_name['update'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['create']) +_CAMPAIGNOPERATION.fields_by_name['create'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['update']) +_CAMPAIGNOPERATION.fields_by_name['update'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_CAMPAIGNOPERATION.oneofs_by_name['operation'].fields.append( + _CAMPAIGNOPERATION.fields_by_name['remove']) +_CAMPAIGNOPERATION.fields_by_name['remove'].containing_oneof = _CAMPAIGNOPERATION.oneofs_by_name['operation'] +_MUTATECAMPAIGNSRESPONSE.fields_by_name['results'].message_type = _MUTATECAMPAIGNRESULT +DESCRIPTOR.message_types_by_name['GetCampaignRequest'] = _GETCAMPAIGNREQUEST +DESCRIPTOR.message_types_by_name['MutateCampaignsRequest'] = _MUTATECAMPAIGNSREQUEST +DESCRIPTOR.message_types_by_name['CampaignOperation'] = _CAMPAIGNOPERATION +DESCRIPTOR.message_types_by_name['MutateCampaignsResponse'] = _MUTATECAMPAIGNSRESPONSE +DESCRIPTOR.message_types_by_name['MutateCampaignResult'] = _MUTATECAMPAIGNRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCampaignRequest = _reflection.GeneratedProtocolMessageType('GetCampaignRequest', (_message.Message,), dict( + DESCRIPTOR = _GETCAMPAIGNREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_service_pb2' + , + __doc__ = """Request message for + [CampaignService.GetCampaign][google.ads.googleads.v0.services.CampaignService.GetCampaign]. + + + Attributes: + resource_name: + The resource name of the campaign to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetCampaignRequest) + )) +_sym_db.RegisterMessage(GetCampaignRequest) + +MutateCampaignsRequest = _reflection.GeneratedProtocolMessageType('MutateCampaignsRequest', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_service_pb2' + , + __doc__ = """Request message for + [CampaignService.MutateCampaigns][google.ads.googleads.v0.services.CampaignService.MutateCampaigns]. + + + Attributes: + customer_id: + The ID of the customer whose campaigns are being modified. + operations: + The list of operations to perform on individual campaigns. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignsRequest) + )) +_sym_db.RegisterMessage(MutateCampaignsRequest) + +CampaignOperation = _reflection.GeneratedProtocolMessageType('CampaignOperation', (_message.Message,), dict( + DESCRIPTOR = _CAMPAIGNOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_service_pb2' + , + __doc__ = """A single operation (create, update, remove) on a campaign. + + + Attributes: + update_mask: + FieldMask that determines which resource fields are modified + in an update. + operation: + The mutate operation. + create: + Create operation: No resource name is expected for the new + campaign. + update: + Update operation: The campaign is expected to have a valid + resource name. + remove: + Remove operation: A resource name for the removed campaign is + expected, in this format: + ``customers/{customer_id}/campaigns/{campaign_id}`` + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.CampaignOperation) + )) +_sym_db.RegisterMessage(CampaignOperation) + +MutateCampaignsResponse = _reflection.GeneratedProtocolMessageType('MutateCampaignsResponse', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_service_pb2' + , + __doc__ = """Response message for campaign mutate. + + + Attributes: + results: + All results for the mutate. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignsResponse) + )) +_sym_db.RegisterMessage(MutateCampaignsResponse) + +MutateCampaignResult = _reflection.GeneratedProtocolMessageType('MutateCampaignResult', (_message.Message,), dict( + DESCRIPTOR = _MUTATECAMPAIGNRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.campaign_service_pb2' + , + __doc__ = """The result for the campaign mutate. + + + Attributes: + resource_name: + Returned for successful operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.MutateCampaignResult) + )) +_sym_db.RegisterMessage(MutateCampaignResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\024CampaignServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_CAMPAIGNSERVICE = _descriptor.ServiceDescriptor( + name='CampaignService', + full_name='google.ads.googleads.v0.services.CampaignService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=760, + serialized_end=1141, + methods=[ + _descriptor.MethodDescriptor( + name='GetCampaign', + full_name='google.ads.googleads.v0.services.CampaignService.GetCampaign', + index=0, + containing_service=None, + input_type=_GETCAMPAIGNREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002-\022+/v0/{resource_name=customers/*/campaigns/*}')), + ), + _descriptor.MethodDescriptor( + name='MutateCampaigns', + full_name='google.ads.googleads.v0.services.CampaignService.MutateCampaigns', + index=1, + containing_service=None, + input_type=_MUTATECAMPAIGNSREQUEST, + output_type=_MUTATECAMPAIGNSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0023\"./v0/customers/{customer_id=*}/campaigns:mutate:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_CAMPAIGNSERVICE) + +DESCRIPTOR.services_by_name['CampaignService'] = _CAMPAIGNSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/campaign_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/campaign_service_pb2_grpc.py new file mode 100644 index 000000000..555cc1981 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/campaign_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2 +from google.ads.google_ads.v0.proto.services import campaign_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2 + + +class CampaignServiceStub(object): + """Service to manage campaigns. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCampaign = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignService/GetCampaign', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.GetCampaignRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2.Campaign.FromString, + ) + self.MutateCampaigns = channel.unary_unary( + '/google.ads.googleads.v0.services.CampaignService/MutateCampaigns', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsResponse.FromString, + ) + + +class CampaignServiceServicer(object): + """Service to manage campaigns. + """ + + def GetCampaign(self, request, context): + """Returns the requested campaign in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def MutateCampaigns(self, request, context): + """Creates, updates, or removes campaigns. Operation statuses are returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CampaignServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCampaign': grpc.unary_unary_rpc_method_handler( + servicer.GetCampaign, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.GetCampaignRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2.Campaign.SerializeToString, + ), + 'MutateCampaigns': grpc.unary_unary_rpc_method_handler( + servicer.MutateCampaigns, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_campaign__service__pb2.MutateCampaignsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.CampaignService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/customer_service_pb2.py b/google/ads/google_ads/v0/proto/services/customer_service_pb2.py new file mode 100644 index 000000000..9e9ce18ee --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/customer_service_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/customer_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/customer_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\n=google/ads/googleads_v0/proto/services/customer_service.proto\x12 google.ads.googleads.v0.services\x1a\x36google/ads/googleads_v0/proto/resources/customer.proto\x1a\x1cgoogle/api/annotations.proto\"+\n\x12GetCustomerRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xad\x01\n\x0f\x43ustomerService\x12\x99\x01\n\x0bGetCustomer\x12\x34.google.ads.googleads.v0.services.GetCustomerRequest\x1a+.google.ads.googleads.v0.resources.Customer\"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v0/{resource_name=customers/*}B\xd4\x01\n$com.google.ads.googleads.v0.servicesB\x14\x43ustomerServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GETCUSTOMERREQUEST = _descriptor.Descriptor( + name='GetCustomerRequest', + full_name='google.ads.googleads.v0.services.GetCustomerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetCustomerRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=185, + serialized_end=228, +) + +DESCRIPTOR.message_types_by_name['GetCustomerRequest'] = _GETCUSTOMERREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetCustomerRequest = _reflection.GeneratedProtocolMessageType('GetCustomerRequest', (_message.Message,), dict( + DESCRIPTOR = _GETCUSTOMERREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.customer_service_pb2' + , + __doc__ = """Request message for + [CustomerService.GetCustomer][google.ads.googleads.v0.services.CustomerService.GetCustomer]. + + + Attributes: + resource_name: + The resource name of the customer to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetCustomerRequest) + )) +_sym_db.RegisterMessage(GetCustomerRequest) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\024CustomerServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_CUSTOMERSERVICE = _descriptor.ServiceDescriptor( + name='CustomerService', + full_name='google.ads.googleads.v0.services.CustomerService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=231, + serialized_end=404, + methods=[ + _descriptor.MethodDescriptor( + name='GetCustomer', + full_name='google.ads.googleads.v0.services.CustomerService.GetCustomer', + index=0, + containing_service=None, + input_type=_GETCUSTOMERREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002!\022\037/v0/{resource_name=customers/*}')), + ), +]) +_sym_db.RegisterServiceDescriptor(_CUSTOMERSERVICE) + +DESCRIPTOR.services_by_name['CustomerService'] = _CUSTOMERSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/customer_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/customer_service_pb2_grpc.py new file mode 100644 index 000000000..27541b315 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/customer_service_pb2_grpc.py @@ -0,0 +1,47 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2 +from google.ads.google_ads.v0.proto.services import customer_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_customer__service__pb2 + + +class CustomerServiceStub(object): + """Service to manage customers. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetCustomer = channel.unary_unary( + '/google.ads.googleads.v0.services.CustomerService/GetCustomer', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_customer__service__pb2.GetCustomerRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2.Customer.FromString, + ) + + +class CustomerServiceServicer(object): + """Service to manage customers. + """ + + def GetCustomer(self, request, context): + """Returns the requested customer in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_CustomerServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetCustomer': grpc.unary_unary_rpc_method_handler( + servicer.GetCustomer, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_customer__service__pb2.GetCustomerRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2.Customer.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.CustomerService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2.py b/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2.py new file mode 100644 index 000000000..00ba0ea5d --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/geo_target_constant_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/geo_target_constant_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nHgoogle/ads/googleads_v0/proto/services/geo_target_constant_service.proto\x12 google.ads.googleads.v0.services\x1a\x41google/ads/googleads_v0/proto/resources/geo_target_constant.proto\x1a\x1cgoogle/api/annotations.proto\"4\n\x1bGetGeoTargetConstantRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xda\x01\n\x18GeoTargetConstantService\x12\xbd\x01\n\x14GetGeoTargetConstant\x12=.google.ads.googleads.v0.services.GetGeoTargetConstantRequest\x1a\x34.google.ads.googleads.v0.resources.GeoTargetConstant\"0\x82\xd3\xe4\x93\x02*\x12(/v0/{resource_name=geoTargetConstants/*}B\xdd\x01\n$com.google.ads.googleads.v0.servicesB\x1dGeoTargetConstantServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GETGEOTARGETCONSTANTREQUEST = _descriptor.Descriptor( + name='GetGeoTargetConstantRequest', + full_name='google.ads.googleads.v0.services.GetGeoTargetConstantRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetGeoTargetConstantRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=207, + serialized_end=259, +) + +DESCRIPTOR.message_types_by_name['GetGeoTargetConstantRequest'] = _GETGEOTARGETCONSTANTREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGeoTargetConstantRequest = _reflection.GeneratedProtocolMessageType('GetGeoTargetConstantRequest', (_message.Message,), dict( + DESCRIPTOR = _GETGEOTARGETCONSTANTREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.geo_target_constant_service_pb2' + , + __doc__ = """Request message for + [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v0.services.GeoTargetConstantService.GetGeoTargetConstant]. + + + Attributes: + resource_name: + The resource name of the geo target constant to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetGeoTargetConstantRequest) + )) +_sym_db.RegisterMessage(GetGeoTargetConstantRequest) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\035GeoTargetConstantServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_GEOTARGETCONSTANTSERVICE = _descriptor.ServiceDescriptor( + name='GeoTargetConstantService', + full_name='google.ads.googleads.v0.services.GeoTargetConstantService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=262, + serialized_end=480, + methods=[ + _descriptor.MethodDescriptor( + name='GetGeoTargetConstant', + full_name='google.ads.googleads.v0.services.GeoTargetConstantService.GetGeoTargetConstant', + index=0, + containing_service=None, + input_type=_GETGEOTARGETCONSTANTREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002*\022(/v0/{resource_name=geoTargetConstants/*}')), + ), +]) +_sym_db.RegisterServiceDescriptor(_GEOTARGETCONSTANTSERVICE) + +DESCRIPTOR.services_by_name['GeoTargetConstantService'] = _GEOTARGETCONSTANTSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2_grpc.py new file mode 100644 index 000000000..1677c73ed --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/geo_target_constant_service_pb2_grpc.py @@ -0,0 +1,47 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.ads.google_ads.v0.proto.services import geo_target_constant_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_geo__target__constant__service__pb2 + + +class GeoTargetConstantServiceStub(object): + """Service to fetch geo target constants. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGeoTargetConstant = channel.unary_unary( + '/google.ads.googleads.v0.services.GeoTargetConstantService/GetGeoTargetConstant', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_geo__target__constant__service__pb2.GetGeoTargetConstantRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2.GeoTargetConstant.FromString, + ) + + +class GeoTargetConstantServiceServicer(object): + """Service to fetch geo target constants. + """ + + def GetGeoTargetConstant(self, request, context): + """Returns the requested geo target constant in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GeoTargetConstantServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGeoTargetConstant': grpc.unary_unary_rpc_method_handler( + servicer.GetGeoTargetConstant, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_geo__target__constant__service__pb2.GetGeoTargetConstantRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2.GeoTargetConstant.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.GeoTargetConstantService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2.py b/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2.py new file mode 100644 index 000000000..6d5f4e9ca --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2.py @@ -0,0 +1,258 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/google_ads_field_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import google_ads_field_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/google_ads_field_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nEgoogle/ads/googleads_v0/proto/services/google_ads_field_service.proto\x12 google.ads.googleads.v0.services\x1a>google/ads/googleads_v0/proto/resources/google_ads_field.proto\x1a\x1cgoogle/api/annotations.proto\"1\n\x18GetGoogleAdsFieldRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t\"T\n\x1cSearchGoogleAdsFieldsRequest\x12\r\n\x05query\x18\x01 \x01(\t\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\"\x99\x01\n\x1dSearchGoogleAdsFieldsResponse\x12\x42\n\x07results\x18\x01 \x03(\x0b\x32\x31.google.ads.googleads.v0.resources.GoogleAdsField\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1b\n\x13total_results_count\x18\x03 \x01(\x03\x32\x8d\x03\n\x15GoogleAdsFieldService\x12\xb1\x01\n\x11GetGoogleAdsField\x12:.google.ads.googleads.v0.services.GetGoogleAdsFieldRequest\x1a\x31.google.ads.googleads.v0.resources.GoogleAdsField\"-\x82\xd3\xe4\x93\x02\'\x12%/v0/{resource_name=googleAdsFields/*}\x12\xbf\x01\n\x15SearchGoogleAdsFields\x12>.google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest\x1a?.google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v0/googleAdsFields:search:\x01*B\xda\x01\n$com.google.ads.googleads.v0.servicesB\x1aGoogleAdsFieldServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GETGOOGLEADSFIELDREQUEST = _descriptor.Descriptor( + name='GetGoogleAdsFieldRequest', + full_name='google.ads.googleads.v0.services.GetGoogleAdsFieldRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetGoogleAdsFieldRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=201, + serialized_end=250, +) + + +_SEARCHGOOGLEADSFIELDSREQUEST = _descriptor.Descriptor( + name='SearchGoogleAdsFieldsRequest', + full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='query', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest.query', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest.page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest.page_size', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=252, + serialized_end=336, +) + + +_SEARCHGOOGLEADSFIELDSRESPONSE = _descriptor.Descriptor( + name='SearchGoogleAdsFieldsResponse', + full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='total_results_count', full_name='google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse.total_results_count', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=339, + serialized_end=492, +) + +_SEARCHGOOGLEADSFIELDSRESPONSE.fields_by_name['results'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2._GOOGLEADSFIELD +DESCRIPTOR.message_types_by_name['GetGoogleAdsFieldRequest'] = _GETGOOGLEADSFIELDREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsFieldsRequest'] = _SEARCHGOOGLEADSFIELDSREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsFieldsResponse'] = _SEARCHGOOGLEADSFIELDSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetGoogleAdsFieldRequest = _reflection.GeneratedProtocolMessageType('GetGoogleAdsFieldRequest', (_message.Message,), dict( + DESCRIPTOR = _GETGOOGLEADSFIELDREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_field_service_pb2' + , + __doc__ = """Request message for + [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v0.services.GoogleAdsFieldService.GetGoogleAdsField]. + + + Attributes: + resource_name: + The resource name of the field to get. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetGoogleAdsFieldRequest) + )) +_sym_db.RegisterMessage(GetGoogleAdsFieldRequest) + +SearchGoogleAdsFieldsRequest = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsFieldsRequest', (_message.Message,), dict( + DESCRIPTOR = _SEARCHGOOGLEADSFIELDSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_field_service_pb2' + , + __doc__ = """Request message for + [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v0.services.GoogleAdsFieldService.SearchGoogleAdsFields]. + + + Attributes: + query: + The query string. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When too + large a page is requested, the server may decide to further + limit the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest) + )) +_sym_db.RegisterMessage(SearchGoogleAdsFieldsRequest) + +SearchGoogleAdsFieldsResponse = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsFieldsResponse', (_message.Message,), dict( + DESCRIPTOR = _SEARCHGOOGLEADSFIELDSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_field_service_pb2' + , + __doc__ = """Response message for + [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v0.services.GoogleAdsFieldService.SearchGoogleAdsFields]. + + + Attributes: + results: + The list of fields that matched the query. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + total_results_count: + Total number of results that match the query ignoring the + LIMIT clause. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse) + )) +_sym_db.RegisterMessage(SearchGoogleAdsFieldsResponse) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\032GoogleAdsFieldServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_GOOGLEADSFIELDSERVICE = _descriptor.ServiceDescriptor( + name='GoogleAdsFieldService', + full_name='google.ads.googleads.v0.services.GoogleAdsFieldService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=495, + serialized_end=892, + methods=[ + _descriptor.MethodDescriptor( + name='GetGoogleAdsField', + full_name='google.ads.googleads.v0.services.GoogleAdsFieldService.GetGoogleAdsField', + index=0, + containing_service=None, + input_type=_GETGOOGLEADSFIELDREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2._GOOGLEADSFIELD, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\'\022%/v0/{resource_name=googleAdsFields/*}')), + ), + _descriptor.MethodDescriptor( + name='SearchGoogleAdsFields', + full_name='google.ads.googleads.v0.services.GoogleAdsFieldService.SearchGoogleAdsFields', + index=1, + containing_service=None, + input_type=_SEARCHGOOGLEADSFIELDSREQUEST, + output_type=_SEARCHGOOGLEADSFIELDSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\037\"\032/v0/googleAdsFields:search:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_GOOGLEADSFIELDSERVICE) + +DESCRIPTOR.services_by_name['GoogleAdsFieldService'] = _GOOGLEADSFIELDSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2_grpc.py new file mode 100644 index 000000000..787671a29 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/google_ads_field_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import google_ads_field_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2 +from google.ads.google_ads.v0.proto.services import google_ads_field_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2 + + +class GoogleAdsFieldServiceStub(object): + """Service to fetch Google Ads API fields. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetGoogleAdsField = channel.unary_unary( + '/google.ads.googleads.v0.services.GoogleAdsFieldService/GetGoogleAdsField', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.GetGoogleAdsFieldRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2.GoogleAdsField.FromString, + ) + self.SearchGoogleAdsFields = channel.unary_unary( + '/google.ads.googleads.v0.services.GoogleAdsFieldService/SearchGoogleAdsFields', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsResponse.FromString, + ) + + +class GoogleAdsFieldServiceServicer(object): + """Service to fetch Google Ads API fields. + """ + + def GetGoogleAdsField(self, request, context): + """Returns just the requested field. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SearchGoogleAdsFields(self, request, context): + """Returns all fields that match the search query. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GoogleAdsFieldServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetGoogleAdsField': grpc.unary_unary_rpc_method_handler( + servicer.GetGoogleAdsField, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.GetGoogleAdsFieldRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_google__ads__field__pb2.GoogleAdsField.SerializeToString, + ), + 'SearchGoogleAdsFields': grpc.unary_unary_rpc_method_handler( + servicer.SearchGoogleAdsFields, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__field__service__pb2.SearchGoogleAdsFieldsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.GoogleAdsFieldService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/google_ads_service_pb2.py b/google/ads/google_ads/v0/proto/services/google_ads_service_pb2.py new file mode 100644 index 000000000..c511a72ec --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/google_ads_service_pb2.py @@ -0,0 +1,511 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/google_ads_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.common import metrics_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_metrics__pb2 +from google.ads.google_ads.v0.proto.enums import ad_network_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__network__type__pb2 +from google.ads.google_ads.v0.proto.enums import day_of_week_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_day__of__week__pb2 +from google.ads.google_ads.v0.proto.enums import device_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_device__pb2 +from google.ads.google_ads.v0.proto.enums import slot_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_slot__pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_ad_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_bid_modifier_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2 +from google.ads.google_ads.v0.proto.resources import bidding_strategy_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2 +from google.ads.google_ads.v0.proto.resources import campaign_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2 +from google.ads.google_ads.v0.proto.resources import campaign_budget_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2 +from google.ads.google_ads.v0.proto.resources import campaign_criterion_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2 +from google.ads.google_ads.v0.proto.resources import customer_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2 +from google.ads.google_ads.v0.proto.resources import geo_target_constant_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2 +from google.ads.google_ads.v0.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.ads.google_ads.v0.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/google_ads_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\n?google/ads/googleads_v0/proto/services/google_ads_service.proto\x12 google.ads.googleads.v0.services\x1a\x32google/ads/googleads_v0/proto/common/metrics.proto\x1a\x39google/ads/googleads_v0/proto/enums/ad_network_type.proto\x1a\x35google/ads/googleads_v0/proto/enums/day_of_week.proto\x1a\x30google/ads/googleads_v0/proto/enums/device.proto\x1a.google/ads/googleads_v0/proto/enums/slot.proto\x1a\x36google/ads/googleads_v0/proto/resources/ad_group.proto\x1a\x39google/ads/googleads_v0/proto/resources/ad_group_ad.proto\x1a\x43google/ads/googleads_v0/proto/resources/ad_group_bid_modifier.proto\x1a@google/ads/googleads_v0/proto/resources/ad_group_criterion.proto\x1a>google/ads/googleads_v0/proto/resources/bidding_strategy.proto\x1a\x36google/ads/googleads_v0/proto/resources/campaign.proto\x1a=google/ads/googleads_v0/proto/resources/campaign_budget.proto\x1a@google/ads/googleads_v0/proto/resources/campaign_criterion.proto\x1a\x36google/ads/googleads_v0/proto/resources/customer.proto\x1a\x41google/ads/googleads_v0/proto/resources/geo_target_constant.proto\x1a:google/ads/googleads_v0/proto/resources/keyword_view.proto\x1a.google.ads.googleads.v0.enums.AdNetworkTypeEnum.AdNetworkType\x12*\n\x04\x64\x61te\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12K\n\x0b\x64\x61y_of_week\x18\x07 \x01(\x0e\x32\x36.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek\x12@\n\x06\x64\x65vice\x18\x08 \x01(\x0e\x32\x30.google.ads.googleads.v0.enums.DeviceEnum.Device\x12)\n\x04hour\x18\t \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12+\n\x05month\x18\n \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07quarter\x18\x0c \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12:\n\x04slot\x18\r \x01(\x0e\x32,.google.ads.googleads.v0.enums.SlotEnum.Slot\x12*\n\x04week\x18\x0e \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12)\n\x04year\x18\x0f \x01(\x0b\x32\x1b.google.protobuf.Int32Value2\xcd\x01\n\x10GoogleAdsService\x12\xb8\x01\n\x06Search\x12\x38.google.ads.googleads.v0.services.SearchGoogleAdsRequest\x1a\x39.google.ads.googleads.v0.services.SearchGoogleAdsResponse\"9\x82\xd3\xe4\x93\x02\x33\"./v0/customers/{customer_id=*}/googleAds:search:\x01*B\xd5\x01\n$com.google.ads.googleads.v0.servicesB\x15GoogleAdsServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_metrics__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__network__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_day__of__week__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_device__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_slot__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + + +_SEARCHGOOGLEADSREQUEST = _descriptor.Descriptor( + name='SearchGoogleAdsRequest', + full_name='google.ads.googleads.v0.services.SearchGoogleAdsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.SearchGoogleAdsRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='query', full_name='google.ads.googleads.v0.services.SearchGoogleAdsRequest.query', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_token', full_name='google.ads.googleads.v0.services.SearchGoogleAdsRequest.page_token', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='page_size', full_name='google.ads.googleads.v0.services.SearchGoogleAdsRequest.page_size', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1205, + serialized_end=1304, +) + + +_SEARCHGOOGLEADSRESPONSE = _descriptor.Descriptor( + name='SearchGoogleAdsResponse', + full_name='google.ads.googleads.v0.services.SearchGoogleAdsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.SearchGoogleAdsResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='next_page_token', full_name='google.ads.googleads.v0.services.SearchGoogleAdsResponse.next_page_token', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='total_results_count', full_name='google.ads.googleads.v0.services.SearchGoogleAdsResponse.total_results_count', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='field_mask', full_name='google.ads.googleads.v0.services.SearchGoogleAdsResponse.field_mask', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1307, + serialized_end=1499, +) + + +_GOOGLEADSROW = _descriptor.Descriptor( + name='GoogleAdsRow', + full_name='google.ads.googleads.v0.services.GoogleAdsRow', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v0.services.GoogleAdsRow.ad_group', index=0, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_ad', full_name='google.ads.googleads.v0.services.GoogleAdsRow.ad_group_ad', index=1, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_bid_modifier', full_name='google.ads.googleads.v0.services.GoogleAdsRow.ad_group_bid_modifier', index=2, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_group_criterion', full_name='google.ads.googleads.v0.services.GoogleAdsRow.ad_group_criterion', index=3, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bidding_strategy', full_name='google.ads.googleads.v0.services.GoogleAdsRow.bidding_strategy', index=4, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v0.services.GoogleAdsRow.campaign_budget', index=5, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign', full_name='google.ads.googleads.v0.services.GoogleAdsRow.campaign', index=6, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_criterion', full_name='google.ads.googleads.v0.services.GoogleAdsRow.campaign_criterion', index=7, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='customer', full_name='google.ads.googleads.v0.services.GoogleAdsRow.customer', index=8, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='geo_target_constant', full_name='google.ads.googleads.v0.services.GoogleAdsRow.geo_target_constant', index=9, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keyword_view', full_name='google.ads.googleads.v0.services.GoogleAdsRow.keyword_view', index=10, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='recommendation', full_name='google.ads.googleads.v0.services.GoogleAdsRow.recommendation', index=11, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='metrics', full_name='google.ads.googleads.v0.services.GoogleAdsRow.metrics', index=12, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ad_network_type', full_name='google.ads.googleads.v0.services.GoogleAdsRow.ad_network_type', index=13, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='date', full_name='google.ads.googleads.v0.services.GoogleAdsRow.date', index=14, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='day_of_week', full_name='google.ads.googleads.v0.services.GoogleAdsRow.day_of_week', index=15, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='device', full_name='google.ads.googleads.v0.services.GoogleAdsRow.device', index=16, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hour', full_name='google.ads.googleads.v0.services.GoogleAdsRow.hour', index=17, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='month', full_name='google.ads.googleads.v0.services.GoogleAdsRow.month', index=18, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='quarter', full_name='google.ads.googleads.v0.services.GoogleAdsRow.quarter', index=19, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slot', full_name='google.ads.googleads.v0.services.GoogleAdsRow.slot', index=20, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='week', full_name='google.ads.googleads.v0.services.GoogleAdsRow.week', index=21, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='year', full_name='google.ads.googleads.v0.services.GoogleAdsRow.year', index=22, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1502, + serialized_end=3018, +) + +_SEARCHGOOGLEADSRESPONSE.fields_by_name['results'].message_type = _GOOGLEADSROW +_SEARCHGOOGLEADSRESPONSE.fields_by_name['field_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK +_GOOGLEADSROW.fields_by_name['ad_group'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__pb2._ADGROUP +_GOOGLEADSROW.fields_by_name['ad_group_ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__ad__pb2._ADGROUPAD +_GOOGLEADSROW.fields_by_name['ad_group_bid_modifier'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__bid__modifier__pb2._ADGROUPBIDMODIFIER +_GOOGLEADSROW.fields_by_name['ad_group_criterion'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__group__criterion__pb2._ADGROUPCRITERION +_GOOGLEADSROW.fields_by_name['bidding_strategy'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_bidding__strategy__pb2._BIDDINGSTRATEGY +_GOOGLEADSROW.fields_by_name['campaign_budget'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__budget__pb2._CAMPAIGNBUDGET +_GOOGLEADSROW.fields_by_name['campaign'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__pb2._CAMPAIGN +_GOOGLEADSROW.fields_by_name['campaign_criterion'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_campaign__criterion__pb2._CAMPAIGNCRITERION +_GOOGLEADSROW.fields_by_name['customer'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_customer__pb2._CUSTOMER +_GOOGLEADSROW.fields_by_name['geo_target_constant'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_geo__target__constant__pb2._GEOTARGETCONSTANT +_GOOGLEADSROW.fields_by_name['keyword_view'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2._KEYWORDVIEW +_GOOGLEADSROW.fields_by_name['recommendation'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2._RECOMMENDATION +_GOOGLEADSROW.fields_by_name['metrics'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_common_dot_metrics__pb2._METRICS +_GOOGLEADSROW.fields_by_name['ad_network_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_ad__network__type__pb2._ADNETWORKTYPEENUM_ADNETWORKTYPE +_GOOGLEADSROW.fields_by_name['date'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSROW.fields_by_name['day_of_week'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_day__of__week__pb2._DAYOFWEEKENUM_DAYOFWEEK +_GOOGLEADSROW.fields_by_name['device'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_device__pb2._DEVICEENUM_DEVICE +_GOOGLEADSROW.fields_by_name['hour'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_GOOGLEADSROW.fields_by_name['month'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSROW.fields_by_name['quarter'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSROW.fields_by_name['slot'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_slot__pb2._SLOTENUM_SLOT +_GOOGLEADSROW.fields_by_name['week'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_GOOGLEADSROW.fields_by_name['year'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +DESCRIPTOR.message_types_by_name['SearchGoogleAdsRequest'] = _SEARCHGOOGLEADSREQUEST +DESCRIPTOR.message_types_by_name['SearchGoogleAdsResponse'] = _SEARCHGOOGLEADSRESPONSE +DESCRIPTOR.message_types_by_name['GoogleAdsRow'] = _GOOGLEADSROW +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +SearchGoogleAdsRequest = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsRequest', (_message.Message,), dict( + DESCRIPTOR = _SEARCHGOOGLEADSREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_service_pb2' + , + __doc__ = """Request message for + [GoogleAdsService.Search][google.ads.googleads.v0.services.GoogleAdsService.Search]. + + + Attributes: + customer_id: + The ID of the customer being queried. + query: + The query string. + page_token: + Token of the page to retrieve. If not specified, the first + page of results will be returned. Use the value obtained from + ``next_page_token`` in the previous response in order to + request the next page of results. + page_size: + Number of elements to retrieve in a single page. When too + large a page is requested, the server may decide to further + limit the number of returned resources. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.SearchGoogleAdsRequest) + )) +_sym_db.RegisterMessage(SearchGoogleAdsRequest) + +SearchGoogleAdsResponse = _reflection.GeneratedProtocolMessageType('SearchGoogleAdsResponse', (_message.Message,), dict( + DESCRIPTOR = _SEARCHGOOGLEADSRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_service_pb2' + , + __doc__ = """Response message for + [GoogleAdsService.Search][google.ads.googleads.v0.services.GoogleAdsService.Search]. + + + Attributes: + results: + The list of rows that matched the query. + next_page_token: + Pagination token used to retrieve the next page of results. + Pass the content of this string as the ``page_token`` + attribute of the next request. ``next_page_token`` is not + returned for the last page. + total_results_count: + Total number of results that match the query ignoring the + LIMIT clause. + field_mask: + FieldMask that represents what fields were requested by the + user. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.SearchGoogleAdsResponse) + )) +_sym_db.RegisterMessage(SearchGoogleAdsResponse) + +GoogleAdsRow = _reflection.GeneratedProtocolMessageType('GoogleAdsRow', (_message.Message,), dict( + DESCRIPTOR = _GOOGLEADSROW, + __module__ = 'google.ads.googleads_v0.proto.services.google_ads_service_pb2' + , + __doc__ = """A returned row from the query. + + + Attributes: + ad_group: + The ad group referenced in the query. + ad_group_ad: + The ad referenced in the query. + ad_group_bid_modifier: + The bid modifier referenced in the query. + ad_group_criterion: + The criterion referenced in the query. + bidding_strategy: + The bidding strategy referenced in the query. + campaign_budget: + The campaign budget referenced in the query. + campaign: + The campaign referenced in the query. + campaign_criterion: + The campaign criterion referenced in the query. + customer: + The customer referenced in the query. + geo_target_constant: + The geo target constant referenced in the query. + keyword_view: + The keyword view referenced in the query. + recommendation: + The recommendation referenced in the query. + metrics: + The metrics. + ad_network_type: + Ad network type. + date: + Date to which metrics apply. YYYY-MM-DD format, e.g., + 2018-04-17. + day_of_week: + Day of the week, e.g., MONDAY. + device: + Platform to which metrics apply. + hour: + Hour of day as a number between 0 and 23, inclusive. + month: + Month as represented by the date of the first day of a month. + quarter: + Quarter as represented by the date of the first day of a + quarter. Uses the calendar year for quarters, e.g., the second + quarter of 2018 starts on 2018-04-01. + slot: + Position of the ad. + week: + Week as defined as Monday through Sunday, and represented by + the date of Monday. + year: + Year, formatted as yyyy. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GoogleAdsRow) + )) +_sym_db.RegisterMessage(GoogleAdsRow) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\025GoogleAdsServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_GOOGLEADSSERVICE = _descriptor.ServiceDescriptor( + name='GoogleAdsService', + full_name='google.ads.googleads.v0.services.GoogleAdsService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=3021, + serialized_end=3226, + methods=[ + _descriptor.MethodDescriptor( + name='Search', + full_name='google.ads.googleads.v0.services.GoogleAdsService.Search', + index=0, + containing_service=None, + input_type=_SEARCHGOOGLEADSREQUEST, + output_type=_SEARCHGOOGLEADSRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0023\"./v0/customers/{customer_id=*}/googleAds:search:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_GOOGLEADSSERVICE) + +DESCRIPTOR.services_by_name['GoogleAdsService'] = _GOOGLEADSSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/google_ads_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/google_ads_service_pb2_grpc.py new file mode 100644 index 000000000..c20496af3 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/google_ads_service_pb2_grpc.py @@ -0,0 +1,46 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.services import google_ads_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__service__pb2 + + +class GoogleAdsServiceStub(object): + """Service to fetch data and metrics across resources. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Search = channel.unary_unary( + '/google.ads.googleads.v0.services.GoogleAdsService/Search', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsResponse.FromString, + ) + + +class GoogleAdsServiceServicer(object): + """Service to fetch data and metrics across resources. + """ + + def Search(self, request, context): + """Returns all rows that match the search query. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_GoogleAdsServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Search': grpc.unary_unary_rpc_method_handler( + servicer.Search, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_google__ads__service__pb2.SearchGoogleAdsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.GoogleAdsService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2.py b/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2.py new file mode 100644 index 000000000..04d83ba20 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2.py @@ -0,0 +1,107 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/keyword_view_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/keyword_view_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nAgoogle/ads/googleads_v0/proto/services/keyword_view_service.proto\x12 google.ads.googleads.v0.services\x1a:google/ads/googleads_v0/proto/resources/keyword_view.proto\x1a\x1cgoogle/api/annotations.proto\".\n\x15GetKeywordViewRequest\x12\x15\n\rresource_name\x18\x01 \x01(\t2\xc8\x01\n\x12KeywordViewService\x12\xb1\x01\n\x0eGetKeywordView\x12\x37.google.ads.googleads.v0.services.GetKeywordViewRequest\x1a..google.ads.googleads.v0.resources.KeywordView\"6\x82\xd3\xe4\x93\x02\x30\x12./v0/{resource_name=customers/*/keywordViews/*}B\xd7\x01\n$com.google.ads.googleads.v0.servicesB\x17KeywordViewServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,]) + + + + +_GETKEYWORDVIEWREQUEST = _descriptor.Descriptor( + name='GetKeywordViewRequest', + full_name='google.ads.googleads.v0.services.GetKeywordViewRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetKeywordViewRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=193, + serialized_end=239, +) + +DESCRIPTOR.message_types_by_name['GetKeywordViewRequest'] = _GETKEYWORDVIEWREQUEST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetKeywordViewRequest = _reflection.GeneratedProtocolMessageType('GetKeywordViewRequest', (_message.Message,), dict( + DESCRIPTOR = _GETKEYWORDVIEWREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.keyword_view_service_pb2' + , + __doc__ = """Request message for + [KeywordViewService.GetKeywordView][google.ads.googleads.v0.services.KeywordViewService.GetKeywordView]. + + + Attributes: + resource_name: + The resource name of the keyword view to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetKeywordViewRequest) + )) +_sym_db.RegisterMessage(GetKeywordViewRequest) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\027KeywordViewServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_KEYWORDVIEWSERVICE = _descriptor.ServiceDescriptor( + name='KeywordViewService', + full_name='google.ads.googleads.v0.services.KeywordViewService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=242, + serialized_end=442, + methods=[ + _descriptor.MethodDescriptor( + name='GetKeywordView', + full_name='google.ads.googleads.v0.services.KeywordViewService.GetKeywordView', + index=0, + containing_service=None, + input_type=_GETKEYWORDVIEWREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2._KEYWORDVIEW, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0020\022./v0/{resource_name=customers/*/keywordViews/*}')), + ), +]) +_sym_db.RegisterServiceDescriptor(_KEYWORDVIEWSERVICE) + +DESCRIPTOR.services_by_name['KeywordViewService'] = _KEYWORDVIEWSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2_grpc.py new file mode 100644 index 000000000..6d31e720a --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/keyword_view_service_pb2_grpc.py @@ -0,0 +1,47 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import keyword_view_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2 +from google.ads.google_ads.v0.proto.services import keyword_view_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_keyword__view__service__pb2 + + +class KeywordViewServiceStub(object): + """Service to manage keyword views. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetKeywordView = channel.unary_unary( + '/google.ads.googleads.v0.services.KeywordViewService/GetKeywordView', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_keyword__view__service__pb2.GetKeywordViewRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2.KeywordView.FromString, + ) + + +class KeywordViewServiceServicer(object): + """Service to manage keyword views. + """ + + def GetKeywordView(self, request, context): + """Returns the requested keyword view in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_KeywordViewServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetKeywordView': grpc.unary_unary_rpc_method_handler( + servicer.GetKeywordView, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_keyword__view__service__pb2.GetKeywordViewRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_keyword__view__pb2.KeywordView.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.KeywordViewService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/proto/services/recommendation_service_pb2.py b/google/ads/google_ads/v0/proto/services/recommendation_service_pb2.py new file mode 100644 index 000000000..768757b1c --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/recommendation_service_pb2.py @@ -0,0 +1,633 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/googleads_v0/proto/services/recommendation_service.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.ads.google_ads.v0.proto.enums import keyword_match_type_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2 +from google.ads.google_ads.v0.proto.resources import ad_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__pb2 +from google.ads.google_ads.v0.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='google/ads/googleads_v0/proto/services/recommendation_service.proto', + package='google.ads.googleads.v0.services', + syntax='proto3', + serialized_pb=_b('\nCgoogle/ads/googleads_v0/proto/services/recommendation_service.proto\x12 google.ads.googleads.v0.services\x1a.google.ads.googleads.v0.services.ApplyRecommendationOperation\"\x90\x08\n\x1c\x41pplyRecommendationOperation\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12r\n\x0f\x63\x61mpaign_budget\x18\x02 \x01(\x0b\x32W.google.ads.googleads.v0.services.ApplyRecommendationOperation.CampaignBudgetParametersH\x00\x12\x62\n\x07text_ad\x18\x03 \x01(\x0b\x32O.google.ads.googleads.v0.services.ApplyRecommendationOperation.TextAdParametersH\x00\x12\x63\n\x07keyword\x18\x04 \x01(\x0b\x32P.google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParametersH\x00\x12t\n\x11target_cpa_opt_in\x18\x05 \x01(\x0b\x32W.google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParametersH\x00\x1aY\n\x18\x43\x61mpaignBudgetParameters\x12=\n\x18new_budget_amount_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\x45\n\x10TextAdParameters\x12\x31\n\x02\x61\x64\x18\x01 \x01(\x0b\x32%.google.ads.googleads.v0.resources.Ad\x1a\xd2\x01\n\x11KeywordParameters\x12.\n\x08\x61\x64_group\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12X\n\nmatch_type\x18\x02 \x01(\x0e\x32\x44.google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType\x12\x33\n\x0e\x63pc_bid_micros\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x1a\x9a\x01\n\x18TargetCpaOptInParameters\x12\x36\n\x11target_cpa_micros\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x46\n!new_campaign_budget_amount_micros\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x12\n\x10\x61pply_parameters\"k\n\x1b\x41pplyRecommendationResponse\x12L\n\x07results\x18\x01 \x03(\x0b\x32;.google.ads.googleads.v0.services.ApplyRecommendationResult\"d\n\x19\x41pplyRecommendationResult\x12\x17\n\rresource_name\x18\x01 \x01(\tH\x00\x12$\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.StatusH\x00\x42\x08\n\x06result2\xac\x03\n\x15RecommendationService\x12\xbd\x01\n\x11GetRecommendation\x12:.google.ads.googleads.v0.services.GetRecommendationRequest\x1a\x31.google.ads.googleads.v0.resources.Recommendation\"9\x82\xd3\xe4\x93\x02\x33\x12\x31/v0/{resource_name=customers/*/recommendations/*}\x12\xd2\x01\n\x13\x41pplyRecommendation\x12<.google.ads.googleads.v0.services.ApplyRecommendationRequest\x1a=.google.ads.googleads.v0.services.ApplyRecommendationResponse\">\x82\xd3\xe4\x93\x02\x38\"3/v0/customers/{customer_id=*}/recommendations:apply:\x01*B\xda\x01\n$com.google.ads.googleads.v0.servicesB\x1aRecommendationServiceProtoP\x01ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\xa2\x02\x03GAA\xaa\x02 Google.Ads.GoogleAds.V0.Services\xca\x02 Google\\Ads\\GoogleAds\\V0\\Servicesb\x06proto3') + , + dependencies=[google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__pb2.DESCRIPTOR,google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,]) + + + + +_GETRECOMMENDATIONREQUEST = _descriptor.Descriptor( + name='GetRecommendationRequest', + full_name='google.ads.googleads.v0.services.GetRecommendationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.GetRecommendationRequest.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=366, + serialized_end=415, +) + + +_APPLYRECOMMENDATIONREQUEST = _descriptor.Descriptor( + name='ApplyRecommendationRequest', + full_name='google.ads.googleads.v0.services.ApplyRecommendationRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='customer_id', full_name='google.ads.googleads.v0.services.ApplyRecommendationRequest.customer_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operations', full_name='google.ads.googleads.v0.services.ApplyRecommendationRequest.operations', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=418, + serialized_end=551, +) + + +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS = _descriptor.Descriptor( + name='CampaignBudgetParameters', + full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.CampaignBudgetParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='new_budget_amount_micros', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.CampaignBudgetParameters.new_budget_amount_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1044, + serialized_end=1133, +) + +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS = _descriptor.Descriptor( + name='TextAdParameters', + full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.TextAdParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ad', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.TextAdParameters.ad', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1135, + serialized_end=1204, +) + +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS = _descriptor.Descriptor( + name='KeywordParameters', + full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ad_group', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters.ad_group', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='match_type', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters.match_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cpc_bid_micros', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters.cpc_bid_micros', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1207, + serialized_end=1417, +) + +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS = _descriptor.Descriptor( + name='TargetCpaOptInParameters', + full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParameters', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='target_cpa_micros', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParameters.target_cpa_micros', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_campaign_budget_amount_micros', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParameters.new_campaign_budget_amount_micros', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1420, + serialized_end=1574, +) + +_APPLYRECOMMENDATIONOPERATION = _descriptor.Descriptor( + name='ApplyRecommendationOperation', + full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='campaign_budget', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.campaign_budget', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='text_ad', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.text_ad', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keyword', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.keyword', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target_cpa_opt_in', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.target_cpa_opt_in', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS, _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS, _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS, _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS, ], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='apply_parameters', full_name='google.ads.googleads.v0.services.ApplyRecommendationOperation.apply_parameters', + index=0, containing_type=None, fields=[]), + ], + serialized_start=554, + serialized_end=1594, +) + + +_APPLYRECOMMENDATIONRESPONSE = _descriptor.Descriptor( + name='ApplyRecommendationResponse', + full_name='google.ads.googleads.v0.services.ApplyRecommendationResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='results', full_name='google.ads.googleads.v0.services.ApplyRecommendationResponse.results', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1596, + serialized_end=1703, +) + + +_APPLYRECOMMENDATIONRESULT = _descriptor.Descriptor( + name='ApplyRecommendationResult', + full_name='google.ads.googleads.v0.services.ApplyRecommendationResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='resource_name', full_name='google.ads.googleads.v0.services.ApplyRecommendationResult.resource_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='status', full_name='google.ads.googleads.v0.services.ApplyRecommendationResult.status', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='result', full_name='google.ads.googleads.v0.services.ApplyRecommendationResult.result', + index=0, containing_type=None, fields=[]), + ], + serialized_start=1705, + serialized_end=1805, +) + +_APPLYRECOMMENDATIONREQUEST.fields_by_name['operations'].message_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS.fields_by_name['new_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS.fields_by_name['ad'].message_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_ad__pb2._AD +_APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['ad_group'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['match_type'].enum_type = google_dot_ads_dot_googleads__v0_dot_proto_dot_enums_dot_keyword__match__type__pb2._KEYWORDMATCHTYPEENUM_KEYWORDMATCHTYPE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.fields_by_name['cpc_bid_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.fields_by_name['target_cpa_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.fields_by_name['new_campaign_budget_amount_micros'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE +_APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS.containing_type = _APPLYRECOMMENDATIONOPERATION +_APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget'].message_type = _APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad'].message_type = _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword'].message_type = _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in'].message_type = _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['campaign_budget'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['text_ad'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['keyword'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'].fields.append( + _APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in']) +_APPLYRECOMMENDATIONOPERATION.fields_by_name['target_cpa_opt_in'].containing_oneof = _APPLYRECOMMENDATIONOPERATION.oneofs_by_name['apply_parameters'] +_APPLYRECOMMENDATIONRESPONSE.fields_by_name['results'].message_type = _APPLYRECOMMENDATIONRESULT +_APPLYRECOMMENDATIONRESULT.fields_by_name['status'].message_type = google_dot_rpc_dot_status__pb2._STATUS +_APPLYRECOMMENDATIONRESULT.oneofs_by_name['result'].fields.append( + _APPLYRECOMMENDATIONRESULT.fields_by_name['resource_name']) +_APPLYRECOMMENDATIONRESULT.fields_by_name['resource_name'].containing_oneof = _APPLYRECOMMENDATIONRESULT.oneofs_by_name['result'] +_APPLYRECOMMENDATIONRESULT.oneofs_by_name['result'].fields.append( + _APPLYRECOMMENDATIONRESULT.fields_by_name['status']) +_APPLYRECOMMENDATIONRESULT.fields_by_name['status'].containing_oneof = _APPLYRECOMMENDATIONRESULT.oneofs_by_name['result'] +DESCRIPTOR.message_types_by_name['GetRecommendationRequest'] = _GETRECOMMENDATIONREQUEST +DESCRIPTOR.message_types_by_name['ApplyRecommendationRequest'] = _APPLYRECOMMENDATIONREQUEST +DESCRIPTOR.message_types_by_name['ApplyRecommendationOperation'] = _APPLYRECOMMENDATIONOPERATION +DESCRIPTOR.message_types_by_name['ApplyRecommendationResponse'] = _APPLYRECOMMENDATIONRESPONSE +DESCRIPTOR.message_types_by_name['ApplyRecommendationResult'] = _APPLYRECOMMENDATIONRESULT +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +GetRecommendationRequest = _reflection.GeneratedProtocolMessageType('GetRecommendationRequest', (_message.Message,), dict( + DESCRIPTOR = _GETRECOMMENDATIONREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Request message for + [RecommendationService.GetRecommendation][google.ads.googleads.v0.services.RecommendationService.GetRecommendation]. + + + Attributes: + resource_name: + The resource name of the recommendation to fetch. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.GetRecommendationRequest) + )) +_sym_db.RegisterMessage(GetRecommendationRequest) + +ApplyRecommendationRequest = _reflection.GeneratedProtocolMessageType('ApplyRecommendationRequest', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONREQUEST, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Request message for + [RecommendationService.ApplyRecommendation][google.ads.googleads.v0.services.RecommendationService.ApplyRecommendation]. + + + Attributes: + customer_id: + The ID of the customer with the recommendation. + operations: + The list of operations to apply recommendations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationRequest) + )) +_sym_db.RegisterMessage(ApplyRecommendationRequest) + +ApplyRecommendationOperation = _reflection.GeneratedProtocolMessageType('ApplyRecommendationOperation', (_message.Message,), dict( + + CampaignBudgetParameters = _reflection.GeneratedProtocolMessageType('CampaignBudgetParameters', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONOPERATION_CAMPAIGNBUDGETPARAMETERS, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Parameters to use when applying a campaign budget recommendation. + + + Attributes: + new_budget_amount_micros: + New budget amount to set for target budget resource. This is a + required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationOperation.CampaignBudgetParameters) + )) + , + + TextAdParameters = _reflection.GeneratedProtocolMessageType('TextAdParameters', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONOPERATION_TEXTADPARAMETERS, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Parameters to use when applying a text ad recommendation. + + + Attributes: + ad: + New ad to add to recommended ad group. All necessary fields + need to be set in this message. This is a required field. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationOperation.TextAdParameters) + )) + , + + KeywordParameters = _reflection.GeneratedProtocolMessageType('KeywordParameters', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONOPERATION_KEYWORDPARAMETERS, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Parameters to use when applying keyword recommendation. + + + Attributes: + ad_group: + The ad group resource to add keyword to. This is a required + field. + match_type: + The match type of the keyword. This is a required field. + cpc_bid_micros: + Optional, CPC bid to set for the keyword. If not set, keyword + will use bid based on bidding strategy used by target ad + group. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters) + )) + , + + TargetCpaOptInParameters = _reflection.GeneratedProtocolMessageType('TargetCpaOptInParameters', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONOPERATION_TARGETCPAOPTINPARAMETERS, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Parameters to use when applying Target CPA recommendation. + + + Attributes: + target_cpa_micros: + Average CPA to use for Target CPA bidding strategy. This is a + required field. + new_campaign_budget_amount_micros: + Optional, budget amount to set for the campaign. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParameters) + )) + , + DESCRIPTOR = _APPLYRECOMMENDATIONOPERATION, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Information about the operation to apply a recommendation and any + parameters to customize it. + + + Attributes: + resource_name: + The resource name of the recommendation to apply. + apply_parameters: + Parameters to use when applying the recommendation. + campaign_budget: + Optional parameters to use when applying a campaign budget + recommendation. + text_ad: + Optional parameters to use when applying a text ad + recommendation. + keyword: + Optional parameters to use when applying keyword + recommendation. + target_cpa_opt_in: + Optional parameters to use when applying target CPA opt-in + recommendation. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationOperation) + )) +_sym_db.RegisterMessage(ApplyRecommendationOperation) +_sym_db.RegisterMessage(ApplyRecommendationOperation.CampaignBudgetParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.TextAdParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.KeywordParameters) +_sym_db.RegisterMessage(ApplyRecommendationOperation.TargetCpaOptInParameters) + +ApplyRecommendationResponse = _reflection.GeneratedProtocolMessageType('ApplyRecommendationResponse', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONRESPONSE, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """Response message for + [RecommendationService.ApplyRecommendation][google.ads.googleads.v0.services.RecommendationService.ApplyRecommendation]. + + + Attributes: + results: + Results of operations to apply recommendations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationResponse) + )) +_sym_db.RegisterMessage(ApplyRecommendationResponse) + +ApplyRecommendationResult = _reflection.GeneratedProtocolMessageType('ApplyRecommendationResult', (_message.Message,), dict( + DESCRIPTOR = _APPLYRECOMMENDATIONRESULT, + __module__ = 'google.ads.googleads_v0.proto.services.recommendation_service_pb2' + , + __doc__ = """The result of applying a recommendation. + + + Attributes: + result: + One of the successfully applied recommendation resource name + or error information will be set. + resource_name: + Returned for successful applies. + status: + Returned for failed operations. + """, + # @@protoc_insertion_point(class_scope:google.ads.googleads.v0.services.ApplyRecommendationResult) + )) +_sym_db.RegisterMessage(ApplyRecommendationResult) + + +DESCRIPTOR.has_options = True +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.ads.googleads.v0.servicesB\032RecommendationServiceProtoP\001ZHgoogle.golang.org/genproto/googleapis/ads/googleads/v0/services;services\242\002\003GAA\252\002 Google.Ads.GoogleAds.V0.Services\312\002 Google\\Ads\\GoogleAds\\V0\\Services')) + +_RECOMMENDATIONSERVICE = _descriptor.ServiceDescriptor( + name='RecommendationService', + full_name='google.ads.googleads.v0.services.RecommendationService', + file=DESCRIPTOR, + index=0, + options=None, + serialized_start=1808, + serialized_end=2236, + methods=[ + _descriptor.MethodDescriptor( + name='GetRecommendation', + full_name='google.ads.googleads.v0.services.RecommendationService.GetRecommendation', + index=0, + containing_service=None, + input_type=_GETRECOMMENDATIONREQUEST, + output_type=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2._RECOMMENDATION, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0023\0221/v0/{resource_name=customers/*/recommendations/*}')), + ), + _descriptor.MethodDescriptor( + name='ApplyRecommendation', + full_name='google.ads.googleads.v0.services.RecommendationService.ApplyRecommendation', + index=1, + containing_service=None, + input_type=_APPLYRECOMMENDATIONREQUEST, + output_type=_APPLYRECOMMENDATIONRESPONSE, + options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\0028\"3/v0/customers/{customer_id=*}/recommendations:apply:\001*')), + ), +]) +_sym_db.RegisterServiceDescriptor(_RECOMMENDATIONSERVICE) + +DESCRIPTOR.services_by_name['RecommendationService'] = _RECOMMENDATIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/google/ads/google_ads/v0/proto/services/recommendation_service_pb2_grpc.py b/google/ads/google_ads/v0/proto/services/recommendation_service_pb2_grpc.py new file mode 100644 index 000000000..5f103ab48 --- /dev/null +++ b/google/ads/google_ads/v0/proto/services/recommendation_service_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from google.ads.google_ads.v0.proto.resources import recommendation_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2 +from google.ads.google_ads.v0.proto.services import recommendation_service_pb2 as google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2 + + +class RecommendationServiceStub(object): + """Service to manage recommendations. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetRecommendation = channel.unary_unary( + '/google.ads.googleads.v0.services.RecommendationService/GetRecommendation', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.GetRecommendationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2.Recommendation.FromString, + ) + self.ApplyRecommendation = channel.unary_unary( + '/google.ads.googleads.v0.services.RecommendationService/ApplyRecommendation', + request_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationRequest.SerializeToString, + response_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationResponse.FromString, + ) + + +class RecommendationServiceServicer(object): + """Service to manage recommendations. + """ + + def GetRecommendation(self, request, context): + """Returns the requested recommendation in full detail. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ApplyRecommendation(self, request, context): + """Applies given recommendations with corresponding apply parameters. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_RecommendationServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetRecommendation': grpc.unary_unary_rpc_method_handler( + servicer.GetRecommendation, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.GetRecommendationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_resources_dot_recommendation__pb2.Recommendation.SerializeToString, + ), + 'ApplyRecommendation': grpc.unary_unary_rpc_method_handler( + servicer.ApplyRecommendation, + request_deserializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationRequest.FromString, + response_serializer=google_dot_ads_dot_googleads__v0_dot_proto_dot_services_dot_recommendation__service__pb2.ApplyRecommendationResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'google.ads.googleads.v0.services.RecommendationService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/google/ads/google_ads/v0/services/__init__.py b/google/ads/google_ads/v0/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/services/ad_group_ad_service_client.py b/google/ads/google_ads/v0/services/ad_group_ad_service_client.py new file mode 100644 index 000000000..d63e22d73 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_ad_service_client.py @@ -0,0 +1,279 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services AdGroupAdService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import ad_group_ad_service_client_config +from google.ads.google_ads.v0.services.transports import ad_group_ad_service_grpc_transport +from google.ads.google_ads.v0.proto.services import ad_group_ad_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class AdGroupAdServiceClient(object): + """Service to manage ads in an ad group.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.AdGroupAdService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupAdServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def ad_group_ad_path(cls, customer, ad_group_ad): + """Return a fully-qualified ad_group_ad string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupAds/{ad_group_ad}', + customer=customer, + ad_group_ad=ad_group_ad, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=ad_group_ad_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.AdGroupAdServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupAdServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_ad_service_grpc_transport. + AdGroupAdServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = ad_group_ad_service_grpc_transport.AdGroupAdServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_ad(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupAdServiceClient() + >>> + >>> resource_name = client.ad_group_ad_path('[CUSTOMER]', '[AD_GROUP_AD]') + >>> + >>> response = client.get_ad_group_ad(resource_name) + + Args: + resource_name (str): The resource name of the ad to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.AdGroupAd` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_ad' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_ad_group_ad'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_ad, + default_retry=self._method_configs['GetAdGroupAd'].retry, + default_timeout=self._method_configs['GetAdGroupAd'] + .timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_service_pb2.GetAdGroupAdRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_ad_group_ad']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_ads(self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ads. Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupAdServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_ad_group_ads(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose ads are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.AdGroupAdOperation]]): The list of operations to perform on individual ads. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.AdGroupAdOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateAdGroupAdsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_ads' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_ad_group_ads'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_ads, + default_retry=self._method_configs[ + 'MutateAdGroupAds'].retry, + default_timeout=self._method_configs['MutateAdGroupAds'] + .timeout, + client_info=self._client_info, + ) + + request = ad_group_ad_service_pb2.MutateAdGroupAdsRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_ad_group_ads']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/ad_group_ad_service_client_config.py b/google/ads/google_ads/v0/services/ad_group_ad_service_client_config.py new file mode 100644 index 000000000..60f08cf38 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_ad_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.AdGroupAdService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetAdGroupAd": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupAds": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client.py b/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client.py new file mode 100644 index 000000000..fa0b09afa --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client.py @@ -0,0 +1,284 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services AdGroupBidModifierService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import ad_group_bid_modifier_service_client_config +from google.ads.google_ads.v0.services.transports import ad_group_bid_modifier_service_grpc_transport +from google.ads.google_ads.v0.proto.services import ad_group_bid_modifier_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class AdGroupBidModifierServiceClient(object): + """Service to manage ad group bid modifiers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.AdGroupBidModifierService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupBidModifierServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def ad_group_bid_modifier_path(cls, customer, ad_group_bid_modifier): + """Return a fully-qualified ad_group_bid_modifier string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupBidModifiers/{ad_group_bid_modifier}', + customer=customer, + ad_group_bid_modifier=ad_group_bid_modifier, + ) + + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=ad_group_bid_modifier_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.AdGroupBidModifierServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupBidModifierServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_bid_modifier_service_grpc_transport. + AdGroupBidModifierServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = ad_group_bid_modifier_service_grpc_transport.AdGroupBidModifierServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_bid_modifier( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group bid modifier in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupBidModifierServiceClient() + >>> + >>> resource_name = client.ad_group_bid_modifier_path('[CUSTOMER]', '[AD_GROUP_BID_MODIFIER]') + >>> + >>> response = client.get_ad_group_bid_modifier(resource_name) + + Args: + resource_name (str): The resource name of the ad group bid modifier to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.AdGroupBidModifier` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_bid_modifier' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_ad_group_bid_modifier'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_bid_modifier, + default_retry=self._method_configs['GetAdGroupBidModifier'] + .retry, + default_timeout=self._method_configs[ + 'GetAdGroupBidModifier'].timeout, + client_info=self._client_info, + ) + + request = ad_group_bid_modifier_service_pb2.GetAdGroupBidModifierRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_ad_group_bid_modifier']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_bid_modifiers( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupBidModifierServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_ad_group_bid_modifiers(customer_id, operations) + + Args: + customer_id (str): ID of the customer whose ad group bid modifiers are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.AdGroupBidModifierOperation]]): The list of operations to perform on individual ad group bid modifiers. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.AdGroupBidModifierOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateAdGroupBidModifiersResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_bid_modifiers' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_ad_group_bid_modifiers'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_bid_modifiers, + default_retry=self._method_configs[ + 'MutateAdGroupBidModifiers'].retry, + default_timeout=self._method_configs[ + 'MutateAdGroupBidModifiers'].timeout, + client_info=self._client_info, + ) + + request = ad_group_bid_modifier_service_pb2.MutateAdGroupBidModifiersRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_ad_group_bid_modifiers']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client_config.py b/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client_config.py new file mode 100644 index 000000000..03b2b73f5 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_bid_modifier_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.AdGroupBidModifierService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetAdGroupBidModifier": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupBidModifiers": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/ad_group_criterion_service_client.py b/google/ads/google_ads/v0/services/ad_group_criterion_service_client.py new file mode 100644 index 000000000..f56746f16 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_criterion_service_client.py @@ -0,0 +1,281 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services AdGroupCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import ad_group_criterion_service_client_config +from google.ads.google_ads.v0.services.transports import ad_group_criterion_service_grpc_transport +from google.ads.google_ads.v0.proto.services import ad_group_criterion_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class AdGroupCriterionServiceClient(object): + """Service to manage ad group criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.AdGroupCriterionService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def ad_group_criteria_path(cls, customer, ad_group_criteria): + """Return a fully-qualified ad_group_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroupCriteria/{ad_group_criteria}', + customer=customer, + ad_group_criteria=ad_group_criteria, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=ad_group_criterion_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.AdGroupCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_criterion_service_grpc_transport. + AdGroupCriterionServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = ad_group_criterion_service_grpc_transport.AdGroupCriterionServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group_criterion(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested criterion in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupCriterionServiceClient() + >>> + >>> resource_name = client.ad_group_criteria_path('[CUSTOMER]', '[AD_GROUP_CRITERIA]') + >>> + >>> response = client.get_ad_group_criterion(resource_name) + + Args: + resource_name (str): The resource name of the criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.AdGroupCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group_criterion' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_ad_group_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group_criterion, + default_retry=self._method_configs[ + 'GetAdGroupCriterion'].retry, + default_timeout=self._method_configs['GetAdGroupCriterion'] + .timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_service_pb2.GetAdGroupCriterionRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_ad_group_criterion']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_group_criteria( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes criteria. Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupCriterionServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_ad_group_criteria(customer_id, operations) + + Args: + customer_id (str): ID of the customer whose criteria are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.AdGroupCriterionOperation]]): The list of operations to perform on individual criteria. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.AdGroupCriterionOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateAdGroupCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_group_criteria' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_ad_group_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_group_criteria, + default_retry=self._method_configs['MutateAdGroupCriteria'] + .retry, + default_timeout=self._method_configs[ + 'MutateAdGroupCriteria'].timeout, + client_info=self._client_info, + ) + + request = ad_group_criterion_service_pb2.MutateAdGroupCriteriaRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_ad_group_criteria']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/ad_group_criterion_service_client_config.py b/google/ads/google_ads/v0/services/ad_group_criterion_service_client_config.py new file mode 100644 index 000000000..d2fa41dc1 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_criterion_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.AdGroupCriterionService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetAdGroupCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroupCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/ad_group_service_client.py b/google/ads/google_ads/v0/services/ad_group_service_client.py new file mode 100644 index 000000000..3aef77f01 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_service_client.py @@ -0,0 +1,277 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services AdGroupService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import ad_group_service_client_config +from google.ads.google_ads.v0.services.transports import ad_group_service_grpc_transport +from google.ads.google_ads.v0.proto.services import ad_group_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class AdGroupServiceClient(object): + """Service to manage ad groups.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.AdGroupService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + AdGroupServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def ad_group_path(cls, customer, ad_group): + """Return a fully-qualified ad_group string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/adGroups/{ad_group}', + customer=customer, + ad_group=ad_group, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=ad_group_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.AdGroupServiceGrpcTransport, + Callable[[~.Credentials, type], ~.AdGroupServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=ad_group_service_grpc_transport. + AdGroupServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = ad_group_service_grpc_transport.AdGroupServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_ad_group(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested ad group in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupServiceClient() + >>> + >>> resource_name = client.ad_group_path('[CUSTOMER]', '[AD_GROUP]') + >>> + >>> response = client.get_ad_group(resource_name) + + Args: + resource_name (str): The resource name of the ad group to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.AdGroup` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_ad_group' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_ad_group'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ad_group, + default_retry=self._method_configs['GetAdGroup'].retry, + default_timeout=self._method_configs['GetAdGroup'].timeout, + client_info=self._client_info, + ) + + request = ad_group_service_pb2.GetAdGroupRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_ad_group']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_ad_groups(self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes ad groups. Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.AdGroupServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_ad_groups(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose ad groups are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.AdGroupOperation]]): The list of operations to perform on individual ad groups. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.AdGroupOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateAdGroupsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_ad_groups' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_ad_groups'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_ad_groups, + default_retry=self._method_configs['MutateAdGroups'].retry, + default_timeout=self._method_configs['MutateAdGroups'] + .timeout, + client_info=self._client_info, + ) + + request = ad_group_service_pb2.MutateAdGroupsRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_ad_groups']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/ad_group_service_client_config.py b/google/ads/google_ads/v0/services/ad_group_service_client_config.py new file mode 100644 index 000000000..c2f718283 --- /dev/null +++ b/google/ads/google_ads/v0/services/ad_group_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.AdGroupService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetAdGroup": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateAdGroups": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/bidding_strategy_service_client.py b/google/ads/google_ads/v0/services/bidding_strategy_service_client.py new file mode 100644 index 000000000..fcbdc9eaf --- /dev/null +++ b/google/ads/google_ads/v0/services/bidding_strategy_service_client.py @@ -0,0 +1,282 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services BiddingStrategyService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import bidding_strategy_service_client_config +from google.ads.google_ads.v0.services.transports import bidding_strategy_service_grpc_transport +from google.ads.google_ads.v0.proto.services import bidding_strategy_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class BiddingStrategyServiceClient(object): + """Service to manage bidding strategies.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.BiddingStrategyService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + BiddingStrategyServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def bidding_strategy_path(cls, customer, bidding_strategy): + """Return a fully-qualified bidding_strategy string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/biddingStrategies/{bidding_strategy}', + customer=customer, + bidding_strategy=bidding_strategy, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=bidding_strategy_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.BiddingStrategyServiceGrpcTransport, + Callable[[~.Credentials, type], ~.BiddingStrategyServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=bidding_strategy_service_grpc_transport. + BiddingStrategyServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = bidding_strategy_service_grpc_transport.BiddingStrategyServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_bidding_strategy(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested bidding strategy in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.BiddingStrategyServiceClient() + >>> + >>> resource_name = client.bidding_strategy_path('[CUSTOMER]', '[BIDDING_STRATEGY]') + >>> + >>> response = client.get_bidding_strategy(resource_name) + + Args: + resource_name (str): The resource name of the bidding strategy to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.BiddingStrategy` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_bidding_strategy' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_bidding_strategy'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_bidding_strategy, + default_retry=self._method_configs[ + 'GetBiddingStrategy'].retry, + default_timeout=self._method_configs['GetBiddingStrategy'] + .timeout, + client_info=self._client_info, + ) + + request = bidding_strategy_service_pb2.GetBiddingStrategyRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_bidding_strategy']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_bidding_strategies( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes bidding strategies. Operation statuses are + returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.BiddingStrategyServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_bidding_strategies(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose bidding strategies are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.BiddingStrategyOperation]]): The list of operations to perform on individual bidding strategies. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.BiddingStrategyOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateBiddingStrategiesResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_bidding_strategies' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_bidding_strategies'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_bidding_strategies, + default_retry=self._method_configs[ + 'MutateBiddingStrategies'].retry, + default_timeout=self._method_configs[ + 'MutateBiddingStrategies'].timeout, + client_info=self._client_info, + ) + + request = bidding_strategy_service_pb2.MutateBiddingStrategiesRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_bidding_strategies']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/bidding_strategy_service_client_config.py b/google/ads/google_ads/v0/services/bidding_strategy_service_client_config.py new file mode 100644 index 000000000..6d558b9bb --- /dev/null +++ b/google/ads/google_ads/v0/services/bidding_strategy_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.BiddingStrategyService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetBiddingStrategy": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateBiddingStrategies": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/campaign_budget_service_client.py b/google/ads/google_ads/v0/services/campaign_budget_service_client.py new file mode 100644 index 000000000..7542149c1 --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_budget_service_client.py @@ -0,0 +1,282 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services CampaignBudgetService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import campaign_budget_service_client_config +from google.ads.google_ads.v0.services.transports import campaign_budget_service_grpc_transport +from google.ads.google_ads.v0.proto.services import campaign_budget_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class CampaignBudgetServiceClient(object): + """Service to manage campaign budgets.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.CampaignBudgetService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignBudgetServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def campaign_budget_path(cls, customer, campaign_budget): + """Return a fully-qualified campaign_budget string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignBudgets/{campaign_budget}', + customer=customer, + campaign_budget=campaign_budget, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=campaign_budget_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.CampaignBudgetServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignBudgetServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_budget_service_grpc_transport. + CampaignBudgetServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = campaign_budget_service_grpc_transport.CampaignBudgetServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_budget(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested Campaign Budget in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignBudgetServiceClient() + >>> + >>> resource_name = client.campaign_budget_path('[CUSTOMER]', '[CAMPAIGN_BUDGET]') + >>> + >>> response = client.get_campaign_budget(resource_name) + + Args: + resource_name (str): The resource name of the campaign budget to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.CampaignBudget` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_budget' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_campaign_budget'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_budget, + default_retry=self._method_configs[ + 'GetCampaignBudget'].retry, + default_timeout=self._method_configs['GetCampaignBudget'] + .timeout, + client_info=self._client_info, + ) + + request = campaign_budget_service_pb2.GetCampaignBudgetRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_campaign_budget']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_budgets( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaign budgets. Operation statuses are + returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignBudgetServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_campaign_budgets(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose campaign budgets are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.CampaignBudgetOperation]]): The list of operations to perform on individual campaign budgets. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.CampaignBudgetOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateCampaignBudgetsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_budgets' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_campaign_budgets'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_budgets, + default_retry=self._method_configs['MutateCampaignBudgets'] + .retry, + default_timeout=self._method_configs[ + 'MutateCampaignBudgets'].timeout, + client_info=self._client_info, + ) + + request = campaign_budget_service_pb2.MutateCampaignBudgetsRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_campaign_budgets']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/campaign_budget_service_client_config.py b/google/ads/google_ads/v0/services/campaign_budget_service_client_config.py new file mode 100644 index 000000000..54248a38e --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_budget_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.CampaignBudgetService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetCampaignBudget": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignBudgets": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/campaign_criterion_service_client.py b/google/ads/google_ads/v0/services/campaign_criterion_service_client.py new file mode 100644 index 000000000..ec4d6d455 --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_criterion_service_client.py @@ -0,0 +1,281 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services CampaignCriterionService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import campaign_criterion_service_client_config +from google.ads.google_ads.v0.services.transports import campaign_criterion_service_grpc_transport +from google.ads.google_ads.v0.proto.services import campaign_criterion_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class CampaignCriterionServiceClient(object): + """Service to manage campaign criteria.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.CampaignCriterionService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignCriterionServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def campaign_criteria_path(cls, customer, campaign_criteria): + """Return a fully-qualified campaign_criteria string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaignCriteria/{campaign_criteria}', + customer=customer, + campaign_criteria=campaign_criteria, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=campaign_criterion_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.CampaignCriterionServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignCriterionServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_criterion_service_grpc_transport. + CampaignCriterionServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = campaign_criterion_service_grpc_transport.CampaignCriterionServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign_criterion(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested criterion in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignCriterionServiceClient() + >>> + >>> resource_name = client.campaign_criteria_path('[CUSTOMER]', '[CAMPAIGN_CRITERIA]') + >>> + >>> response = client.get_campaign_criterion(resource_name) + + Args: + resource_name (str): The resource name of the criterion to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.CampaignCriterion` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign_criterion' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_campaign_criterion'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign_criterion, + default_retry=self._method_configs['GetCampaignCriterion'] + .retry, + default_timeout=self._method_configs[ + 'GetCampaignCriterion'].timeout, + client_info=self._client_info, + ) + + request = campaign_criterion_service_pb2.GetCampaignCriterionRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_campaign_criterion']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaign_criteria( + self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes criteria. Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignCriterionServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_campaign_criteria(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose criteria are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.CampaignCriterionOperation]]): The list of operations to perform on individual criteria. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.CampaignCriterionOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateCampaignCriteriaResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaign_criteria' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_campaign_criteria'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaign_criteria, + default_retry=self._method_configs[ + 'MutateCampaignCriteria'].retry, + default_timeout=self._method_configs[ + 'MutateCampaignCriteria'].timeout, + client_info=self._client_info, + ) + + request = campaign_criterion_service_pb2.MutateCampaignCriteriaRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_campaign_criteria']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/campaign_criterion_service_client_config.py b/google/ads/google_ads/v0/services/campaign_criterion_service_client_config.py new file mode 100644 index 000000000..16cdd3c5b --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_criterion_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.CampaignCriterionService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetCampaignCriterion": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaignCriteria": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/campaign_service_client.py b/google/ads/google_ads/v0/services/campaign_service_client.py new file mode 100644 index 000000000..2aea37117 --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_service_client.py @@ -0,0 +1,279 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services CampaignService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import campaign_service_client_config +from google.ads.google_ads.v0.services.transports import campaign_service_grpc_transport +from google.ads.google_ads.v0.proto.services import campaign_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class CampaignServiceClient(object): + """Service to manage campaigns.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.CampaignService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CampaignServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def campaign_path(cls, customer, campaign): + """Return a fully-qualified campaign string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/campaigns/{campaign}', + customer=customer, + campaign=campaign, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=campaign_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.CampaignServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CampaignServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=campaign_service_grpc_transport. + CampaignServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = campaign_service_grpc_transport.CampaignServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_campaign(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested campaign in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignServiceClient() + >>> + >>> resource_name = client.campaign_path('[CUSTOMER]', '[CAMPAIGN]') + >>> + >>> response = client.get_campaign(resource_name) + + Args: + resource_name (str): The resource name of the campaign to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.Campaign` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_campaign' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_campaign'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_campaign, + default_retry=self._method_configs['GetCampaign'].retry, + default_timeout=self._method_configs['GetCampaign'] + .timeout, + client_info=self._client_info, + ) + + request = campaign_service_pb2.GetCampaignRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_campaign']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def mutate_campaigns(self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Creates, updates, or removes campaigns. Operation statuses are returned. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CampaignServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.mutate_campaigns(customer_id, operations) + + Args: + customer_id (str): The ID of the customer whose campaigns are being modified. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.CampaignOperation]]): The list of operations to perform on individual campaigns. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.CampaignOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.MutateCampaignsResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'mutate_campaigns' not in self._inner_api_calls: + self._inner_api_calls[ + 'mutate_campaigns'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.mutate_campaigns, + default_retry=self._method_configs[ + 'MutateCampaigns'].retry, + default_timeout=self._method_configs['MutateCampaigns'] + .timeout, + client_info=self._client_info, + ) + + request = campaign_service_pb2.MutateCampaignsRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['mutate_campaigns']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/campaign_service_client_config.py b/google/ads/google_ads/v0/services/campaign_service_client_config.py new file mode 100644 index 000000000..3af71346d --- /dev/null +++ b/google/ads/google_ads/v0/services/campaign_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.CampaignService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetCampaign": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "MutateCampaigns": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/customer_service_client.py b/google/ads/google_ads/v0/services/customer_service_client.py new file mode 100644 index 000000000..5145f2a97 --- /dev/null +++ b/google/ads/google_ads/v0/services/customer_service_client.py @@ -0,0 +1,213 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services CustomerService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import customer_service_client_config +from google.ads.google_ads.v0.services.transports import customer_service_grpc_transport +from google.ads.google_ads.v0.proto.services import customer_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class CustomerServiceClient(object): + """Service to manage customers.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.CustomerService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + CustomerServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def customer_path(cls, customer): + """Return a fully-qualified customer string.""" + return google.api_core.path_template.expand( + 'customers/{customer}', + customer=customer, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=customer_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.CustomerServiceGrpcTransport, + Callable[[~.Credentials, type], ~.CustomerServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=customer_service_grpc_transport. + CustomerServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = customer_service_grpc_transport.CustomerServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_customer(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested customer in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.CustomerServiceClient() + >>> + >>> resource_name = client.customer_path('[CUSTOMER]') + >>> + >>> response = client.get_customer(resource_name) + + Args: + resource_name (str): The resource name of the customer to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.Customer` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_customer' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_customer'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_customer, + default_retry=self._method_configs['GetCustomer'].retry, + default_timeout=self._method_configs['GetCustomer'] + .timeout, + client_info=self._client_info, + ) + + request = customer_service_pb2.GetCustomerRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_customer']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/customer_service_client_config.py b/google/ads/google_ads/v0/services/customer_service_client_config.py new file mode 100644 index 000000000..14e28368a --- /dev/null +++ b/google/ads/google_ads/v0/services/customer_service_client_config.py @@ -0,0 +1,28 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.CustomerService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetCustomer": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/enums.py b/google/ads/google_ads/v0/services/enums.py new file mode 100644 index 000000000..cfd059da8 --- /dev/null +++ b/google/ads/google_ads/v0/services/enums.py @@ -0,0 +1,2927 @@ +# Copyright 2018 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 +# +# https://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. +"""Wrappers for protocol buffer enum types.""" + +import enum + + +class KeywordMatchTypeEnum(object): + class KeywordMatchType(enum.IntEnum): + """ + Possible Keyword match types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + EXACT (int): Exact match. + PHRASE (int): Phrase match. + BROAD (int): Broad match. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EXACT = 2 + PHRASE = 3 + BROAD = 4 + + +class ListingCustomAttributeIndexEnum(object): + class ListingCustomAttributeIndex(enum.IntEnum): + """ + The index of the listing custom attribute. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CUSTOM_ATTRIBUTE_0 (int): First listing custom attribute. + CUSTOM_ATTRIBUTE_1 (int): Second listing custom attribute. + CUSTOM_ATTRIBUTE_2 (int): Third listing custom attribute. + CUSTOM_ATTRIBUTE_3 (int): Fourth listing custom attribute. + CUSTOM_ATTRIBUTE_4 (int): Fifth listing custom attribute. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CUSTOM_ATTRIBUTE_0 = 2 + CUSTOM_ATTRIBUTE_1 = 3 + CUSTOM_ATTRIBUTE_2 = 4 + CUSTOM_ATTRIBUTE_3 = 5 + CUSTOM_ATTRIBUTE_4 = 6 + + +class ListingGroupTypeEnum(object): + class ListingGroupType(enum.IntEnum): + """ + The type of the listing group. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SUBDIVISION (int): Subdivision of products along some listing dimension. These nodes + are not used by serving to target listing entries, but is purely + to define the structure of the tree. + UNIT (int): Listing group unit that defines a bid. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SUBDIVISION = 2 + UNIT = 3 + + +class PageOnePromotedStrategyGoalEnum(object): + class PageOnePromotedStrategyGoal(enum.IntEnum): + """ + Enum describing possible strategy goals. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + FIRST_PAGE (int): First page on google.com. + FIRST_PAGE_PROMOTED (int): Top slots of the first page on google.com. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FIRST_PAGE = 2 + FIRST_PAGE_PROMOTED = 3 + + +class QualityScoreBucketEnum(object): + class QualityScoreBucket(enum.IntEnum): + """ + Enum listing the possible quality score buckets. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + BELOW_AVERAGE (int): Quality of the creative is below average. + AVERAGE (int): Quality of the creative is average. + ABOVE_AVERAGE (int): Quality of the creative is above average. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BELOW_AVERAGE = 2 + AVERAGE = 3 + ABOVE_AVERAGE = 4 + + +class AdGroupStatusEnum(object): + class AdGroupStatus(enum.IntEnum): + """ + The possible statuses of an ad group. + + Attributes: + UNSPECIFIED (int): The status has not been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + ENABLED (int): The ad group is enabled. + PAUSED (int): The ad group is paused. + REMOVED (int): The ad group is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 + + +class DeviceEnum(object): + class Device(enum.IntEnum): + """ + Enumerates AdWords platforms available for targeting. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + MOBILE (int): Mobile devices with full browsers. + TABLET (int): Tablets with full browsers. + DESKTOP (int): Computers. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MOBILE = 2 + TABLET = 3 + DESKTOP = 4 + + +class AdGroupAdStatusEnum(object): + class AdGroupAdStatus(enum.IntEnum): + """ + The possible statuses of an AdGroupAd. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + ENABLED (int): The ad group ad is enabled. + PAUSED (int): The ad group ad is paused. + REMOVED (int): The ad group ad is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 + + +class RecommendationTypeEnum(object): + class RecommendationType(enum.IntEnum): + """ + Types of recommendations. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + CAMPAIGN_BUDGET (int): Budget recommendation for budget constrained campaigns. + KEYWORD (int): Keyword recommendation. + TEXT_AD (int): Recommendation to add a new text ad. + TARGET_CPA_OPT_IN (int): Recommendation to update a campaign to use a Target CPA bidding strategy. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_BUDGET = 2 + KEYWORD = 3 + TEXT_AD = 4 + TARGET_CPA_OPT_IN = 5 + + +class AdNetworkTypeEnum(object): + class AdNetworkType(enum.IntEnum): + """ + Enumerates AdWords network types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + SEARCH (int): Google search. + SEARCH_PARTNERS (int): Search partners. + CONTENT (int): Display Network. + YOUTUBE_SEARCH (int): YouTube Search. + YOUTUBE_WATCH (int): YouTube Videos + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH = 2 + SEARCH_PARTNERS = 3 + CONTENT = 4 + YOUTUBE_SEARCH = 5 + YOUTUBE_WATCH = 6 + + +class TargetCpaOptInRecommendationGoalEnum(object): + class TargetCpaOptInRecommendationGoal(enum.IntEnum): + """ + Goal of TargetCpaOptIn recommendation. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SAME_COST (int): Recommendation to set Target CPA to maintain the same cost. + SAME_CONVERSIONS (int): Recommendation to set Target CPA to maintain the same conversions. + SAME_CPA (int): Recommendation to set Target CPA to maintain the same CPA. + CLOSEST_CPA (int): Recommendation to set Target CPA to a value that is as close as possible + to, yet lower than, the actual CPA (computed for past 28 days). + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SAME_COST = 2 + SAME_CONVERSIONS = 3 + SAME_CPA = 4 + CLOSEST_CPA = 5 + + +class AdGroupCriterionStatusEnum(object): + class AdGroupCriterionStatus(enum.IntEnum): + """ + The possible statuses of an AdGroupCriterion. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + ENABLED (int): The ad group criterion is enabled. + PAUSED (int): The ad group criterion is paused. + REMOVED (int): The ad group criterion is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 + + +class CampaignServingStatusEnum(object): + class CampaignServingStatus(enum.IntEnum): + """ + Possible serving statuses of a campaign. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + SERVING (int): Serving. + NONE (int): None. + ENDED (int): Ended. + PENDING (int): Pending. + SUSPENDED (int): Suspended. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SERVING = 2 + NONE = 3 + ENDED = 4 + PENDING = 5 + SUSPENDED = 6 + + +class CampaignStatusEnum(object): + class CampaignStatus(enum.IntEnum): + """ + Possible statuses of a campaign. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Campaign is currently serving ads depending on budget information. + PAUSED (int): Campaign has been paused by the user. + REMOVED (int): Campaign has been removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + PAUSED = 3 + REMOVED = 4 + + +class AdServingOptimizationStatusEnum(object): + class AdServingOptimizationStatus(enum.IntEnum): + """ + Enum describing possible serving statuses. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + OPTIMIZE (int): Ad serving is optimized based on CTR for the campaign. + CONVERSION_OPTIMIZE (int): Ad serving is optimized based on CTR * Conversion for the campaign. If + the campaign is not in the conversion optimizer bidding strategy, it will + default to OPTIMIZED. + ROTATE (int): Ads are rotated evenly for 90 days, then optimized for clicks. + ROTATE_INDEFINITELY (int): Show lower performing ads more evenly with higher performing ads, and do + not optimize. + UNAVAILABLE (int): Ad serving optimization status is not available. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPTIMIZE = 2 + CONVERSION_OPTIMIZE = 3 + ROTATE = 4 + ROTATE_INDEFINITELY = 5 + UNAVAILABLE = 6 + + +class AdvertisingChannelSubTypeEnum(object): + class AdvertisingChannelSubType(enum.IntEnum): + """ + Enum describing the different channel subtypes. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used as a return value only. Represents value unknown in this version. + SEARCH_MOBILE_APP (int): Mobile app campaigns for Search. + SEARCH_EXPRESS (int): AdWords express campaigns for search. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_MOBILE_APP = 2 + SEARCH_EXPRESS = 4 + + +class BiddingStrategyTypeEnum(object): + class BiddingStrategyType(enum.IntEnum): + """ + Enum describing possible bidding strategy types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENHANCED_CPC (int): Enhanced CPC is a bidding strategy that raises bids for clicks + that seem more likely to lead to a conversion and lowers + them for clicks where they seem less likely. + MANUAL_CPC (int): Manual click based bidding where user pays per click. + MANUAL_CPM (int): Manual impression based bidding + where user pays per thousand impressions. + MAXIMIZE_CONVERSIONS (int): A bidding strategy that automatically maximizes number of conversions + given a daily budget. + MAXIMIZE_CONVERSION_VALUE (int): An automated bidding strategy that automatically sets bids to maximize + revenue while spending your budget. + PAGE_ONE_PROMOTED (int): Page-One Promoted bidding scheme, which sets max cpc bids to + target impressions on page one or page one promoted slots on google.com. + PERCENT_CPC (int): Percent Cpc is bidding strategy where bids are a fraction of the + advertised price for some good or service. + TARGET_CPA (int): Target CPA is an automated bid strategy that sets bids + to help get as many conversions as possible + at the target cost-per-acquisition (CPA) you set. + TARGET_OUTRANK_SHARE (int): Target Outrank Share is an automated bidding strategy that sets bids + based on the target fraction of auctions where the advertiser + should outrank a specific competitor. + TARGET_ROAS (int): Target ROAS is an automated bidding strategy + that helps you maximize revenue while averaging + a specific target Return On Average Spend (ROAS). + TARGET_SPEND (int): Target Spend is an automated bid strategy that sets your bids + to help get as many clicks as possible within your budget. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENHANCED_CPC = 2 + MANUAL_CPC = 3 + MANUAL_CPM = 4 + MAXIMIZE_CONVERSIONS = 10 + MAXIMIZE_CONVERSION_VALUE = 11 + PAGE_ONE_PROMOTED = 5 + PERCENT_CPC = 12 + TARGET_CPA = 6 + TARGET_OUTRANK_SHARE = 7 + TARGET_ROAS = 8 + TARGET_SPEND = 9 + + +class BudgetStatusEnum(object): + class BudgetStatus(enum.IntEnum): + """ + Possible statuses of a Budget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ENABLED (int): Budget is enabled. + REMOVED (int): Budget is removed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ENABLED = 2 + REMOVED = 3 + + +class BiddingSourceEnum(object): + class BiddingSource(enum.IntEnum): + """ + Enum describing possible bidding sources. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + ADGROUP (int): Bidding entity is defined on the ad group. + CRITERION (int): Bidding entity is defined on the ad group criterion. + CAMPAIGN_BIDDING_STRATEGY (int): Effective bidding entity is inherited from campaign bidding strategy. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ADGROUP = 2 + CRITERION = 3 + CAMPAIGN_BIDDING_STRATEGY = 5 + + +class DayOfWeekEnum(object): + class DayOfWeek(enum.IntEnum): + """ + Enumerates days of the week, e.g., \"Monday\". + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + MONDAY (int): Monday. + TUESDAY (int): Tuesday. + WEDNESDAY (int): Wednesday. + THURSDAY (int): Thursday. + FRIDAY (int): Friday. + SATURDAY (int): Saturday. + SUNDAY (int): Sunday. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MONDAY = 2 + TUESDAY = 3 + WEDNESDAY = 4 + THURSDAY = 5 + FRIDAY = 6 + SATURDAY = 7 + SUNDAY = 8 + + +class GoogleAdsFieldCategoryEnum(object): + class GoogleAdsFieldCategory(enum.IntEnum): + """ + The category of the artifact. + + Attributes: + UNSPECIFIED (int): Unspecified + UNKNOWN (int): Unknown + RESOURCE (int): The described artifact is a resource. + ATTRIBUTE (int): The described artifact is a field and is an attribute of a resource. + Including a resource attribute field in a query may segment the query if + the resource to which it is attributed segments the resource found in + the FROM clause. + SEGMENT (int): The described artifact is a field and always segments search queries. + METRIC (int): The described artifact is a field and is a metric. It never segments + search queries. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE = 2 + ATTRIBUTE = 3 + SEGMENT = 5 + METRIC = 6 + + +class AdvertisingChannelTypeEnum(object): + class AdvertisingChannelType(enum.IntEnum): + """ + Enum describing the various advertising channel types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + SEARCH (int): Search Network. Includes display bundled, and Search+ campaigns. + HOTEL (int): Hotel Ads campaigns. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH = 2 + HOTEL = 5 + + +class AdTypeEnum(object): + class AdType(enum.IntEnum): + """ + The possible types of an ad. + + Attributes: + UNSPECIFIED (int): No value has been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + TEXT_AD (int): The ad is a text ad. + EXPANDED_TEXT_AD (int): The ad is an expanded text ad. + DYNAMIC_SEARCH_AD (int): The ad is a dynamic search ad. + RESPONSIVE_DISPLAY_AD (int): The ad is a responsive display ad. + CALL_ONLY_AD (int): The ad is a call only ad. + EXPANDED_DYNAMIC_SEARCH_AD (int): The ad is an expanded dynamic search ad. + HOTEL_AD (int): The ad is a hotel ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TEXT_AD = 2 + EXPANDED_TEXT_AD = 3 + DYNAMIC_SEARCH_AD = 4 + RESPONSIVE_DISPLAY_AD = 5 + CALL_ONLY_AD = 6 + EXPANDED_DYNAMIC_SEARCH_AD = 7 + HOTEL_AD = 8 + + +class SlotEnum(object): + class Slot(enum.IntEnum): + """ + Enumerates possible positions of the Ad. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): The value is unknown in this version. + SEARCH_SIDE (int): Google search: Side. + SEARCH_TOP (int): Google search: Top. + SEARCH_OTHER (int): Google search: Other. + CONTENT (int): Google Display Network. + SEARCH_PARTNER_TOP (int): Search partners: Top. + SEARCH_PARTNER_OTHER (int): Search partners: Other. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_SIDE = 2 + SEARCH_TOP = 3 + SEARCH_OTHER = 4 + CONTENT = 5 + SEARCH_PARTNER_TOP = 6 + SEARCH_PARTNER_OTHER = 7 + + +class BudgetDeliveryMethodEnum(object): + class BudgetDeliveryMethod(enum.IntEnum): + """ + Possible delivery methods of a Budget. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + STANDARD (int): The budget server will throttle serving evenly across + the entire time period. + ACCELERATED (int): The budget server will not throttle serving, + and ads will serve as fast as possible. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + STANDARD = 2 + ACCELERATED = 3 + + +class GoogleAdsFieldDataTypeEnum(object): + class GoogleAdsFieldDataType(enum.IntEnum): + """ + These are the various types a GoogleAdsService artifact may take on. + + Attributes: + UNSPECIFIED (int): Unspecified + UNKNOWN (int): Unknown + BOOLEAN (int): Maps to google.protobuf.BoolValue + + Applicable operators: =, != + DATE (int): Maps to google.protobuf.StringValue. It can be compared using the set of + operators specific to dates however. + + Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + DOUBLE (int): Maps to google.protobuf.DoubleValue + + Applicable operators: =, !=, <, >, IN, NOT IN + ENUM (int): Maps to an enum. It's specific definition can be found at type_url. + + Applicable operators: =, !=, IN, NOT IN + FLOAT (int): Maps to google.protobuf.FloatValue + + Applicable operators: =, !=, <, >, IN, NOT IN + INT32 (int): Maps to google.protobuf.Int32Value + + Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + INT64 (int): Maps to google.protobuf.Int64Value + + Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + MESSAGE (int): Maps to a protocol buffer message type. The data type's details can be + found in type_url. + + No operators work with MESSAGE fields. + RESOURCE_NAME (int): Maps to google.protobuf.StringValue. Represents the resource name + (unique id) of a resource or one of its foreign keys. + + No operators work with RESOURCE_NAME fields. + STRING (int): Maps to google.protobuf.StringValue. + + Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BOOLEAN = 2 + DATE = 3 + DOUBLE = 4 + ENUM = 5 + FLOAT = 6 + INT32 = 7 + INT64 = 8 + MESSAGE = 9 + RESOURCE_NAME = 10 + STRING = 11 + + +class AdGroupTypeEnum(object): + class AdGroupType(enum.IntEnum): + """ + Enum listing the possible types of an ad group. + + Attributes: + UNSPECIFIED (int): The type has not been specified. + UNKNOWN (int): The received value is not known in this version. + + This is a response-only value. + SEARCH_STANDARD (int): The default ad group type for Search campaigns. + HOTEL_ADS (int): The default ad group type for Hotel campaigns. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SEARCH_STANDARD = 2 + HOTEL_ADS = 6 + + +class CriterionTypeEnum(object): + class CriterionType(enum.IntEnum): + """ + Enum describing possible criterion types. + + Attributes: + UNSPECIFIED (int): Not specified. + UNKNOWN (int): Used for return value only. Represents value unknown in this version. + KEYWORD (int): Keyword. e.g. 'mars cruise'. + PLATFORM (int): Platforms to target. + LOCATION (int): Locations to target. + LISTING_GROUP (int): Listing groups to target. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + KEYWORD = 2 + PLATFORM = 6 + LOCATION = 7 + LISTING_GROUP = 8 + + +class AdGroupAdErrorEnum(object): + class AdGroupAdError(enum.IntEnum): + """ + Enum describing possible ad group ad errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_AD_LABEL_DOES_NOT_EXIST (int): No link found between the adgroup ad and the label. + AD_GROUP_AD_LABEL_ALREADY_EXISTS (int): The label has already been attached to the adgroup ad. + AD_NOT_UNDER_ADGROUP (int): The specified ad was not found in the adgroup + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD (int): Removed ads may not be modified + CANNOT_CREATE_DEPRECATED_ADS (int): An ad of this type is deprecated and cannot be created. Only deletions + are permitted. + CANNOT_CREATE_TEXT_ADS (int): Text ads are deprecated and cannot be created. Use expanded text ads + instead. + EMPTY_FIELD (int): A required field was not specified or is an empty string. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS (int): An ad may only be modified once per call + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_AD_LABEL_DOES_NOT_EXIST = 2 + AD_GROUP_AD_LABEL_ALREADY_EXISTS = 3 + AD_NOT_UNDER_ADGROUP = 4 + CANNOT_OPERATE_ON_REMOVED_ADGROUPAD = 5 + CANNOT_CREATE_DEPRECATED_ADS = 6 + CANNOT_CREATE_TEXT_ADS = 7 + EMPTY_FIELD = 8 + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 9 + + +class CampaignCriterionErrorEnum(object): + class CampaignCriterionError(enum.IntEnum): + """ + Enum describing possible campaign criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion (keyword v.s. placement) is required for + CREATE and UPDATE operations. + INVALID_PLACEMENT_URL (int): Invalid placement URL. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type can not be excluded for the campaign by the customer. like + AOL account type cannot target site type criteria + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE (int): Cannot set the campaign criterion status for this criteria type. + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA (int): Cannot set the campaign criterion status for an excluded criteria. + CANNOT_TARGET_AND_EXCLUDE (int): Cannot target and exclude the same criterion. + TOO_MANY_OPERATIONS (int): The mutate contained too many operations. + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): This operator cannot be applied to a criterion of this type. + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL (int): The Shopping campaign sales country is not supported for + ProductSalesChannel targeting. + CANNOT_ADD_EXISTING_FIELD (int): The existing field can't be updated with CREATE operation. It can be + updated with UPDATE operation only. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONCRETE_TYPE_REQUIRED = 2 + INVALID_PLACEMENT_URL = 3 + CANNOT_EXCLUDE_CRITERIA_TYPE = 4 + CANNOT_SET_STATUS_FOR_CRITERIA_TYPE = 5 + CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA = 6 + CANNOT_TARGET_AND_EXCLUDE = 7 + TOO_MANY_OPERATIONS = 8 + OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE = 9 + SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL = 10 + CANNOT_ADD_EXISTING_FIELD = 11 + + +class QueryErrorEnum(object): + class QueryError(enum.IntEnum): + """ + Enum describing possible query errors. + + Attributes: + UNSPECIFIED (int): Name unspecified. + UNKNOWN (int): The received error code is not known in this version. + QUERY_ERROR (int): Returned if all other query error reasons are not applicable. + BAD_ENUM_CONSTANT (int): A condition used in the query references an invalid enum constant. + BAD_ESCAPE_SEQUENCE (int): Query contains an invalid escape sequence. + BAD_FIELD_NAME (int): Field name is invalid. + BAD_LIMIT_VALUE (int): Limit value is invalid (i.e. not a number) + BAD_NUMBER (int): Encountered number can not be parsed. + BAD_OPERATOR (int): Invalid operator encountered. + BAD_RESOURCE_TYPE_IN_FROM_CLAUSE (int): Invalid resource type was specified in the FROM clause. + BAD_SYMBOL (int): Non-ASCII symbol encountered outside of strings. + BAD_VALUE (int): Value is invalid. + DATE_RANGE_TOO_WIDE (int): Date filters fail to restrict date to a range smaller than 31 days. + Applicable if the query is segmented by date. + EXPECTED_AND (int): Expected AND between values with BETWEEN operator. + EXPECTED_BY (int): Expecting ORDER BY to have BY. + EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE (int): There was no dimension field selected. + EXPECTED_FILTERS_ON_DATE_RANGE (int): Missing filters on date related fields. + EXPECTED_FROM (int): Missing FROM clause. + EXPECTED_LIST (int): The operator used in the conditions requires the value to be a list. + EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE (int): Fields used in WHERE or ORDER BY clauses are missing from the SELECT + clause. + EXPECTED_SELECT (int): SELECT is missing at the beginning of query. + EXPECTED_SINGLE_VALUE (int): A list was passed as a value to a condition whose operator expects a + single value. + EXPECTED_VALUE_WITH_BETWEEN_OPERATOR (int): Missing one or both values with BETWEEN operator. + INVALID_DATE_FORMAT (int): Invalid date format. Expected 'YYYY-MM-DD'. + INVALID_STRING_VALUE (int): Value passed was not a string when it should have been. I.e., it was a + number or unquoted literal. + INVALID_VALUE_WITH_BETWEEN_OPERATOR (int): A String value passed to the BETWEEN operator does not parse as a date. + INVALID_VALUE_WITH_DURING_OPERATOR (int): The value passed to the DURING operator is not a Date range literal + INVALID_VALUE_WITH_LIKE_OPERATOR (int): A non-string value was passed to the LIKE operator. + OPERATOR_FIELD_MISMATCH (int): An operator was provided that is inapplicable to the field being + filtered. + PROHIBITED_EMPTY_LIST_IN_CONDITION (int): A Condition was found with an empty list. + PROHIBITED_ENUM_CONSTANT (int): A condition used in the query references an unsupported enum constant. + PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE (int): Fields that are not allowed to be selected together were included in + the SELECT clause. + PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE (int): A field that is not orderable was included in the ORDER BY clause. + PROHIBITED_FIELD_IN_SELECT_CLAUSE (int): A field that is not selectable was included in the SELECT clause. + PROHIBITED_FIELD_IN_WHERE_CLAUSE (int): A field that is not filterable was included in the WHERE clause. + PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE (int): Resource type specified in the FROM clause is not supported by this + service. + PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE (int): A field that comes from an incompatible resource was included in the + SELECT clause. + PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE (int): A field that comes from an incompatible resource was included in the + WHERE clause. + PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE (int): A metric incompatible with the main resource or other selected + segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE (int): A segment incompatible with the main resource or other selected + segmenting resources was included in the SELECT or WHERE clause. + PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE (int): A segment in the SELECT clause is incompatible with a metric in the + SELECT or WHERE clause. + LIMIT_VALUE_TOO_LOW (int): The value passed to the limit clause is too low. + PROHIBITED_NEWLINE_IN_STRING (int): Query has a string containing a newline character. + PROHIBITED_VALUE_COMBINATION_IN_LIST (int): List contains values of different types. + PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR (int): The values passed to the BETWEEN operator are not of the same type. + STRING_NOT_TERMINATED (int): Query contains unterminated string. + TOO_MANY_SEGMENTS (int): Too many segments are specified in SELECT clause. + UNEXPECTED_END_OF_QUERY (int): Query is incomplete and cannot be parsed. + UNEXPECTED_FROM_CLAUSE (int): FROM clause cannot be specified in this query. + UNRECOGNIZED_FIELD (int): Query contains one or more unrecognized fields. + UNEXPECTED_INPUT (int): Query has an unexpected extra part. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + QUERY_ERROR = 50 + BAD_ENUM_CONSTANT = 18 + BAD_ESCAPE_SEQUENCE = 7 + BAD_FIELD_NAME = 12 + BAD_LIMIT_VALUE = 15 + BAD_NUMBER = 5 + BAD_OPERATOR = 3 + BAD_RESOURCE_TYPE_IN_FROM_CLAUSE = 45 + BAD_SYMBOL = 2 + BAD_VALUE = 4 + DATE_RANGE_TOO_WIDE = 36 + EXPECTED_AND = 30 + EXPECTED_BY = 14 + EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE = 37 + EXPECTED_FILTERS_ON_DATE_RANGE = 55 + EXPECTED_FROM = 44 + EXPECTED_LIST = 41 + EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE = 16 + EXPECTED_SELECT = 13 + EXPECTED_SINGLE_VALUE = 42 + EXPECTED_VALUE_WITH_BETWEEN_OPERATOR = 29 + INVALID_DATE_FORMAT = 38 + INVALID_STRING_VALUE = 57 + INVALID_VALUE_WITH_BETWEEN_OPERATOR = 26 + INVALID_VALUE_WITH_DURING_OPERATOR = 22 + INVALID_VALUE_WITH_LIKE_OPERATOR = 56 + OPERATOR_FIELD_MISMATCH = 35 + PROHIBITED_EMPTY_LIST_IN_CONDITION = 28 + PROHIBITED_ENUM_CONSTANT = 54 + PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE = 31 + PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE = 40 + PROHIBITED_FIELD_IN_SELECT_CLAUSE = 23 + PROHIBITED_FIELD_IN_WHERE_CLAUSE = 24 + PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE = 43 + PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE = 48 + PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE = 58 + PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 49 + PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE = 51 + PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE = 53 + LIMIT_VALUE_TOO_LOW = 25 + PROHIBITED_NEWLINE_IN_STRING = 8 + PROHIBITED_VALUE_COMBINATION_IN_LIST = 10 + PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR = 21 + STRING_NOT_TERMINATED = 6 + TOO_MANY_SEGMENTS = 34 + UNEXPECTED_END_OF_QUERY = 9 + UNEXPECTED_FROM_CLAUSE = 47 + UNRECOGNIZED_FIELD = 32 + UNEXPECTED_INPUT = 11 + + +class RequestErrorEnum(object): + class RequestError(enum.IntEnum): + """ + Enum describing possible request errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_NAME_MISSING (int): Resource name is required for this request. + RESOURCE_NAME_MALFORMED (int): Resource name provided is malformed. + BAD_RESOURCE_ID (int): Resource name provided is malformed. + INVALID_CUSTOMER_ID (int): Customer ID is invalid. + OPERATION_REQUIRED (int): Mutate operation should have either create, update, or remove specified. + RESOURCE_NOT_FOUND (int): Requested resource not found. + INVALID_PAGE_TOKEN (int): Next page token specified in user request is invalid. + EXPIRED_PAGE_TOKEN (int): Next page token specified in user request has expired. + REQUIRED_FIELD_MISSING (int): Required field is missing. + IMMUTABLE_FIELD (int): The field cannot be modified because it's immutable. It's also possible + that the field can be modified using 'create' operation but not 'update'. + TOO_MANY_MUTATE_OPERATIONS (int): Received too many entries in request. + CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT (int): Request cannot be executed by a manager account. + CANNOT_MODIFY_FOREIGN_FIELD (int): Mutate request was attempting to modify a readonly field. + For instance, Budget fields can be requested for Ad Group, + but are read-only for adGroups:mutate. + INVALID_ENUM_VALUE (int): Enum value is not permitted. + DEVELOPER_TOKEN_PARAMETER_MISSING (int): The developer-token parameter is required for all requests. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_NAME_MISSING = 3 + RESOURCE_NAME_MALFORMED = 4 + BAD_RESOURCE_ID = 17 + INVALID_CUSTOMER_ID = 16 + OPERATION_REQUIRED = 5 + RESOURCE_NOT_FOUND = 6 + INVALID_PAGE_TOKEN = 7 + EXPIRED_PAGE_TOKEN = 8 + REQUIRED_FIELD_MISSING = 9 + IMMUTABLE_FIELD = 11 + TOO_MANY_MUTATE_OPERATIONS = 13 + CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT = 14 + CANNOT_MODIFY_FOREIGN_FIELD = 15 + INVALID_ENUM_VALUE = 18 + DEVELOPER_TOKEN_PARAMETER_MISSING = 19 + + +class ResourceAccessDeniedErrorEnum(object): + class ResourceAccessDeniedError(enum.IntEnum): + """ + Enum describing possible resource access denied errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + WRITE_ACCESS_DENIED (int): User did not have write access. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + WRITE_ACCESS_DENIED = 3 + + +class DateErrorEnum(object): + class DateError(enum.IntEnum): + """ + Enum describing possible date errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_FIELD_VALUES_IN_DATE (int): Given field values do not correspond to a valid date. + INVALID_FIELD_VALUES_IN_DATE_TIME (int): Given field values do not correspond to a valid date time. + INVALID_STRING_DATE (int): The string date's format should be yyyymmdd. + INVALID_STRING_DATE_TIME (int): The string date time's format should be yyyymmdd hhmmss [tz]. + EARLIER_THAN_MINIMUM_DATE (int): Date is before allowed minimum. + LATER_THAN_MAXIMUM_DATE (int): Date is after allowed maximum. + DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE (int): Date range bounds are not in order. + DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL (int): Both dates in range are null. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_FIELD_VALUES_IN_DATE = 2 + INVALID_FIELD_VALUES_IN_DATE_TIME = 3 + INVALID_STRING_DATE = 4 + INVALID_STRING_DATE_TIME = 6 + EARLIER_THAN_MINIMUM_DATE = 7 + LATER_THAN_MAXIMUM_DATE = 8 + DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE = 9 + DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL = 10 + + +class MultiplierErrorEnum(object): + class MultiplierError(enum.IntEnum): + """ + Enum describing possible multiplier errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + MULTIPLIER_TOO_HIGH (int): Multiplier value is too high + MULTIPLIER_TOO_LOW (int): Multiplier value is too low + TOO_MANY_FRACTIONAL_DIGITS (int): Too many fractional digits + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY (int): A multiplier cannot be set for this bidding strategy + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING (int): A multiplier cannot be set when there is no base bid (e.g., content max + cpc) + NO_MULTIPLIER_SPECIFIED (int): A bid multiplier must be specified + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET (int): Multiplier causes bid to exceed daily budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET (int): Multiplier causes bid to exceed monthly budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET (int): Multiplier causes bid to exceed custom budget + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID (int): Multiplier causes bid to exceed maximum allowed bid + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER (int): Multiplier causes bid to become less than the minimum bid allowed + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH (int): Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + MULTIPLIER_TOO_HIGH = 2 + MULTIPLIER_TOO_LOW = 3 + TOO_MANY_FRACTIONAL_DIGITS = 4 + MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY = 5 + MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING = 6 + NO_MULTIPLIER_SPECIFIED = 7 + MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET = 8 + MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET = 9 + MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET = 10 + MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID = 11 + BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER = 12 + MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH = 13 + + +class FieldErrorEnum(object): + class FieldError(enum.IntEnum): + """ + Enum describing possible field errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + REQUIRED (int): The required field was not present in the resource. + IMMUTABLE_FIELD (int): The field attempted to be mutated is immutable. + INVALID_VALUE (int): The field's value is invalid. + VALUE_MUST_BE_UNSET (int): The field cannot be set. + REQUIRED_NONEMPTY_LIST (int): The required repeated field was empty. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUIRED = 2 + IMMUTABLE_FIELD = 3 + INVALID_VALUE = 4 + VALUE_MUST_BE_UNSET = 5 + REQUIRED_NONEMPTY_LIST = 6 + + +class NullErrorEnum(object): + class NullError(enum.IntEnum): + """ + Enum describing possible null errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NULL_CONTENT (int): Specified list/container must not contain any null elements + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NULL_CONTENT = 2 + + +class AdErrorEnum(object): + class AdError(enum.IntEnum): + """ + Enum describing possible ad errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE (int): Ad customizers are not supported for ad type. + APPROXIMATELY_TOO_LONG (int): Estimating character sizes the string is too long. + APPROXIMATELY_TOO_SHORT (int): Estimating character sizes the string is too short. + BAD_SNIPPET (int): There is a problem with the snippet. + CANNOT_MODIFY_AD (int): Cannot modify an ad. + CANNOT_SET_BUSINESS_NAME_IF_URL_SET (int): business name and url cannot be set at the same time + CANNOT_SET_FIELD (int): The specified field is incompatible with this ad's type or settings. + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET (int): Cannot set field when originAdId is set. + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING (int): Cannot set field when an existing ad id is set for sharing. + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE (int): Cannot set allowFlexibleColor false if no color is provided by user. + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING (int): When user select native, no color control is allowed because we will + always respect publisher color for native format serving. + CANNOT_SET_URL (int): Cannot specify a url for the ad type + CANNOT_SET_WITHOUT_FINAL_URLS (int): Cannot specify a tracking or mobile url without also setting final urls + CANNOT_SET_WITH_FINAL_URLS (int): Cannot specify a legacy url and a final url simultaneously + CANNOT_SET_WITH_TRACKING_URL_TEMPLATE (int): Cannot specify a legacy url and a tracking url template simultaneously in + a DSA. + CANNOT_SET_WITH_URL_DATA (int): Cannot specify a urls in UrlData and in template fields simultaneously. + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR (int): This operator cannot be used with a subclass of Ad. + CUSTOMER_NOT_APPROVED_MOBILEADS (int): Customer is not approved for mobile ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS (int): Customer is not approved for 3PAS richmedia ads. + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS (int): Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. + CUSTOMER_NOT_ELIGIBLE (int): Not an eligible customer + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL (int): Customer is not eligible for updating beacon url + DIMENSION_ALREADY_IN_UNION (int): There already exists an ad with the same dimensions in the union. + DIMENSION_MUST_BE_SET (int): Ad's dimension must be set before setting union dimension. + DIMENSION_NOT_IN_UNION (int): Ad's dimension must be included in the union dimensions. + DISPLAY_URL_CANNOT_BE_SPECIFIED (int): Display Url cannot be specified (applies to Ad Exchange Ads) + DOMESTIC_PHONE_NUMBER_FORMAT (int): Telephone number contains invalid characters or invalid format. Please + re-enter your number using digits (0-9), dashes (-), and parentheses + only. + EMERGENCY_PHONE_NUMBER (int): Emergency telephone numbers are not allowed. Please enter a valid + domestic phone number to connect customers to your business. + EMPTY_FIELD (int): A required field was not specified or is an empty string. + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID (int): A feed attribute referenced in an ad customizer tag is not in the ad + customizer mapping for the feed. + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH (int): The ad customizer field mapping for the feed attribute does not match the + expected field type. + ILLEGAL_AD_CUSTOMIZER_TAG_USE (int): The use of ad customizer tags in the ad text is disallowed. Details in + trigger. + ILLEGAL_TAG_USE (int): Tags of the form {PH_x}, where x is a number, are disallowed in ad text. + INCONSISTENT_DIMENSIONS (int): The dimensions of the ad are specified or derived in multiple ways and + are not consistent. + INCONSISTENT_STATUS_IN_TEMPLATE_UNION (int): The status cannot differ among template ads of the same union. + INCORRECT_LENGTH (int): The length of the string is not valid. + INELIGIBLE_FOR_UPGRADE (int): The ad is ineligible for upgrade. + INVALID_AD_ADDRESS_CAMPAIGN_TARGET (int): User cannot create mobile ad for countries targeted in specified + campaign. + INVALID_AD_TYPE (int): Invalid Ad type. A specific type of Ad is required. + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE (int): Headline, description or phone cannot be present when creating mobile + image ad. + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT (int): Image cannot be present when creating mobile text ad. + INVALID_CALL_TO_ACTION_TEXT (int): Invalid call to action text. + INVALID_CHARACTER_FOR_URL (int): Invalid character in URL. + INVALID_COUNTRY_CODE (int): Creative's country code is not valid. + INVALID_DSA_URL_TAG (int): Invalid use of Dynamic Search Ads tags ({lpurl} etc.) + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG (int): Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) + INVALID_INPUT (int): An input error whose real reason was not properly mapped (should not + happen). + INVALID_MARKUP_LANGUAGE (int): An invalid markup language was entered. + INVALID_MOBILE_CARRIER (int): An invalid mobile carrier was entered. + INVALID_MOBILE_CARRIER_TARGET (int): Specified mobile carriers target a country not targeted by the campaign. + INVALID_NUMBER_OF_ELEMENTS (int): Wrong number of elements for given element type + INVALID_PHONE_NUMBER_FORMAT (int): The format of the telephone number is incorrect. Please re-enter the + number using the correct format. + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID (int): The certified vendor format id is incorrect. + INVALID_TEMPLATE_DATA (int): The template ad data contains validation errors. + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE (int): The template field doesn't have have the correct type. + INVALID_TEMPLATE_ID (int): Invalid template id. + LINE_TOO_WIDE (int): After substituting replacement strings, the line is too wide. + MISSING_AD_CUSTOMIZER_MAPPING (int): The feed referenced must have ad customizer mapping to be used in a + customizer tag. + MISSING_ADDRESS_COMPONENT (int): Missing address component in template element address field. + MISSING_ADVERTISEMENT_NAME (int): An ad name must be entered. + MISSING_BUSINESS_NAME (int): Business name must be entered. + MISSING_DESCRIPTION1 (int): Description (line 2) must be entered. + MISSING_DESCRIPTION2 (int): Description (line 3) must be entered. + MISSING_DESTINATION_URL_TAG (int): The destination url must contain at least one tag (e.g. {lpurl}) + MISSING_LANDING_PAGE_URL_TAG (int): The tracking url template of ExpandedDynamicSearchAd must contain at + least one tag. (e.g. {lpurl}) + MISSING_DIMENSION (int): A valid dimension must be specified for this ad. + MISSING_DISPLAY_URL (int): A display URL must be entered. + MISSING_HEADLINE (int): Headline must be entered. + MISSING_HEIGHT (int): A height must be entered. + MISSING_IMAGE (int): An image must be entered. + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS (int): Marketing image or product videos are required. + MISSING_MARKUP_LANGUAGES (int): The markup language in which your site is written must be entered. + MISSING_MOBILE_CARRIER (int): A mobile carrier must be entered. + MISSING_PHONE (int): Phone number must be entered. + MISSING_REQUIRED_TEMPLATE_FIELDS (int): Missing required template fields + MISSING_TEMPLATE_FIELD_VALUE (int): Missing a required field value + MISSING_TEXT (int): The ad must have text. + MISSING_VISIBLE_URL (int): A visible URL must be entered. + MISSING_WIDTH (int): A width must be entered. + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED (int): Only 1 feed can be used as the source of ad customizer substitutions in a + single ad. + MUST_USE_TEMP_AD_UNION_ID_ON_ADD (int): TempAdUnionId must be use when adding template ads. + TOO_LONG (int): The string has too many characters. + TOO_SHORT (int): The string has too few characters. + UNION_DIMENSIONS_CANNOT_CHANGE (int): Ad union dimensions cannot change for saved ads. + UNKNOWN_ADDRESS_COMPONENT (int): Address component is not {country, lat, lng}. + UNKNOWN_FIELD_NAME (int): Unknown unique field name + UNKNOWN_UNIQUE_NAME (int): Unknown unique name (template element type specifier) + UNSUPPORTED_DIMENSIONS (int): Unsupported ad dimension + URL_INVALID_SCHEME (int): URL starts with an invalid scheme. + URL_INVALID_TOP_LEVEL_DOMAIN (int): URL ends with an invalid top-level domain name. + URL_MALFORMED (int): URL contains illegal characters. + URL_NO_HOST (int): URL must contain a host name. + URL_NOT_EQUIVALENT (int): URL not equivalent during upgrade. + URL_HOST_NAME_TOO_LONG (int): URL host name too long to be stored as visible URL (applies to Ad + Exchange ads) + URL_NO_SCHEME (int): URL must start with a scheme. + URL_NO_TOP_LEVEL_DOMAIN (int): URL should end in a valid domain extension, such as .com or .net. + URL_PATH_NOT_ALLOWED (int): URL must not end with a path. + URL_PORT_NOT_ALLOWED (int): URL must not specify a port. + URL_QUERY_NOT_ALLOWED (int): URL must not contain a query. + URL_SCHEME_BEFORE_DSA_TAG (int): A url scheme is not allowed in front of tag in dest url (e.g. + http://{lpurl}) + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG (int): A url scheme is not allowed in front of tag in tracking url template + (e.g. http://{lpurl}) + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE (int): The user does not have permissions to create a template ad for the given + template. + INCONSISTENT_EXPANDABLE_SETTINGS (int): Expandable setting is inconsistent/wrong. For example, an AdX ad is + invalid if it has a expandable vendor format but no expanding directions + specified, or expanding directions is specified, but the vendor format is + not expandable. + INVALID_FORMAT (int): Format is invalid + INVALID_FIELD_TEXT (int): The text of this field did not match a pattern of allowed values. + ELEMENT_NOT_PRESENT (int): Template element is mising + IMAGE_ERROR (int): Error occurred during image processing + VALUE_NOT_IN_RANGE (int): The value is not within the valid range + FIELD_NOT_PRESENT (int): Template element field is not present + ADDRESS_NOT_COMPLETE (int): Address is incomplete + ADDRESS_INVALID (int): Invalid address + VIDEO_RETRIEVAL_ERROR (int): Error retrieving specified video + AUDIO_ERROR (int): Error processing audio + INVALID_YOUTUBE_DISPLAY_URL (int): Display URL is incorrect for YouTube PYV ads + TOO_MANY_PRODUCT_IMAGES (int): Too many product Images in GmailAd + TOO_MANY_PRODUCT_VIDEOS (int): Too many product Videos in GmailAd + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE (int): The device preference is not compatible with the ad type + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY (int): Call tracking is not supported for specified country. + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED (int): Carrier specific short number is not allowed. + DISALLOWED_NUMBER_TYPE (int): Specified phone number type is disallowed. + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY (int): Phone number not supported for country. + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY (int): Phone number not supported with call tracking enabled for country. + PREMIUM_RATE_NUMBER_NOT_ALLOWED (int): Premium rate phone number is not allowed. + VANITY_PHONE_NUMBER_NOT_ALLOWED (int): Vanity phone number is not allowed. + INVALID_CALL_CONVERSION_TYPE_ID (int): Invalid call conversion type id. + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID (int): Cannot disable call conversion and set conversion type id. + CANNOT_SET_PATH2_WITHOUT_PATH1 (int): Cannot set path2 without path1. + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME (int): Missing domain name in campaign setting when adding expanded dynamic + search ad. + INCOMPATIBLE_WITH_RESTRICTION_TYPE (int): The associated ad is not compatible with restriction type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE = 2 + APPROXIMATELY_TOO_LONG = 3 + APPROXIMATELY_TOO_SHORT = 4 + BAD_SNIPPET = 5 + CANNOT_MODIFY_AD = 6 + CANNOT_SET_BUSINESS_NAME_IF_URL_SET = 7 + CANNOT_SET_FIELD = 8 + CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET = 9 + CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING = 10 + CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE = 11 + CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING = 12 + CANNOT_SET_URL = 13 + CANNOT_SET_WITHOUT_FINAL_URLS = 14 + CANNOT_SET_WITH_FINAL_URLS = 15 + CANNOT_SET_WITH_TRACKING_URL_TEMPLATE = 16 + CANNOT_SET_WITH_URL_DATA = 17 + CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR = 18 + CUSTOMER_NOT_APPROVED_MOBILEADS = 19 + CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS = 20 + CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS = 21 + CUSTOMER_NOT_ELIGIBLE = 22 + CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL = 23 + DIMENSION_ALREADY_IN_UNION = 24 + DIMENSION_MUST_BE_SET = 25 + DIMENSION_NOT_IN_UNION = 26 + DISPLAY_URL_CANNOT_BE_SPECIFIED = 27 + DOMESTIC_PHONE_NUMBER_FORMAT = 28 + EMERGENCY_PHONE_NUMBER = 29 + EMPTY_FIELD = 30 + FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID = 31 + FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH = 32 + ILLEGAL_AD_CUSTOMIZER_TAG_USE = 33 + ILLEGAL_TAG_USE = 34 + INCONSISTENT_DIMENSIONS = 35 + INCONSISTENT_STATUS_IN_TEMPLATE_UNION = 36 + INCORRECT_LENGTH = 37 + INELIGIBLE_FOR_UPGRADE = 38 + INVALID_AD_ADDRESS_CAMPAIGN_TARGET = 39 + INVALID_AD_TYPE = 40 + INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE = 41 + INVALID_ATTRIBUTES_FOR_MOBILE_TEXT = 42 + INVALID_CALL_TO_ACTION_TEXT = 43 + INVALID_CHARACTER_FOR_URL = 44 + INVALID_COUNTRY_CODE = 45 + INVALID_DSA_URL_TAG = 46 + INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 47 + INVALID_INPUT = 48 + INVALID_MARKUP_LANGUAGE = 49 + INVALID_MOBILE_CARRIER = 50 + INVALID_MOBILE_CARRIER_TARGET = 51 + INVALID_NUMBER_OF_ELEMENTS = 52 + INVALID_PHONE_NUMBER_FORMAT = 53 + INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID = 54 + INVALID_TEMPLATE_DATA = 55 + INVALID_TEMPLATE_ELEMENT_FIELD_TYPE = 56 + INVALID_TEMPLATE_ID = 57 + LINE_TOO_WIDE = 58 + MISSING_AD_CUSTOMIZER_MAPPING = 59 + MISSING_ADDRESS_COMPONENT = 60 + MISSING_ADVERTISEMENT_NAME = 61 + MISSING_BUSINESS_NAME = 62 + MISSING_DESCRIPTION1 = 63 + MISSING_DESCRIPTION2 = 64 + MISSING_DESTINATION_URL_TAG = 65 + MISSING_LANDING_PAGE_URL_TAG = 66 + MISSING_DIMENSION = 67 + MISSING_DISPLAY_URL = 68 + MISSING_HEADLINE = 69 + MISSING_HEIGHT = 70 + MISSING_IMAGE = 71 + MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS = 72 + MISSING_MARKUP_LANGUAGES = 73 + MISSING_MOBILE_CARRIER = 74 + MISSING_PHONE = 75 + MISSING_REQUIRED_TEMPLATE_FIELDS = 76 + MISSING_TEMPLATE_FIELD_VALUE = 77 + MISSING_TEXT = 78 + MISSING_VISIBLE_URL = 79 + MISSING_WIDTH = 80 + MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED = 81 + MUST_USE_TEMP_AD_UNION_ID_ON_ADD = 82 + TOO_LONG = 83 + TOO_SHORT = 84 + UNION_DIMENSIONS_CANNOT_CHANGE = 85 + UNKNOWN_ADDRESS_COMPONENT = 86 + UNKNOWN_FIELD_NAME = 87 + UNKNOWN_UNIQUE_NAME = 88 + UNSUPPORTED_DIMENSIONS = 89 + URL_INVALID_SCHEME = 90 + URL_INVALID_TOP_LEVEL_DOMAIN = 91 + URL_MALFORMED = 92 + URL_NO_HOST = 93 + URL_NOT_EQUIVALENT = 94 + URL_HOST_NAME_TOO_LONG = 95 + URL_NO_SCHEME = 96 + URL_NO_TOP_LEVEL_DOMAIN = 97 + URL_PATH_NOT_ALLOWED = 98 + URL_PORT_NOT_ALLOWED = 99 + URL_QUERY_NOT_ALLOWED = 100 + URL_SCHEME_BEFORE_DSA_TAG = 101 + URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG = 102 + USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE = 103 + INCONSISTENT_EXPANDABLE_SETTINGS = 104 + INVALID_FORMAT = 105 + INVALID_FIELD_TEXT = 106 + ELEMENT_NOT_PRESENT = 107 + IMAGE_ERROR = 108 + VALUE_NOT_IN_RANGE = 109 + FIELD_NOT_PRESENT = 110 + ADDRESS_NOT_COMPLETE = 111 + ADDRESS_INVALID = 112 + VIDEO_RETRIEVAL_ERROR = 113 + AUDIO_ERROR = 114 + INVALID_YOUTUBE_DISPLAY_URL = 115 + TOO_MANY_PRODUCT_IMAGES = 116 + TOO_MANY_PRODUCT_VIDEOS = 117 + INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE = 118 + CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY = 119 + CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED = 120 + DISALLOWED_NUMBER_TYPE = 121 + PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY = 122 + PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY = 123 + PREMIUM_RATE_NUMBER_NOT_ALLOWED = 124 + VANITY_PHONE_NUMBER_NOT_ALLOWED = 125 + INVALID_CALL_CONVERSION_TYPE_ID = 126 + CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID = 127 + CANNOT_SET_PATH2_WITHOUT_PATH1 = 128 + MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME = 129 + INCOMPATIBLE_WITH_RESTRICTION_TYPE = 130 + + +class AuthenticationErrorEnum(object): + class AuthenticationError(enum.IntEnum): + """ + Enum describing possible authentication errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AUTHENTICATION_ERROR (int): Authentication of the request failed. + CLIENT_CUSTOMER_ID_INVALID (int): Client customer Id is not a number. + CUSTOMER_NOT_FOUND (int): No customer found for the provided customer id. + GOOGLE_ACCOUNT_DELETED (int): Client's Google Account is deleted. + GOOGLE_ACCOUNT_COOKIE_INVALID (int): Google account login token in the cookie is invalid. + FAILED_TO_AUTHENTICATE_GOOGLE_ACCOUNT (int): A problem occurred during Google account authentication. + GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH (int): The user in the google account login token does not match the UserId in + the cookie. + LOGIN_COOKIE_REQUIRED (int): Login cookie is required for authentication. + NOT_ADS_USER (int): User in the cookie is not a valid Ads user. + OAUTH_TOKEN_INVALID (int): Oauth token in the header is not valid. + OAUTH_TOKEN_EXPIRED (int): Oauth token in the header has expired. + OAUTH_TOKEN_DISABLED (int): Oauth token in the header has been disabled. + OAUTH_TOKEN_REVOKED (int): Oauth token in the header has been revoked. + OAUTH_TOKEN_HEADER_INVALID (int): Oauth token HTTP header is malformed. + LOGIN_COOKIE_INVALID (int): Login cookie is not valid. + FAILED_TO_RETRIEVE_LOGIN_COOKIE (int): Failed to decrypt the login cookie. + USER_ID_INVALID (int): User Id in the header is not a valid id. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AUTHENTICATION_ERROR = 2 + CLIENT_CUSTOMER_ID_INVALID = 5 + CUSTOMER_NOT_FOUND = 8 + GOOGLE_ACCOUNT_DELETED = 9 + GOOGLE_ACCOUNT_COOKIE_INVALID = 10 + FAILED_TO_AUTHENTICATE_GOOGLE_ACCOUNT = 11 + GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH = 12 + LOGIN_COOKIE_REQUIRED = 13 + NOT_ADS_USER = 14 + OAUTH_TOKEN_INVALID = 15 + OAUTH_TOKEN_EXPIRED = 16 + OAUTH_TOKEN_DISABLED = 17 + OAUTH_TOKEN_REVOKED = 18 + OAUTH_TOKEN_HEADER_INVALID = 19 + LOGIN_COOKIE_INVALID = 20 + FAILED_TO_RETRIEVE_LOGIN_COOKIE = 21 + USER_ID_INVALID = 22 + + +class CampaignBudgetErrorEnum(object): + class CampaignBudgetError(enum.IntEnum): + """ + Enum describing possible campaign budget errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CAMPAIGN_BUDGET_REMOVED (int): The requested campaign budget no longer exists. + CAMPAIGN_BUDGET_IN_USE (int): The campaign budget is associated with at least one campaign, and so the + campaign budget cannot be removed. + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE (int): Customer is not whitelisted for this campaign budget period. + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET (int): This field is not mutable on implicitly shared campaign budgets + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED (int): Cannot change explicitly shared campaign budgets back to implicitly + shared ones. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME (int): An implicit campaign budget without a name cannot be changed to + explicitly shared campaign budget. + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED (int): Cannot change an implicitly shared campaign budget to an explicitly + shared one. + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS (int): Only explicitly shared campaign budgets can be used with multiple + campaigns. + DUPLICATE_NAME (int): A campaign budget with this name already exists. + MONEY_AMOUNT_IN_WRONG_CURRENCY (int): A money amount was not in the expected currency. + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC (int): A money amount was less than the minimum CPC for currency. + MONEY_AMOUNT_TOO_LARGE (int): A money amount was greater than the maximum allowed. + NEGATIVE_MONEY_AMOUNT (int): A money amount was negative. + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT (int): A money amount was not a multiple of a minimum unit. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CAMPAIGN_BUDGET_REMOVED = 2 + CAMPAIGN_BUDGET_IN_USE = 3 + CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE = 4 + CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET = 6 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED = 7 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME = 8 + CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED = 9 + CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS = 10 + DUPLICATE_NAME = 11 + MONEY_AMOUNT_IN_WRONG_CURRENCY = 12 + MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC = 13 + MONEY_AMOUNT_TOO_LARGE = 14 + NEGATIVE_MONEY_AMOUNT = 15 + NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT = 16 + + +class RecommendationErrorEnum(object): + class RecommendationError(enum.IntEnum): + """ + Enum describing possible errors from applying a recommendation. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BUDGET_AMOUNT_TOO_SMALL (int): The specified budget amount is too low e.g. lower than minimum currency + unit or lower than ad group minimum cost-per-click. + BUDGET_AMOUNT_TOO_LARGE (int): The specified budget amount is too large. + INVALID_BUDGET_AMOUNT (int): The specified budget amount is not a valid amount. e.g. not a multiple + of minimum currency unit. + POLICY_ERROR (int): The specified keyword or ad violates ad policy. + INVALID_BID_AMOUNT (int): The specified bid amount is not valid. e.g. too many fractional digits, + or negative amount. + ADGROUP_KEYWORD_LIMIT (int): The number of keywords in ad group have reached the maximum allowed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BUDGET_AMOUNT_TOO_SMALL = 2 + BUDGET_AMOUNT_TOO_LARGE = 3 + INVALID_BUDGET_AMOUNT = 4 + POLICY_ERROR = 5 + INVALID_BID_AMOUNT = 6 + ADGROUP_KEYWORD_LIMIT = 7 + + +class NotEmptyErrorEnum(object): + class NotEmptyError(enum.IntEnum): + """ + Enum describing possible not empty errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + EMPTY_LIST (int): Empty list. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + EMPTY_LIST = 2 + + +class QuotaErrorEnum(object): + class QuotaError(enum.IntEnum): + """ + Enum describing possible quota errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_EXHAUSTED (int): Too many requests. + ACCESS_PROHIBITED (int): Access is prohibited. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_EXHAUSTED = 2 + ACCESS_PROHIBITED = 3 + + +class AuthorizationErrorEnum(object): + class AuthorizationError(enum.IntEnum): + """ + Enum describing possible authorization errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + USER_PERMISSION_DENIED (int): User doesn't have permission to access customer. + DEVELOPER_TOKEN_NOT_WHITELISTED (int): The developer token is not whitelisted. + DEVELOPER_TOKEN_PROHIBITED (int): The developer token is not allowed with the project sent in the request. + PROJECT_DISABLED (int): The Google Cloud project sent in the request does not have permission to + access the api. + AUTHORIZATION_ERROR (int): Authorization of the client failed. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + USER_PERMISSION_DENIED = 2 + DEVELOPER_TOKEN_NOT_WHITELISTED = 3 + DEVELOPER_TOKEN_PROHIBITED = 4 + PROJECT_DISABLED = 5 + AUTHORIZATION_ERROR = 6 + + +class NewResourceCreationErrorEnum(object): + class NewResourceCreationError(enum.IntEnum): + """ + Enum describing possible new resource creation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_SET_ID_FOR_ADD (int): Do not set the id field while creating new entities. + DUPLICATE_TEMP_IDS (int): Creating more than one resource with the same temp ID is not allowed. + TEMP_ID_RESOURCE_HAD_ERRORS (int): Parent object with specified temp id failed validation, so no deep + validation will be done for this child resource. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_SET_ID_FOR_ADD = 2 + DUPLICATE_TEMP_IDS = 3 + TEMP_ID_RESOURCE_HAD_ERRORS = 4 + + +class ResourceCountLimitExceededErrorEnum(object): + class ResourceCountLimitExceededError(enum.IntEnum): + """ + Enum describing possible resource count limit exceeded errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ACCOUNT_LIMIT (int): Indicates that this request would exceed the number of allowed resources + for the AdWords account. The exact resource type and limit being checked + can be inferred from accountLimitType. + CAMPAIGN_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in a Campaign. The exact resource type and limit being checked can be + inferred from accountLimitType, and the numeric id of the + Campaign involved is given by enclosingId. + ADGROUP_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group. The exact resource type and limit being checked can be + inferred from accountLimitType, and the numeric id of the + ad group involved is given by enclosingId. + AD_GROUP_AD_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group ad. The exact resource type and limit being checked can + be inferred from accountLimitType, and the enclosingId + contains the ad group id followed by the ad id, separated by a single + comma (,). + AD_GROUP_CRITERION_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in an ad group criterion. The exact resource type and limit being checked + can be inferred from accountLimitType, and the + enclosingId contains the ad group id followed by the + criterion id, separated by a single comma (,). + SHARED_SET_LIMIT (int): Indicates that this request would exceed the number of allowed resources + in this shared set. The exact resource type and limit being checked can + be inferred from accountLimitType, and the numeric id of the + shared set involved is given by enclosingId. + MATCHING_FUNCTION_LIMIT (int): Exceeds a limit related to a matching function. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACCOUNT_LIMIT = 2 + CAMPAIGN_LIMIT = 3 + ADGROUP_LIMIT = 4 + AD_GROUP_AD_LIMIT = 5 + AD_GROUP_CRITERION_LIMIT = 6 + SHARED_SET_LIMIT = 7 + MATCHING_FUNCTION_LIMIT = 8 + + +class BiddingErrorEnum(object): + class BiddingError(enum.IntEnum): + """ + Enum describing possible bidding errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED (int): Cannot transition to new bidding strategy. + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN (int): Cannot attach bidding strategy to campaign. + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE (int): Bidding strategy is not supported or cannot be used as anonymous. + INVALID_BIDDING_STRATEGY_TYPE (int): The type does not match the named strategy's type. + INVALID_BID (int): The bid is invalid. + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE (int): Bidding strategy is not available for the account type. + CONVERSION_TRACKING_NOT_ENABLED (int): Conversion tracking is not enabled for the campaign for VBB transition. + NOT_ENOUGH_CONVERSIONS (int): Not enough conversions tracked for VBB transitions. + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY (int): Campaign can not be created with given bidding strategy. It can be + transitioned to the strategy, once eligible. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY (int): Cannot target content network only as campaign uses Page One Promoted + bidding strategy. + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE (int): Budget Optimizer and Target Spend bidding strategies are not supported + for campaigns with AdSchedule targeting. + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER (int): Pay per conversion is not available to all the customer, only few + whitelisted customers can use this. + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA (int): Pay per conversion is not allowed with Target CPA. + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS (int): Cannot set bidding strategy to Manual CPM for search network only + campaigns. + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS (int): The bidding strategy is not supported for use in drafts or experiments. + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION (int): Bidding strategy type does not support product type ad group criterion. + BID_TOO_SMALL (int): Bid amount is too small. + BID_TOO_BIG (int): Bid amount is too big. + BID_TOO_MANY_FRACTIONAL_DIGITS (int): Bid has too many fractional digit precision. + INVALID_DOMAIN_NAME (int): Invalid domain name specified. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED = 2 + CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN = 7 + INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE = 10 + INVALID_BIDDING_STRATEGY_TYPE = 14 + INVALID_BID = 17 + BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 18 + CONVERSION_TRACKING_NOT_ENABLED = 19 + NOT_ENOUGH_CONVERSIONS = 20 + CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY = 21 + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY = 23 + BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE = 24 + PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER = 25 + PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA = 26 + BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS = 27 + BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS = 28 + BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION = 29 + BID_TOO_SMALL = 30 + BID_TOO_BIG = 31 + BID_TOO_MANY_FRACTIONAL_DIGITS = 32 + INVALID_DOMAIN_NAME = 33 + + +class StringFormatErrorEnum(object): + class StringFormatError(enum.IntEnum): + """ + Enum describing possible string format errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ILLEGAL_CHARS (int): The input string value contains disallowed characters. + INVALID_FORMAT (int): The input string value is invalid for the associated field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ILLEGAL_CHARS = 2 + INVALID_FORMAT = 3 + + +class AdxErrorEnum(object): + class AdxError(enum.IntEnum): + """ + Enum describing possible adx errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + UNSUPPORTED_FEATURE (int): Attempt to use non-AdX feature by AdX customer. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + UNSUPPORTED_FEATURE = 2 + + +class DistinctErrorEnum(object): + class DistinctError(enum.IntEnum): + """ + Enum describing possible distinct errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_ELEMENT (int): Duplicate element. + DUPLICATE_TYPE (int): Duplicate type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_ELEMENT = 2 + DUPLICATE_TYPE = 3 + + +class UrlFieldErrorEnum(object): + class UrlFieldError(enum.IntEnum): + """ + Enum describing possible url field errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_TRACKING_URL_TEMPLATE (int): The tracking url template is invalid. + INVALID_TAG_IN_TRACKING_URL_TEMPLATE (int): The tracking url template contains invalid tag. + MISSING_TRACKING_URL_TEMPLATE_TAG (int): The tracking url template must contain at least one tag (e.g. {lpurl}), + This applies only to tracking url template associated with website ads or + product ads. + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE (int): The tracking url template must start with a valid protocol (or lpurl + tag). + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE (int): The tracking url template starts with an invalid protocol. + MALFORMED_TRACKING_URL_TEMPLATE (int): The tracking url template contains illegal characters. + MISSING_HOST_IN_TRACKING_URL_TEMPLATE (int): The tracking url template must contain a host name (or lpurl tag). + INVALID_TLD_IN_TRACKING_URL_TEMPLATE (int): The tracking url template has an invalid or missing top level domain + extension. + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG (int): The tracking url template contains nested occurrences of the same + conditional tag (i.e. {ifmobile:{ifmobile:x}}). + INVALID_FINAL_URL (int): The final url is invalid. + INVALID_TAG_IN_FINAL_URL (int): The final url contains invalid tag. + REDUNDANT_NESTED_FINAL_URL_TAG (int): The final url contains nested occurrences of the same conditional tag + (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL_IN_FINAL_URL (int): The final url must start with a valid protocol. + INVALID_PROTOCOL_IN_FINAL_URL (int): The final url starts with an invalid protocol. + MALFORMED_FINAL_URL (int): The final url contains illegal characters. + MISSING_HOST_IN_FINAL_URL (int): The final url must contain a host name. + INVALID_TLD_IN_FINAL_URL (int): The tracking url template has an invalid or missing top level domain + extension. + INVALID_FINAL_MOBILE_URL (int): The final mobile url is invalid. + INVALID_TAG_IN_FINAL_MOBILE_URL (int): The final mobile url contains invalid tag. + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG (int): The final mobile url contains nested occurrences of the same conditional + tag (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL (int): The final mobile url must start with a valid protocol. + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL (int): The final mobile url starts with an invalid protocol. + MALFORMED_FINAL_MOBILE_URL (int): The final mobile url contains illegal characters. + MISSING_HOST_IN_FINAL_MOBILE_URL (int): The final mobile url must contain a host name. + INVALID_TLD_IN_FINAL_MOBILE_URL (int): The tracking url template has an invalid or missing top level domain + extension. + INVALID_FINAL_APP_URL (int): The final app url is invalid. + INVALID_TAG_IN_FINAL_APP_URL (int): The final app url contains invalid tag. + REDUNDANT_NESTED_FINAL_APP_URL_TAG (int): The final app url contains nested occurrences of the same conditional tag + (i.e. {ifmobile:{ifmobile:x}}). + MULTIPLE_APP_URLS_FOR_OSTYPE (int): More than one app url found for the same OS type. + INVALID_OSTYPE (int): The OS type given for an app url is not valid. + INVALID_PROTOCOL_FOR_APP_URL (int): The protocol given for an app url is not valid. (E.g. \"android-app://\") + INVALID_PACKAGE_ID_FOR_APP_URL (int): The package id (app id) given for an app url is not valid. + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT (int): The number of url custom parameters for an resource exceeds the maximum + limit allowed. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY (int): An invalid character appears in the parameter key. + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE (int): An invalid character appears in the parameter value. + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE (int): The url custom parameter value fails url tag validation. + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG (int): The custom parameter contains nested occurrences of the same conditional + tag (i.e. {ifmobile:{ifmobile:x}}). + MISSING_PROTOCOL (int): The protocol (http:// or https://) is missing. + INVALID_URL (int): The url is invalid. + DESTINATION_URL_DEPRECATED (int): Destination Url is deprecated. + INVALID_TAG_IN_URL (int): The url contains invalid tag. + MISSING_URL_TAG (int): The url must contain at least one tag (e.g. {lpurl}), This applies only + to urls associated with website ads or product ads. + DUPLICATE_URL_ID (int): Duplicate url id. + INVALID_URL_ID (int): Invalid url id. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_TRACKING_URL_TEMPLATE = 2 + INVALID_TAG_IN_TRACKING_URL_TEMPLATE = 3 + MISSING_TRACKING_URL_TEMPLATE_TAG = 4 + MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 5 + INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE = 6 + MALFORMED_TRACKING_URL_TEMPLATE = 7 + MISSING_HOST_IN_TRACKING_URL_TEMPLATE = 8 + INVALID_TLD_IN_TRACKING_URL_TEMPLATE = 9 + REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG = 10 + INVALID_FINAL_URL = 11 + INVALID_TAG_IN_FINAL_URL = 12 + REDUNDANT_NESTED_FINAL_URL_TAG = 13 + MISSING_PROTOCOL_IN_FINAL_URL = 14 + INVALID_PROTOCOL_IN_FINAL_URL = 15 + MALFORMED_FINAL_URL = 16 + MISSING_HOST_IN_FINAL_URL = 17 + INVALID_TLD_IN_FINAL_URL = 18 + INVALID_FINAL_MOBILE_URL = 19 + INVALID_TAG_IN_FINAL_MOBILE_URL = 20 + REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG = 21 + MISSING_PROTOCOL_IN_FINAL_MOBILE_URL = 22 + INVALID_PROTOCOL_IN_FINAL_MOBILE_URL = 23 + MALFORMED_FINAL_MOBILE_URL = 24 + MISSING_HOST_IN_FINAL_MOBILE_URL = 25 + INVALID_TLD_IN_FINAL_MOBILE_URL = 26 + INVALID_FINAL_APP_URL = 27 + INVALID_TAG_IN_FINAL_APP_URL = 28 + REDUNDANT_NESTED_FINAL_APP_URL_TAG = 29 + MULTIPLE_APP_URLS_FOR_OSTYPE = 30 + INVALID_OSTYPE = 31 + INVALID_PROTOCOL_FOR_APP_URL = 32 + INVALID_PACKAGE_ID_FOR_APP_URL = 33 + URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT = 34 + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY = 39 + INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE = 40 + INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE = 41 + REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG = 42 + MISSING_PROTOCOL = 43 + INVALID_URL = 44 + DESTINATION_URL_DEPRECATED = 45 + INVALID_TAG_IN_URL = 46 + MISSING_URL_TAG = 47 + DUPLICATE_URL_ID = 48 + INVALID_URL_ID = 49 + + +class AdGroupBidModifierErrorEnum(object): + class AdGroupBidModifierError(enum.IntEnum): + """ + Enum describing possible ad group bid modifier errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CRITERION_ID_NOT_SUPPORTED (int): The criterion ID does not support bid modification. + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER (int): Cannot override the bid modifier for the given criterion ID if the parent + campaign is opted out of the same criterion. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CRITERION_ID_NOT_SUPPORTED = 2 + CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER = 3 + + +class StringLengthErrorEnum(object): + class StringLengthError(enum.IntEnum): + """ + Enum describing possible string length errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_SHORT (int): Too short. + TOO_LONG (int): Too long. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_SHORT = 2 + TOO_LONG = 3 + + +class AdCustomizerErrorEnum(object): + class AdCustomizerError(enum.IntEnum): + """ + Enum describing possible ad customizer errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + COUNTDOWN_INVALID_DATE_FORMAT (int): Invalid date argument in countdown function. + COUNTDOWN_DATE_IN_PAST (int): Countdown end date is in the past. + COUNTDOWN_INVALID_LOCALE (int): Invalid locale string in countdown function. + COUNTDOWN_INVALID_START_DAYS_BEFORE (int): Days-before argument to countdown function is not positive. + UNKNOWN_USER_LIST (int): A user list referenced in an IF function does not exist. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + COUNTDOWN_INVALID_DATE_FORMAT = 2 + COUNTDOWN_DATE_IN_PAST = 3 + COUNTDOWN_INVALID_LOCALE = 4 + COUNTDOWN_INVALID_START_DAYS_BEFORE = 5 + UNKNOWN_USER_LIST = 6 + + +class DateRangeErrorEnum(object): + class DateRangeError(enum.IntEnum): + """ + Enum describing possible date range errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_DATE (int): Invalid date. + START_DATE_AFTER_END_DATE (int): The start date was after the end date. + CANNOT_SET_DATE_TO_PAST (int): Cannot set date to past time + AFTER_MAXIMUM_ALLOWABLE_DATE (int): A date was used that is past the system \"last\" date. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED (int): Trying to change start date on a campaign that has started. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_DATE = 2 + START_DATE_AFTER_END_DATE = 3 + CANNOT_SET_DATE_TO_PAST = 4 + AFTER_MAXIMUM_ALLOWABLE_DATE = 5 + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 6 + + +class ImageErrorEnum(object): + class ImageError(enum.IntEnum): + """ + Enum describing possible image errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_IMAGE (int): The image is not valid. + STORAGE_ERROR (int): The image could not be stored. + BAD_REQUEST (int): There was a problem with the request. + UNEXPECTED_SIZE (int): The image is not of legal dimensions. + ANIMATED_NOT_ALLOWED (int): Animated image are not permitted. + ANIMATION_TOO_LONG (int): Animation is too long. + SERVER_ERROR (int): There was an error on the server. + CMYK_JPEG_NOT_ALLOWED (int): Image cannot be in CMYK color format. + FLASH_NOT_ALLOWED (int): Flash images are not permitted. + FLASH_WITHOUT_CLICKTAG (int): Flash images must support clickTag. + FLASH_ERROR_AFTER_FIXING_CLICK_TAG (int): A flash error has occurred after fixing the click tag. + ANIMATED_VISUAL_EFFECT (int): Unacceptable visual effects. + FLASH_ERROR (int): There was a problem with the flash image. + LAYOUT_PROBLEM (int): Incorrect image layout. + PROBLEM_READING_IMAGE_FILE (int): There was a problem reading the image file. + ERROR_STORING_IMAGE (int): There was an error storing the image. + ASPECT_RATIO_NOT_ALLOWED (int): The aspect ratio of the image is not allowed. + FLASH_HAS_NETWORK_OBJECTS (int): Flash cannot have network objects. + FLASH_HAS_NETWORK_METHODS (int): Flash cannot have network methods. + FLASH_HAS_URL (int): Flash cannot have a Url. + FLASH_HAS_MOUSE_TRACKING (int): Flash cannot use mouse tracking. + FLASH_HAS_RANDOM_NUM (int): Flash cannot have a random number. + FLASH_SELF_TARGETS (int): Ad click target cannot be '_self'. + FLASH_BAD_GETURL_TARGET (int): GetUrl method should only use '_blank'. + FLASH_VERSION_NOT_SUPPORTED (int): Flash version is not supported. + FLASH_WITHOUT_HARD_CODED_CLICK_URL (int): Flash movies need to have hard coded click URL or clickTAG + INVALID_FLASH_FILE (int): Uploaded flash file is corrupted. + FAILED_TO_FIX_CLICK_TAG_IN_FLASH (int): Uploaded flash file can be parsed, but the click tag can not be fixed + properly. + FLASH_ACCESSES_NETWORK_RESOURCES (int): Flash movie accesses network resources + FLASH_EXTERNAL_JS_CALL (int): Flash movie attempts to call external javascript code + FLASH_EXTERNAL_FS_CALL (int): Flash movie attempts to call flash system commands + FILE_TOO_LARGE (int): Image file is too large. + IMAGE_DATA_TOO_LARGE (int): Image data is too large. + IMAGE_PROCESSING_ERROR (int): Error while processing the image. + IMAGE_TOO_SMALL (int): Image is too small. + INVALID_INPUT (int): Input was invalid. + PROBLEM_READING_FILE (int): There was a problem reading the image file. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_IMAGE = 2 + STORAGE_ERROR = 3 + BAD_REQUEST = 4 + UNEXPECTED_SIZE = 5 + ANIMATED_NOT_ALLOWED = 6 + ANIMATION_TOO_LONG = 7 + SERVER_ERROR = 8 + CMYK_JPEG_NOT_ALLOWED = 9 + FLASH_NOT_ALLOWED = 10 + FLASH_WITHOUT_CLICKTAG = 11 + FLASH_ERROR_AFTER_FIXING_CLICK_TAG = 12 + ANIMATED_VISUAL_EFFECT = 13 + FLASH_ERROR = 14 + LAYOUT_PROBLEM = 15 + PROBLEM_READING_IMAGE_FILE = 16 + ERROR_STORING_IMAGE = 17 + ASPECT_RATIO_NOT_ALLOWED = 18 + FLASH_HAS_NETWORK_OBJECTS = 19 + FLASH_HAS_NETWORK_METHODS = 20 + FLASH_HAS_URL = 21 + FLASH_HAS_MOUSE_TRACKING = 22 + FLASH_HAS_RANDOM_NUM = 23 + FLASH_SELF_TARGETS = 24 + FLASH_BAD_GETURL_TARGET = 25 + FLASH_VERSION_NOT_SUPPORTED = 26 + FLASH_WITHOUT_HARD_CODED_CLICK_URL = 27 + INVALID_FLASH_FILE = 28 + FAILED_TO_FIX_CLICK_TAG_IN_FLASH = 29 + FLASH_ACCESSES_NETWORK_RESOURCES = 30 + FLASH_EXTERNAL_JS_CALL = 31 + FLASH_EXTERNAL_FS_CALL = 32 + FILE_TOO_LARGE = 33 + IMAGE_DATA_TOO_LARGE = 34 + IMAGE_PROCESSING_ERROR = 35 + IMAGE_TOO_SMALL = 36 + INVALID_INPUT = 37 + PROBLEM_READING_FILE = 38 + + +class CollectionSizeErrorEnum(object): + class CollectionSizeError(enum.IntEnum): + """ + Enum describing possible collection size errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_FEW (int): Too few. + TOO_MANY (int): Too many. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_FEW = 2 + TOO_MANY = 3 + + +class MediaErrorEnum(object): + class MediaError(enum.IntEnum): + """ + Enum describing possible media errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_ADD_STANDARD_ICON (int): Cannot add a standard icon type + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES (int): May only select Standard Icons alone + CANNOT_SPECIFY_MEDIA_ID_AND_DATA (int): Image contains both a media ID and media data. + DUPLICATE_MEDIA (int): A media with given type and reference id already exists + EMPTY_FIELD (int): A required field was not specified or is an empty string. + RESOURCE_REFERENCED_IN_MULTIPLE_OPS (int): A media may only be modified once per call + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE (int): Field is not supported for the media sub type. + INVALID_MEDIA_ID (int): The media id is invalid + INVALID_MEDIA_SUB_TYPE (int): The media subtype is invalid + INVALID_MEDIA_TYPE (int): The media type is invalid + INVALID_MIME_TYPE (int): The mimetype is invalid + INVALID_REFERENCE_ID (int): The media reference id is invalid + INVALID_YOU_TUBE_ID (int): The YouTube video id is invalid + MEDIA_FAILED_TRANSCODING (int): Media has failed transcoding + MEDIA_NOT_TRANSCODED (int): Media has not been transcoded + MEDIA_TYPE_DOES_NOT_MATCH_OBJECT_TYPE (int): The MediaType does not match the actual media object's type + NO_FIELDS_SPECIFIED (int): None of the fields have been specified. + NULL_REFERENCE_ID_AND_MEDIA_ID (int): One of reference Id or media Id must be specified + TOO_LONG (int): The string has too many characters. + UNSUPPORTED_OPERATION (int): The specified operation is not supported. Only ADD, SET, and REMOVE are + supported + UNSUPPORTED_TYPE (int): The specified type is not supported. + YOU_TUBE_SERVICE_UNAVAILABLE (int): YouTube is unavailable for requesting video data. + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION (int): The YouTube video has a non positive duration. + YOU_TUBE_VIDEO_NOT_FOUND (int): The YouTube video id is syntactically valid but the video was not found. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_ADD_STANDARD_ICON = 2 + CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES = 3 + CANNOT_SPECIFY_MEDIA_ID_AND_DATA = 4 + DUPLICATE_MEDIA = 5 + EMPTY_FIELD = 6 + RESOURCE_REFERENCED_IN_MULTIPLE_OPS = 7 + FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE = 8 + INVALID_MEDIA_ID = 9 + INVALID_MEDIA_SUB_TYPE = 10 + INVALID_MEDIA_TYPE = 11 + INVALID_MIME_TYPE = 12 + INVALID_REFERENCE_ID = 13 + INVALID_YOU_TUBE_ID = 14 + MEDIA_FAILED_TRANSCODING = 15 + MEDIA_NOT_TRANSCODED = 16 + MEDIA_TYPE_DOES_NOT_MATCH_OBJECT_TYPE = 17 + NO_FIELDS_SPECIFIED = 18 + NULL_REFERENCE_ID_AND_MEDIA_ID = 19 + TOO_LONG = 20 + UNSUPPORTED_OPERATION = 21 + UNSUPPORTED_TYPE = 22 + YOU_TUBE_SERVICE_UNAVAILABLE = 23 + YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION = 24 + YOU_TUBE_VIDEO_NOT_FOUND = 25 + + +class AdSharingErrorEnum(object): + class AdSharingError(enum.IntEnum): + """ + Enum describing possible ad sharing errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_ALREADY_CONTAINS_AD (int): Error resulting in attempting to add an Ad to an AdGroup that already + contains the Ad. + INCOMPATIBLE_AD_UNDER_AD_GROUP (int): Ad is not compatible with the AdGroup it is being shared with. + CANNOT_SHARE_INACTIVE_AD (int): Cannot add AdGroupAd on inactive Ad. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_ALREADY_CONTAINS_AD = 2 + INCOMPATIBLE_AD_UNDER_AD_GROUP = 3 + CANNOT_SHARE_INACTIVE_AD = 4 + + +class AdGroupCriterionErrorEnum(object): + class AdGroupCriterionError(enum.IntEnum): + """ + Enum describing possible ad group criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST (int): No link found between the AdGroupCriterion and the label. + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS (int): The label has already been attached to the AdGroupCriterion. + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION (int): Negative AdGroupCriterion cannot have labels. + TOO_MANY_OPERATIONS (int): Too many operations for a single call. + CANT_UPDATE_NEGATIVE (int): Negative ad group criteria are not updateable. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion (keyword v.s. placement) is required for ADD + and SET operations. + BID_INCOMPATIBLE_WITH_ADGROUP (int): Bid is incompatible with ad group's bidding settings. + CANNOT_TARGET_AND_EXCLUDE (int): Cannot target and exclude the same criterion at once. + ILLEGAL_URL (int): The URL of a placement is invalid. + INVALID_KEYWORD_TEXT (int): Keyword text was invalid. + INVALID_DESTINATION_URL (int): Destination URL was invalid. + MISSING_DESTINATION_URL_TAG (int): The destination url must contain at least one tag (e.g. {lpurl}) + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM (int): Keyword-level cpm bid is not supported + INVALID_USER_STATUS (int): For example, cannot add a biddable ad group criterion that had been + removed. + CANNOT_ADD_CRITERIA_TYPE (int): Criteria type cannot be targeted for the ad group. Either the account is + restricted to keywords only, the criteria type is incompatible with the + campaign's bidding strategy, or the criteria type can only be applied to + campaigns. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type cannot be excluded for the ad group. Refer to the + documentation for a specific criterion to check if it is excludable. + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE (int): Partial failure is not supported for shopping campaign mutate operations. + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS (int): Operations in the mutate request changes too many shopping ad groups. + Please split requests for multiple shopping ad groups across multiple + requests. + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS (int): Not allowed to modify url fields of an ad group criterion if there are + duplicate elements for that ad group criterion in the request. + CANNOT_SET_WITHOUT_FINAL_URLS (int): Cannot set url fields without also setting final urls. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST (int): Cannot clear final urls if final mobile urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST (int): Cannot clear final urls if final app urls exist. + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS (int): Cannot clear final urls if tracking url template exists. + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST (int): Cannot clear final urls if url custom parameters exist. + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS (int): Cannot set both destination url and final urls. + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE (int): Cannot set both destination url and tracking url template. + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): Final urls are not supported for this criterion type. + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE (int): Final mobile urls are not supported for this criterion type. + INVALID_LISTING_GROUP_HIERARCHY (int): Ad group is invalid due to the listing groups it contains. + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN (int): Listing group unit cannot have children. + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE (int): Subdivided listing groups must have an \"others\" case. + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS (int): Dimension type of listing group must be the same as that of its siblings. + LISTING_GROUP_ALREADY_EXISTS (int): Listing group cannot be added to the ad group because it already exists. + LISTING_GROUP_DOES_NOT_EXIST (int): Listing group referenced in the operation was not found in the ad group. + LISTING_GROUP_CANNOT_BE_REMOVED (int): Recursive removal failed because listing group subdivision is being + created or modified in this request. + INVALID_LISTING_GROUP_TYPE (int): Listing group type is not allowed for specified ad group criterion type. + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID (int): Listing group in an ADD operation specifies a non temporary criterion id. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2 + AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3 + CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4 + TOO_MANY_OPERATIONS = 5 + CANT_UPDATE_NEGATIVE = 6 + CONCRETE_TYPE_REQUIRED = 7 + BID_INCOMPATIBLE_WITH_ADGROUP = 8 + CANNOT_TARGET_AND_EXCLUDE = 9 + ILLEGAL_URL = 10 + INVALID_KEYWORD_TEXT = 11 + INVALID_DESTINATION_URL = 12 + MISSING_DESTINATION_URL_TAG = 13 + KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14 + INVALID_USER_STATUS = 15 + CANNOT_ADD_CRITERIA_TYPE = 16 + CANNOT_EXCLUDE_CRITERIA_TYPE = 17 + CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27 + OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28 + CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29 + CANNOT_SET_WITHOUT_FINAL_URLS = 30 + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31 + CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32 + CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33 + CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34 + CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35 + CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36 + FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37 + FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38 + INVALID_LISTING_GROUP_HIERARCHY = 39 + LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 40 + LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 41 + LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 42 + LISTING_GROUP_ALREADY_EXISTS = 43 + LISTING_GROUP_DOES_NOT_EXIST = 44 + LISTING_GROUP_CANNOT_BE_REMOVED = 45 + INVALID_LISTING_GROUP_TYPE = 46 + LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 47 + + +class RangeErrorEnum(object): + class RangeError(enum.IntEnum): + """ + Enum describing possible range errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + TOO_LOW (int): Too low. + TOO_HIGH (int): Too high. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + TOO_LOW = 2 + TOO_HIGH = 3 + + +class OperationAccessDeniedErrorEnum(object): + class OperationAccessDeniedError(enum.IntEnum): + """ + Enum describing possible operation access denied errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + ACTION_NOT_PERMITTED (int): Unauthorized invocation of a service's method (get, mutate, etc.) + CREATE_OPERATION_NOT_PERMITTED (int): Unauthorized CREATE operation in invoking a service's mutate method. + REMOVE_OPERATION_NOT_PERMITTED (int): Unauthorized REMOVE operation in invoking a service's mutate method. + UPDATE_OPERATION_NOT_PERMITTED (int): Unauthorized UPDATE operation in invoking a service's mutate method. + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT (int): A mutate action is not allowed on this campaign, from this client. + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE (int): This operation is not permitted on this campaign type + CREATE_AS_REMOVED_NOT_PERMITTED (int): A CREATE operation may not set status to REMOVED. + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE (int): This operation is not allowed because the campaign or adgroup is removed. + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE (int): This operation is not permitted on this ad group type. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + ACTION_NOT_PERMITTED = 2 + CREATE_OPERATION_NOT_PERMITTED = 3 + REMOVE_OPERATION_NOT_PERMITTED = 4 + UPDATE_OPERATION_NOT_PERMITTED = 5 + MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT = 6 + OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE = 7 + CREATE_AS_REMOVED_NOT_PERMITTED = 8 + OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE = 9 + OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE = 10 + + +class RegionCodeErrorEnum(object): + class RegionCodeError(enum.IntEnum): + """ + Enum describing possible region code errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_REGION_CODE (int): Invalid region code. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_REGION_CODE = 2 + + +class SettingErrorEnum(object): + class SettingError(enum.IntEnum): + """ + Enum describing possible setting errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + SETTING_TYPE_IS_NOT_AVAILABLE (int): The campaign setting is not available for this AdWords account. + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN (int): The setting is not compatible with the campaign. + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP (int): The supplied TargetingSetting contains an invalid CriterionTypeGroup. See + CriterionTypeGroup documentation for CriterionTypeGroups allowed + in Campaign or AdGroup TargetingSettings. + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL (int): TargetingSetting must not explicitly + set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, + PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in + which case the system will set them to true automatically). + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP (int): TargetingSetting cannot change any of + the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, + INCOME_RANGE) from true to false. + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT (int): At least one feed id should be present. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME (int): The supplied DynamicSearchAdsSetting contains an invalid domain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME (int): The supplied DynamicSearchAdsSetting contains a subdomain name. + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE (int): The supplied DynamicSearchAdsSetting contains an invalid language code. + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN (int): TargetingSettings in search campaigns should not have + CriterionTypeGroup.PLACEMENT set to targetAll. + UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION (int): Duplicate description in universal app setting description field. + UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG (int): Description line width is too long in universal app setting description + field. + UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED (int): Universal app setting appId field cannot be modified for COMPLETE + campaigns. + TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN (int): YoutubeVideoMediaIds in universal app setting cannot exceed size limit. + TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN (int): ImageMediaIds in universal app setting cannot exceed size limit. + MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN (int): Media is incompatible for universal app campaign. + TOO_MANY_EXCLAMATION_MARKS (int): Too many exclamation marks in universal app campaign ad text ideas. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + SETTING_TYPE_IS_NOT_AVAILABLE = 3 + SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN = 4 + TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP = 5 + TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL = 6 + TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP = 7 + DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT = 8 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME = 9 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME = 10 + DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE = 11 + TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN = 12 + UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION = 13 + UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG = 14 + UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED = 15 + TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN = 16 + TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN = 17 + MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN = 18 + TOO_MANY_EXCLAMATION_MARKS = 19 + + +class CriterionErrorEnum(object): + class CriterionError(enum.IntEnum): + """ + Enum describing possible criterion errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CONCRETE_TYPE_REQUIRED (int): Concrete type of criterion is required for CREATE and UPDATE operations. + INVALID_EXCLUDED_CATEGORY (int): The category requested for exclusion is invalid. + INVALID_KEYWORD_TEXT (int): Invalid keyword criteria text. + KEYWORD_TEXT_TOO_LONG (int): Keyword text should be less than 80 chars. + KEYWORD_HAS_TOO_MANY_WORDS (int): Keyword text has too many words. + KEYWORD_HAS_INVALID_CHARS (int): Keyword text has invalid characters or symbols. + INVALID_PLACEMENT_URL (int): Invalid placement URL. + INVALID_USER_LIST (int): Invalid user list criterion. + INVALID_USER_INTEREST (int): Invalid user interest criterion. + INVALID_FORMAT_FOR_PLACEMENT_URL (int): Placement URL has wrong format. + PLACEMENT_URL_IS_TOO_LONG (int): Placement URL is too long. + PLACEMENT_URL_HAS_ILLEGAL_CHAR (int): Indicates the URL contains an illegal character. + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE (int): Indicates the URL contains multiple comma separated URLs. + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION (int): Indicates the domain is blacklisted. + INVALID_VERTICAL_PATH (int): Invalid vertical path. + INVALID_YOUTUBE_CHANNEL_ID (int): The YouTube Channel Id is invalid. + INVALID_YOUTUBE_VIDEO_ID (int): The YouTube Video Id is invalid. + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED (int): Indicates the placement is a YouTube vertical channel, which is no longer + supported. + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED (int): Indicates the placement is a YouTube demographic channel, which is no + longer supported. + YOUTUBE_URL_UNSUPPORTED (int): YouTube urls are not supported in Placement criterion. Use YouTubeChannel + and YouTubeVideo criterion instead. + CANNOT_EXCLUDE_CRITERIA_TYPE (int): Criteria type can not be excluded by the customer, like AOL account type + cannot target site type criteria. + CANNOT_ADD_CRITERIA_TYPE (int): Criteria type can not be targeted. + INVALID_PRODUCT_FILTER (int): Product filter in the product criteria has invalid characters. Operand + and the argument in the filter can not have \"==\" or \"&+\". + PRODUCT_FILTER_TOO_LONG (int): Product filter in the product criteria is translated to a string as + operand1==argument1&+operand2==argument2, maximum allowed length for the + string is 255 chars. + CANNOT_EXCLUDE_SIMILAR_USER_LIST (int): Not allowed to exclude similar user list. + CANNOT_ADD_CLOSED_USER_LIST (int): Not allowed to target a closed user list. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS (int): Not allowed to add display only UserLists to search only campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS (int): Not allowed to add display only UserLists to search plus campaigns. + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS (int): Not allowed to add display only UserLists to shopping campaigns. + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS (int): Not allowed to add User interests to search only campaigns. + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS (int): Not allowed to set bids for this criterion type in search campaigns + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE (int): Final URLs, URL Templates and CustomParameters cannot be set for the + criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and + MobileAppCategory in search campaigns and shopping campaigns. + INVALID_IP_ADDRESS (int): IP address is not valid. + INVALID_IP_FORMAT (int): IP format is not valid. + INVALID_MOBILE_APP (int): Mobile application is not valid. + INVALID_MOBILE_APP_CATEGORY (int): Mobile application category is not valid. + INVALID_CRITERION_ID (int): The CriterionId does not exist or is of the incorrect type. + CANNOT_TARGET_CRITERION (int): The Criterion is not allowed to be targeted. + CANNOT_TARGET_OBSOLETE_CRITERION (int): The criterion is not allowed to be targeted as it is deprecated. + CRITERION_ID_AND_TYPE_MISMATCH (int): The CriterionId is not valid for the type. + INVALID_PROXIMITY_RADIUS (int): Distance for the radius for the proximity criterion is invalid. + INVALID_PROXIMITY_RADIUS_UNITS (int): Units for the distance for the radius for the proximity criterion is + invalid. + INVALID_STREETADDRESS_LENGTH (int): Street address is too short. + INVALID_CITYNAME_LENGTH (int): City name in the address is too short. + INVALID_REGIONCODE_LENGTH (int): Region code in the address is too short. + INVALID_REGIONNAME_LENGTH (int): Region name in the address is not valid. + INVALID_POSTALCODE_LENGTH (int): Postal code in the address is not valid. + INVALID_COUNTRY_CODE (int): Country code in the address is not valid. + INVALID_LATITUDE (int): Latitude for the GeoPoint is not valid. + INVALID_LONGITUDE (int): Longitude for the GeoPoint is not valid. + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL (int): The Proximity input is not valid. Both address and geoPoint cannot be + null. + INVALID_PROXIMITY_ADDRESS (int): The Proximity address cannot be geocoded to a valid lat/long. + INVALID_USER_DOMAIN_NAME (int): User domain name is not valid. + CRITERION_PARAMETER_TOO_LONG (int): Length of serialized criterion parameter exceeded size limit. + AD_SCHEDULE_TIME_INTERVALS_OVERLAP (int): Time interval in the AdSchedule overlaps with another AdSchedule. + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS (int): AdSchedule time interval cannot span multiple days. + AD_SCHEDULE_INVALID_TIME_INTERVAL (int): AdSchedule time interval specified is invalid, endTime cannot be earlier + than startTime. + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT (int): The number of AdSchedule entries in a day exceeds the limit. + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS (int): CriteriaId does not match the interval of the AdSchedule specified. + CANNOT_BID_MODIFY_CRITERION_TYPE (int): Cannot set bid modifier for this criterion type. + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT (int): Cannot bid modify criterion, since it is opted out of the campaign. + CANNOT_BID_MODIFY_NEGATIVE_CRITERION (int): Cannot set bid modifier for a negative criterion. + BID_MODIFIER_ALREADY_EXISTS (int): Bid Modifier already exists. Use SET operation to update. + FEED_ID_NOT_ALLOWED (int): Feed Id is not allowed in these Location Groups. + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE (int): The account may not use the requested criteria type. For example, some + accounts are restricted to keywords only. + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY (int): The requested criteria type cannot be used with campaign or ad group + bidding strategy. + CANNOT_EXCLUDE_CRITERION (int): The Criterion is not allowed to be excluded. + CANNOT_REMOVE_CRITERION (int): The criterion is not allowed to be removed. For example, we cannot remove + any of the platform criterion. + PRODUCT_SCOPE_TOO_LONG (int): The combined length of product dimension values of the product scope + criterion is too long. + PRODUCT_SCOPE_TOO_MANY_DIMENSIONS (int): Product scope contains too many dimensions. + PRODUCT_PARTITION_TOO_LONG (int): The combined length of product dimension values of the product partition + criterion is too long. + PRODUCT_PARTITION_TOO_MANY_DIMENSIONS (int): Product partition contains too many dimensions. + INVALID_PRODUCT_DIMENSION (int): The product dimension is invalid (e.g. dimension contains illegal value, + dimension type is represented with wrong class, etc). Product dimension + value can not contain \"==\" or \"&+\". + INVALID_PRODUCT_DIMENSION_TYPE (int): Product dimension type is either invalid for campaigns of this type or + cannot be used in the current context. BIDDING_CATEGORY_Lx and + PRODUCT_TYPE_Lx product dimensions must be used in ascending order of + their levels: L1, L2, L3, L4, L5... The levels must be specified + sequentially and start from L1. Furthermore, an \"others\" product + partition cannot be subdivided with a dimension of the same type but of a + higher level (\"others\" BIDDING_CATEGORY_L3 can be subdivided with BRAND + but not with BIDDING_CATEGORY_L4). + INVALID_PRODUCT_BIDDING_CATEGORY (int): Bidding categories do not form a valid path in the Shopping bidding + category taxonomy. + MISSING_SHOPPING_SETTING (int): ShoppingSetting must be added to the campaign before ProductScope + criteria can be added. + INVALID_MATCHING_FUNCTION (int): Matching function is invalid. + LOCATION_FILTER_NOT_ALLOWED (int): Filter parameters not allowed for location groups targeting. + LOCATION_FILTER_INVALID (int): Given location filter parameter is invalid for location groups targeting. + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP (int): Criteria type cannot be associated with a campaign and its ad group(s) + simultaneously. + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION (int): Range represented by hotel length of stay's min nights and max nights + overlaps with an existing criterion. + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION (int): Range represented by hotel advance booking window's min days and max days + overlaps with an existing criterion. + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING (int): The field is not allowed to be set when the negative field is set to + true, e.g. we don't allow bids in negative ad group or campaign criteria. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CONCRETE_TYPE_REQUIRED = 2 + INVALID_EXCLUDED_CATEGORY = 3 + INVALID_KEYWORD_TEXT = 4 + KEYWORD_TEXT_TOO_LONG = 5 + KEYWORD_HAS_TOO_MANY_WORDS = 6 + KEYWORD_HAS_INVALID_CHARS = 7 + INVALID_PLACEMENT_URL = 8 + INVALID_USER_LIST = 9 + INVALID_USER_INTEREST = 10 + INVALID_FORMAT_FOR_PLACEMENT_URL = 11 + PLACEMENT_URL_IS_TOO_LONG = 12 + PLACEMENT_URL_HAS_ILLEGAL_CHAR = 13 + PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE = 14 + PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION = 15 + INVALID_VERTICAL_PATH = 16 + INVALID_YOUTUBE_CHANNEL_ID = 17 + INVALID_YOUTUBE_VIDEO_ID = 18 + YOUTUBE_VERTICAL_CHANNEL_DEPRECATED = 19 + YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED = 20 + YOUTUBE_URL_UNSUPPORTED = 21 + CANNOT_EXCLUDE_CRITERIA_TYPE = 22 + CANNOT_ADD_CRITERIA_TYPE = 23 + INVALID_PRODUCT_FILTER = 24 + PRODUCT_FILTER_TOO_LONG = 25 + CANNOT_EXCLUDE_SIMILAR_USER_LIST = 26 + CANNOT_ADD_CLOSED_USER_LIST = 27 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS = 28 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS = 29 + CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS = 30 + CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS = 31 + CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS = 32 + CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE = 33 + INVALID_IP_ADDRESS = 34 + INVALID_IP_FORMAT = 35 + INVALID_MOBILE_APP = 36 + INVALID_MOBILE_APP_CATEGORY = 37 + INVALID_CRITERION_ID = 38 + CANNOT_TARGET_CRITERION = 39 + CANNOT_TARGET_OBSOLETE_CRITERION = 40 + CRITERION_ID_AND_TYPE_MISMATCH = 41 + INVALID_PROXIMITY_RADIUS = 42 + INVALID_PROXIMITY_RADIUS_UNITS = 43 + INVALID_STREETADDRESS_LENGTH = 44 + INVALID_CITYNAME_LENGTH = 45 + INVALID_REGIONCODE_LENGTH = 46 + INVALID_REGIONNAME_LENGTH = 47 + INVALID_POSTALCODE_LENGTH = 48 + INVALID_COUNTRY_CODE = 49 + INVALID_LATITUDE = 50 + INVALID_LONGITUDE = 51 + PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL = 52 + INVALID_PROXIMITY_ADDRESS = 53 + INVALID_USER_DOMAIN_NAME = 54 + CRITERION_PARAMETER_TOO_LONG = 55 + AD_SCHEDULE_TIME_INTERVALS_OVERLAP = 56 + AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS = 57 + AD_SCHEDULE_INVALID_TIME_INTERVAL = 58 + AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT = 59 + AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS = 60 + CANNOT_BID_MODIFY_CRITERION_TYPE = 61 + CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT = 62 + CANNOT_BID_MODIFY_NEGATIVE_CRITERION = 63 + BID_MODIFIER_ALREADY_EXISTS = 64 + FEED_ID_NOT_ALLOWED = 65 + ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE = 66 + CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY = 67 + CANNOT_EXCLUDE_CRITERION = 68 + CANNOT_REMOVE_CRITERION = 69 + PRODUCT_SCOPE_TOO_LONG = 70 + PRODUCT_SCOPE_TOO_MANY_DIMENSIONS = 71 + PRODUCT_PARTITION_TOO_LONG = 72 + PRODUCT_PARTITION_TOO_MANY_DIMENSIONS = 73 + INVALID_PRODUCT_DIMENSION = 74 + INVALID_PRODUCT_DIMENSION_TYPE = 75 + INVALID_PRODUCT_BIDDING_CATEGORY = 76 + MISSING_SHOPPING_SETTING = 77 + INVALID_MATCHING_FUNCTION = 78 + LOCATION_FILTER_NOT_ALLOWED = 79 + LOCATION_FILTER_INVALID = 80 + CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP = 81 + HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION = 82 + HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION = 83 + FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING = 84 + + +class InternalErrorEnum(object): + class InternalError(enum.IntEnum): + """ + Enum describing possible internal errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INTERNAL_ERROR (int): Google Ads API encountered unexpected internal error. + ERROR_CODE_NOT_PUBLISHED (int): The intended error code doesn't exist in any API version. This will be + fixed by adding a new error code as soon as possible. + TRANSIENT_ERROR (int): Google Ads API encountered an unexpected transient error. The user + should retry their request in these cases. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INTERNAL_ERROR = 2 + ERROR_CODE_NOT_PUBLISHED = 3 + TRANSIENT_ERROR = 4 + + +class MediaBundleErrorEnum(object): + class MediaBundleError(enum.IntEnum): + """ + Enum describing possible media bundle errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + BAD_REQUEST (int): There was a problem with the request. + DOUBLECLICK_BUNDLE_NOT_ALLOWED (int): HTML5 ads using DoubleClick Studio created ZIP files are not supported. + EXTERNAL_URL_NOT_ALLOWED (int): Cannot reference URL external to the media bundle. + FILE_TOO_LARGE (int): Media bundle file is too large. + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED (int): ZIP file from Google Web Designer is not published. + INVALID_INPUT (int): Input was invalid. + INVALID_MEDIA_BUNDLE (int): There was a problem with the media bundle. + INVALID_MEDIA_BUNDLE_ENTRY (int): There was a problem with one or more of the media bundle entries. + INVALID_MIME_TYPE (int): The media bundle contains a file with an unknown mime type + INVALID_PATH (int): The media bundle contain an invalid asset path. + INVALID_URL_REFERENCE (int): HTML5 ad is trying to reference an asset not in .ZIP file + MEDIA_DATA_TOO_LARGE (int): Media data is too large. + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY (int): The media bundle contains no primary entry. + SERVER_ERROR (int): There was an error on the server. + STORAGE_ERROR (int): The image could not be stored. + SWIFFY_BUNDLE_NOT_ALLOWED (int): Media bundle created with the Swiffy tool is not allowed. + TOO_MANY_FILES (int): The media bundle contains too many files. + UNEXPECTED_SIZE (int): The media bundle is not of legal dimensions. + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT (int): Google Web Designer not created for \"AdWords\" environment. + UNSUPPORTED_HTML5_FEATURE (int): Unsupported HTML5 feature in HTML5 asset. + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT (int): URL in HTML5 entry is not ssl compliant. + CUSTOM_EXIT_NOT_ALLOWED (int): Custom exits not allowed in HTML5 entry. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + BAD_REQUEST = 3 + DOUBLECLICK_BUNDLE_NOT_ALLOWED = 4 + EXTERNAL_URL_NOT_ALLOWED = 5 + FILE_TOO_LARGE = 6 + GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED = 7 + INVALID_INPUT = 8 + INVALID_MEDIA_BUNDLE = 9 + INVALID_MEDIA_BUNDLE_ENTRY = 10 + INVALID_MIME_TYPE = 11 + INVALID_PATH = 12 + INVALID_URL_REFERENCE = 13 + MEDIA_DATA_TOO_LARGE = 14 + MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY = 15 + SERVER_ERROR = 16 + STORAGE_ERROR = 17 + SWIFFY_BUNDLE_NOT_ALLOWED = 18 + TOO_MANY_FILES = 19 + UNEXPECTED_SIZE = 20 + UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT = 21 + UNSUPPORTED_HTML5_FEATURE = 22 + URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT = 23 + CUSTOM_EXIT_NOT_ALLOWED = 24 + + +class IdErrorEnum(object): + class IdError(enum.IntEnum): + """ + Enum describing possible id errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NOT_FOUND (int): Id not found + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NOT_FOUND = 2 + + +class FunctionParsingErrorEnum(object): + class FunctionParsingError(enum.IntEnum): + """ + Enum describing possible function parsing errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + NO_MORE_INPUT (int): Unexpected end of function string. + EXPECTED_CHARACTER (int): Could not find an expected character. + UNEXPECTED_SEPARATOR (int): Unexpected separator character. + UNMATCHED_LEFT_BRACKET (int): Unmatched left bracket or parenthesis. + UNMATCHED_RIGHT_BRACKET (int): Unmatched right bracket or parenthesis. + TOO_MANY_NESTED_FUNCTIONS (int): Functions are nested too deeply. + MISSING_RIGHT_HAND_OPERAND (int): Missing right-hand-side operand. + INVALID_OPERATOR_NAME (int): Invalid operator/function name. + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER (int): Feed attribute operand's argument is not an integer. + NO_OPERANDS (int): Missing function operands. + TOO_MANY_OPERANDS (int): Function had too many operands. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + NO_MORE_INPUT = 2 + EXPECTED_CHARACTER = 3 + UNEXPECTED_SEPARATOR = 4 + UNMATCHED_LEFT_BRACKET = 5 + UNMATCHED_RIGHT_BRACKET = 6 + TOO_MANY_NESTED_FUNCTIONS = 7 + MISSING_RIGHT_HAND_OPERAND = 8 + INVALID_OPERATOR_NAME = 9 + FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER = 10 + NO_OPERANDS = 11 + TOO_MANY_OPERANDS = 12 + + +class AdGroupErrorEnum(object): + class AdGroupError(enum.IntEnum): + """ + Enum describing possible ad group errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_ADGROUP_NAME (int): AdGroup with the same name already exists for the campaign. + INVALID_ADGROUP_NAME (int): AdGroup name is not valid. + ADVERTISER_NOT_ON_CONTENT_NETWORK (int): Advertiser is not allowed to target sites or set site bids that are not + on the Google Search Network. + BID_TOO_BIG (int): Bid amount is too big. + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH (int): AdGroup bid does not match the campaign's bidding strategy. + MISSING_ADGROUP_NAME (int): AdGroup name is required for Add. + ADGROUP_LABEL_DOES_NOT_EXIST (int): No link found between the ad group and the label. + ADGROUP_LABEL_ALREADY_EXISTS (int): The label has already been attached to the ad group. + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP (int): The CriterionTypeGroup is not supported for the content bid dimension. + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE (int): The ad group type is not compatible with the campaign channel type. + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY (int): The ad group type is not supported in the country of sale of the + campaign. + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING (int): Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to + campaigns that have DynamicSearchAdsSetting attached. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_ADGROUP_NAME = 2 + INVALID_ADGROUP_NAME = 3 + ADVERTISER_NOT_ON_CONTENT_NETWORK = 5 + BID_TOO_BIG = 6 + BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH = 7 + MISSING_ADGROUP_NAME = 8 + ADGROUP_LABEL_DOES_NOT_EXIST = 9 + ADGROUP_LABEL_ALREADY_EXISTS = 10 + INVALID_CONTENT_BID_CRITERION_TYPE_GROUP = 11 + AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE = 12 + ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY = 13 + CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING = 14 + + +class MutateErrorEnum(object): + class MutateError(enum.IntEnum): + """ + Enum describing possible mutate errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + RESOURCE_NOT_FOUND (int): Requested resource was not found. + ID_EXISTS_IN_MULTIPLE_MUTATES (int): Cannot mutate the same resource twice in one request. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + RESOURCE_NOT_FOUND = 3 + ID_EXISTS_IN_MULTIPLE_MUTATES = 7 + + +class BiddingStrategyErrorEnum(object): + class BiddingStrategyError(enum.IntEnum): + """ + Enum describing possible bidding strategy errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + DUPLICATE_NAME (int): Each bidding strategy must have a unique name. + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE (int): Bidding strategy type is immutable. + CANNOT_REMOVE_ASSOCIATED_STRATEGY (int): Only bidding strategies not linked to campaigns, adgroups or adgroup + criteria can be removed. + BIDDING_STRATEGY_NOT_SUPPORTED (int): The specified bidding strategy is not supported. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + DUPLICATE_NAME = 2 + CANNOT_CHANGE_BIDDING_STRATEGY_TYPE = 3 + CANNOT_REMOVE_ASSOCIATED_STRATEGY = 4 + BIDDING_STRATEGY_NOT_SUPPORTED = 5 + + +class CampaignErrorEnum(object): + class CampaignError(enum.IntEnum): + """ + Enum describing possible campaign errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_TARGET_CONTENT_NETWORK (int): Cannot target content network. + CANNOT_TARGET_SEARCH_NETWORK (int): Cannot target search network. + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH (int): Cannot cover search network without google search network. + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN (int): Cannot target Google Search network for a CPM campaign. + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK (int): Must target at least one network. + CANNOT_TARGET_PARTNER_SEARCH_NETWORK (int): Only some Google partners are allowed to target partner search network. + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY (int): Cannot target content network only as campaign has criteria-level bidding + strategy. + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS (int): Cannot modify the start or end date such that the campaign duration would + not contain the durations of all runnable trials. + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN (int): Cannot modify dates, budget or campaign name of a trial campaign. + DUPLICATE_CAMPAIGN_NAME (int): Trying to modify the name of an active or paused campaign, where the name + is already assigned to another active or paused campaign. + INCOMPATIBLE_CAMPAIGN_FIELD (int): Two fields are in conflicting modes. + INVALID_CAMPAIGN_NAME (int): Campaign name cannot be used. + INVALID_AD_SERVING_OPTIMIZATION_STATUS (int): Given status is invalid. + INVALID_TRACKING_URL (int): Error in the campaign level tracking url. + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING (int): Cannot set both tracking url template and tracking setting. An user has + to clear legacy tracking setting in order to add tracking url template. + MAX_IMPRESSIONS_NOT_IN_RANGE (int): The maximum number of impressions for Frequency Cap should be an integer + greater than 0. + TIME_UNIT_NOT_SUPPORTED (int): Only the Day, Week and Month time units are supported. + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED (int): Operation not allowed on a campaign whose serving status has ended + BUDGET_CANNOT_BE_SHARED (int): This budget is exclusively linked to a Campaign that is using experiments + so it cannot be shared. + CAMPAIGN_CANNOT_USE_SHARED_BUDGET (int): Campaigns using experiments cannot use a shared budget. + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS (int): A different budget cannot be assigned to a campaign when there are + running or scheduled trials. + CAMPAIGN_LABEL_DOES_NOT_EXIST (int): No link found between the campaign and the label. + CAMPAIGN_LABEL_ALREADY_EXISTS (int): The label has already been attached to the campaign. + MISSING_SHOPPING_SETTING (int): A ShoppingSetting was not found when creating a shopping campaign. + INVALID_SHOPPING_SALES_COUNTRY (int): The country in shopping setting is not an allowed country. + SHOPPING_MERCHANT_NOT_ALLOWED_FOR_PURCHASES_ON_GOOGLE (int): Shopping merchant is not enabled for Purchases on Google. + PURCHASES_ON_GOOGLE_NOT_SUPPORTED_FOR_SHOPPING_SALES_COUNTRY (int): Purchases on Google not enabled for the shopping campaign's sales + country. + MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING (int): A Campaign with channel sub type UNIVERSAL_APP_CAMPAIGN must have a + UniversalAppCampaignSetting specified. + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE (int): The requested channel type is not available according to the customer's + account setting. + INVALID_ADVERTISING_CHANNEL_SUB_TYPE (int): The AdvertisingChannelSubType is not a valid subtype of the primary + channel type. + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED (int): At least one conversion must be selected. + CANNOT_SET_AD_ROTATION_MODE (int): Setting ad rotation mode for a campaign is not allowed. Ad rotation mode + at campaign is deprecated. + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED (int): Trying to change start date on a campaign that has started. + CANNOT_SET_DATE_TO_PAST (int): Trying to modify a date into the past. + MISSING_HOTEL_CUSTOMER_LINK (int): Hotel center id in the hotel setting does not match any customer links. + INVALID_HOTEL_CUSTOMER_LINK (int): Hotel center id in the hotel setting must match an active customer link. + MISSING_HOTEL_SETTING (int): Hotel setting was not found when creating a hotel ads campaign. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_TARGET_CONTENT_NETWORK = 3 + CANNOT_TARGET_SEARCH_NETWORK = 4 + CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5 + CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6 + CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7 + CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8 + CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9 + CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10 + CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11 + DUPLICATE_CAMPAIGN_NAME = 12 + INCOMPATIBLE_CAMPAIGN_FIELD = 13 + INVALID_CAMPAIGN_NAME = 14 + INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15 + INVALID_TRACKING_URL = 16 + CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17 + MAX_IMPRESSIONS_NOT_IN_RANGE = 18 + TIME_UNIT_NOT_SUPPORTED = 19 + INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20 + BUDGET_CANNOT_BE_SHARED = 21 + CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22 + CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23 + CAMPAIGN_LABEL_DOES_NOT_EXIST = 24 + CAMPAIGN_LABEL_ALREADY_EXISTS = 25 + MISSING_SHOPPING_SETTING = 26 + INVALID_SHOPPING_SALES_COUNTRY = 27 + SHOPPING_MERCHANT_NOT_ALLOWED_FOR_PURCHASES_ON_GOOGLE = 28 + PURCHASES_ON_GOOGLE_NOT_SUPPORTED_FOR_SHOPPING_SALES_COUNTRY = 29 + MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING = 30 + ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31 + INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32 + AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33 + CANNOT_SET_AD_ROTATION_MODE = 34 + CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35 + CANNOT_SET_DATE_TO_PAST = 36 + MISSING_HOTEL_CUSTOMER_LINK = 37 + INVALID_HOTEL_CUSTOMER_LINK = 38 + MISSING_HOTEL_SETTING = 39 + + +class ContextErrorEnum(object): + class ContextError(enum.IntEnum): + """ + Enum describing possible context errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + OPERATION_NOT_PERMITTED_FOR_CONTEXT (int): The operation is not allowed for the given context. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPERATION_NOT_PERMITTED_FOR_CONTEXT = 2 + + +class FeedAttributeReferenceErrorEnum(object): + class FeedAttributeReferenceError(enum.IntEnum): + """ + Enum describing possible feed attribute reference errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + CANNOT_REFERENCE_DELETED_FEED (int): A feed referenced by ID has been deleted. + INVALID_FEED_NAME (int): There is no active feed with the given name. + INVALID_FEED_ATTRIBUTE_NAME (int): There is no feed attribute in an active feed with the given name. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + CANNOT_REFERENCE_DELETED_FEED = 2 + INVALID_FEED_NAME = 3 + INVALID_FEED_ATTRIBUTE_NAME = 4 + + +class FieldMaskErrorEnum(object): + class FieldMaskError(enum.IntEnum): + """ + Enum describing possible field mask errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + FIELD_MASK_MISSING (int): The field mask must be provided for update operations. + FIELD_MASK_NOT_ALLOWED (int): The field mask must be empty for create and remove operations. + FIELD_NOT_FOUND (int): The field mask contained an invalid field. + FIELD_HAS_SUBFIELDS (int): The field mask updated a field with subfields. Fields with subfields may + be cleared, but not updated. To fix this, the field mask should select + all the subfields of the invalid field. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + FIELD_MASK_MISSING = 5 + FIELD_MASK_NOT_ALLOWED = 4 + FIELD_NOT_FOUND = 2 + FIELD_HAS_SUBFIELDS = 3 + + +class FunctionErrorEnum(object): + class FunctionError(enum.IntEnum): + """ + Enum describing possible function errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + INVALID_FUNCTION_FORMAT (int): The format of the function is not recognized as a supported function + format. + DATA_TYPE_MISMATCH (int): Operand data types do not match. + INVALID_CONJUNCTION_OPERANDS (int): The operands cannot be used together in a conjunction. + INVALID_NUMBER_OF_OPERANDS (int): Invalid numer of Operands. + INVALID_OPERAND_TYPE (int): Operand Type not supported. + INVALID_OPERATOR (int): Operator not supported. + INVALID_REQUEST_CONTEXT_TYPE (int): Request context type not supported. + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER (int): The matching function is not allowed for call placeholders + INVALID_FUNCTION_FOR_PLACEHOLDER (int): The matching function is not allowed for the specified placeholder + INVALID_OPERAND (int): Invalid operand. + MISSING_CONSTANT_OPERAND_VALUE (int): Missing value for the constant operand. + INVALID_CONSTANT_OPERAND_VALUE (int): The value of the constant operand is invalid. + INVALID_NESTING (int): Invalid function nesting. + MULTIPLE_FEED_IDS_NOT_SUPPORTED (int): The Feed ID was different from another Feed ID in the same function. + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA (int): The matching function is invalid for use with a feed with a fixed schema. + INVALID_ATTRIBUTE_NAME (int): Invalid attribute name. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + INVALID_FUNCTION_FORMAT = 2 + DATA_TYPE_MISMATCH = 3 + INVALID_CONJUNCTION_OPERANDS = 4 + INVALID_NUMBER_OF_OPERANDS = 5 + INVALID_OPERAND_TYPE = 6 + INVALID_OPERATOR = 7 + INVALID_REQUEST_CONTEXT_TYPE = 8 + INVALID_FUNCTION_FOR_CALL_PLACEHOLDER = 9 + INVALID_FUNCTION_FOR_PLACEHOLDER = 10 + INVALID_OPERAND = 11 + MISSING_CONSTANT_OPERAND_VALUE = 12 + INVALID_CONSTANT_OPERAND_VALUE = 13 + INVALID_NESTING = 14 + MULTIPLE_FEED_IDS_NOT_SUPPORTED = 15 + INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA = 16 + INVALID_ATTRIBUTE_NAME = 17 + + +class ListOperationErrorEnum(object): + class ListOperationError(enum.IntEnum): + """ + Enum describing possible list operation errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + REQUIRED_FIELD_MISSING (int): Field required in value is missing. + DUPLICATE_VALUES (int): Duplicate or identical value is sent in multiple list operations. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + REQUIRED_FIELD_MISSING = 7 + DUPLICATE_VALUES = 8 + + +class OperatorErrorEnum(object): + class OperatorError(enum.IntEnum): + """ + Enum describing possible operator errors. + + Attributes: + UNSPECIFIED (int): Enum unspecified. + UNKNOWN (int): The received error code is not known in this version. + OPERATOR_NOT_SUPPORTED (int): Operator not supported. + """ + UNSPECIFIED = 0 + UNKNOWN = 1 + OPERATOR_NOT_SUPPORTED = 2 diff --git a/google/ads/google_ads/v0/services/geo_target_constant_service_client.py b/google/ads/google_ads/v0/services/geo_target_constant_service_client.py new file mode 100644 index 000000000..a4e4acdf2 --- /dev/null +++ b/google/ads/google_ads/v0/services/geo_target_constant_service_client.py @@ -0,0 +1,216 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services GeoTargetConstantService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import geo_target_constant_service_client_config +from google.ads.google_ads.v0.services.transports import geo_target_constant_service_grpc_transport +from google.ads.google_ads.v0.proto.services import geo_target_constant_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class GeoTargetConstantServiceClient(object): + """Service to fetch geo target constants.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.GeoTargetConstantService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GeoTargetConstantServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def geo_target_constant_path(cls, geo_target_constant): + """Return a fully-qualified geo_target_constant string.""" + return google.api_core.path_template.expand( + 'geoTargetConstants/{geo_target_constant}', + geo_target_constant=geo_target_constant, + ) + + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=geo_target_constant_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.GeoTargetConstantServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GeoTargetConstantServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=geo_target_constant_service_grpc_transport. + GeoTargetConstantServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = geo_target_constant_service_grpc_transport.GeoTargetConstantServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_geo_target_constant( + self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested geo target constant in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.GeoTargetConstantServiceClient() + >>> + >>> resource_name = client.geo_target_constant_path('[GEO_TARGET_CONSTANT]') + >>> + >>> response = client.get_geo_target_constant(resource_name) + + Args: + resource_name (str): The resource name of the geo target constant to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.GeoTargetConstant` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_geo_target_constant' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_geo_target_constant'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_geo_target_constant, + default_retry=self._method_configs['GetGeoTargetConstant'] + .retry, + default_timeout=self._method_configs[ + 'GetGeoTargetConstant'].timeout, + client_info=self._client_info, + ) + + request = geo_target_constant_service_pb2.GetGeoTargetConstantRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_geo_target_constant']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/geo_target_constant_service_client_config.py b/google/ads/google_ads/v0/services/geo_target_constant_service_client_config.py new file mode 100644 index 000000000..4b6aa5fef --- /dev/null +++ b/google/ads/google_ads/v0/services/geo_target_constant_service_client_config.py @@ -0,0 +1,28 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.GeoTargetConstantService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetGeoTargetConstant": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/google_ads_field_service_client.py b/google/ads/google_ads/v0/services/google_ads_field_service_client.py new file mode 100644 index 000000000..8ee54fccf --- /dev/null +++ b/google/ads/google_ads/v0/services/google_ads_field_service_client.py @@ -0,0 +1,307 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services GoogleAdsFieldService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.page_iterator +import google.api_core.path_template + +from google.ads.google_ads.v0.services import google_ads_field_service_client_config +from google.ads.google_ads.v0.services.transports import google_ads_field_service_grpc_transport +from google.ads.google_ads.v0.proto.services import google_ads_field_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class GoogleAdsFieldServiceClient(object): + """Service to fetch Google Ads API fields.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.GoogleAdsFieldService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GoogleAdsFieldServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def google_ads_field_path(cls, google_ads_field): + """Return a fully-qualified google_ads_field string.""" + return google.api_core.path_template.expand( + 'googleAdsFields/{google_ads_field}', + google_ads_field=google_ads_field, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=google_ads_field_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.GoogleAdsFieldServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GoogleAdsFieldServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=google_ads_field_service_grpc_transport. + GoogleAdsFieldServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = google_ads_field_service_grpc_transport.GoogleAdsFieldServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_google_ads_field(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns just the requested field. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.GoogleAdsFieldServiceClient() + >>> + >>> resource_name = client.google_ads_field_path('[GOOGLE_ADS_FIELD]') + >>> + >>> response = client.get_google_ads_field(resource_name) + + Args: + resource_name (str): The resource name of the field to get. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.GoogleAdsField` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_google_ads_field' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_google_ads_field'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_google_ads_field, + default_retry=self._method_configs[ + 'GetGoogleAdsField'].retry, + default_timeout=self._method_configs['GetGoogleAdsField'] + .timeout, + client_info=self._client_info, + ) + + request = google_ads_field_service_pb2.GetGoogleAdsFieldRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_google_ads_field']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def search_google_ads_fields( + self, + query, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all fields that match the search query. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.GoogleAdsFieldServiceClient() + >>> + >>> # TODO: Initialize ``query``: + >>> query = '' + >>> + >>> # Iterate over all results + >>> for element in client.search_google_ads_fields(query): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search_google_ads_fields(query, options=CallOptions(page_token=INITIAL_PAGE)): + ... for element in page: + ... # process element + ... pass + + Args: + query (str): The query string. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.gax.PageIterator` instance. By default, this + is an iterable of :class:`~google.cloud.ads.googleads_v0.types.GoogleAdsField` instances. + This object can also be configured to iterate over the pages + of the response through the `options` parameter. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'search_google_ads_fields' not in self._inner_api_calls: + self._inner_api_calls[ + 'search_google_ads_fields'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search_google_ads_fields, + default_retry=self._method_configs['SearchGoogleAdsFields'] + .retry, + default_timeout=self._method_configs[ + 'SearchGoogleAdsFields'].timeout, + client_info=self._client_info, + ) + + request = google_ads_field_service_pb2.SearchGoogleAdsFieldsRequest( + query=query, + page_size=page_size, + ) + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls['search_google_ads_fields'], + retry=retry, + timeout=timeout, + metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v0/services/google_ads_field_service_client_config.py b/google/ads/google_ads/v0/services/google_ads_field_service_client_config.py new file mode 100644 index 000000000..da89d34bc --- /dev/null +++ b/google/ads/google_ads/v0/services/google_ads_field_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.GoogleAdsFieldService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetGoogleAdsField": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "SearchGoogleAdsFields": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/google_ads_service_client.py b/google/ads/google_ads/v0/services/google_ads_service_client.py new file mode 100644 index 000000000..ae3fa3832 --- /dev/null +++ b/google/ads/google_ads/v0/services/google_ads_service_client.py @@ -0,0 +1,246 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services GoogleAdsService API.""" + +import functools +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.page_iterator + +from google.ads.google_ads.v0.services import google_ads_service_client_config +from google.ads.google_ads.v0.services.transports import google_ads_service_grpc_transport +from google.ads.google_ads.v0.proto.services import google_ads_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class GoogleAdsServiceClient(object): + """Service to fetch data and metrics across resources.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.GoogleAdsService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + GoogleAdsServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=google_ads_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.GoogleAdsServiceGrpcTransport, + Callable[[~.Credentials, type], ~.GoogleAdsServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=google_ads_service_grpc_transport. + GoogleAdsServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = google_ads_service_grpc_transport.GoogleAdsServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def search(self, + customer_id, + query, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns all rows that match the search query. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.GoogleAdsServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``query``: + >>> query = '' + >>> + >>> # Iterate over all results + >>> for element in client.search(customer_id, query): + ... # process element + ... pass + >>> + >>> + >>> # Alternatively: + >>> + >>> # Iterate over results one page at a time + >>> for page in client.search(customer_id, query, options=CallOptions(page_token=INITIAL_PAGE)): + ... for element in page: + ... # process element + ... pass + + Args: + customer_id (str): The ID of the customer being queried. + query (str): The query string. + page_size (int): The maximum number of resources contained in the + underlying API response. If page streaming is performed per- + resource, this parameter does not affect the return value. If page + streaming is performed per-page, this determines the maximum number + of resources in a page. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.gax.PageIterator` instance. By default, this + is an iterable of :class:`~google.cloud.ads.googleads_v0.types.GoogleAdsRow` instances. + This object can also be configured to iterate over the pages + of the response through the `options` parameter. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'search' not in self._inner_api_calls: + self._inner_api_calls[ + 'search'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.search, + default_retry=self._method_configs['Search'].retry, + default_timeout=self._method_configs['Search'].timeout, + client_info=self._client_info, + ) + + request = google_ads_service_pb2.SearchGoogleAdsRequest( + customer_id=customer_id, + query=query, + page_size=page_size, + ) + iterator = google.api_core.page_iterator.GRPCIterator( + client=None, + method=functools.partial( + self._inner_api_calls['search'], + retry=retry, + timeout=timeout, + metadata=metadata), + request=request, + items_field='results', + request_token_field='page_token', + response_token_field='next_page_token', + ) + return iterator diff --git a/google/ads/google_ads/v0/services/google_ads_service_client_config.py b/google/ads/google_ads/v0/services/google_ads_service_client_config.py new file mode 100644 index 000000000..cb5b4883d --- /dev/null +++ b/google/ads/google_ads/v0/services/google_ads_service_client_config.py @@ -0,0 +1,28 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.GoogleAdsService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "Search": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/keyword_view_service_client.py b/google/ads/google_ads/v0/services/keyword_view_service_client.py new file mode 100644 index 000000000..335cd4e86 --- /dev/null +++ b/google/ads/google_ads/v0/services/keyword_view_service_client.py @@ -0,0 +1,214 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services KeywordViewService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import keyword_view_service_client_config +from google.ads.google_ads.v0.services.transports import keyword_view_service_grpc_transport +from google.ads.google_ads.v0.proto.services import keyword_view_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class KeywordViewServiceClient(object): + """Service to manage keyword views.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.KeywordViewService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + KeywordViewServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def keyword_view_path(cls, customer, keyword_view): + """Return a fully-qualified keyword_view string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/keywordViews/{keyword_view}', + customer=customer, + keyword_view=keyword_view, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=keyword_view_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.KeywordViewServiceGrpcTransport, + Callable[[~.Credentials, type], ~.KeywordViewServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=keyword_view_service_grpc_transport. + KeywordViewServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = keyword_view_service_grpc_transport.KeywordViewServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_keyword_view(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested keyword view in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.KeywordViewServiceClient() + >>> + >>> resource_name = client.keyword_view_path('[CUSTOMER]', '[KEYWORD_VIEW]') + >>> + >>> response = client.get_keyword_view(resource_name) + + Args: + resource_name (str): The resource name of the keyword view to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.KeywordView` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_keyword_view' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_keyword_view'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_keyword_view, + default_retry=self._method_configs['GetKeywordView'].retry, + default_timeout=self._method_configs['GetKeywordView'] + .timeout, + client_info=self._client_info, + ) + + request = keyword_view_service_pb2.GetKeywordViewRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_keyword_view']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/keyword_view_service_client_config.py b/google/ads/google_ads/v0/services/keyword_view_service_client_config.py new file mode 100644 index 000000000..1cdd01a21 --- /dev/null +++ b/google/ads/google_ads/v0/services/keyword_view_service_client_config.py @@ -0,0 +1,28 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.KeywordViewService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetKeywordView": { + "timeout_millis": 60000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/recommendation_service_client.py b/google/ads/google_ads/v0/services/recommendation_service_client.py new file mode 100644 index 000000000..be31d0c58 --- /dev/null +++ b/google/ads/google_ads/v0/services/recommendation_service_client.py @@ -0,0 +1,280 @@ +# Copyright 2018 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 +# +# https://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. +"""Accesses the google.ads.googleads.v0.services RecommendationService API.""" + +import pkg_resources +import warnings + +from google.oauth2 import service_account +import google.api_core.gapic_v1.client_info +import google.api_core.gapic_v1.config +import google.api_core.gapic_v1.method +import google.api_core.grpc_helpers +import google.api_core.path_template + +from google.ads.google_ads.v0.services import recommendation_service_client_config +from google.ads.google_ads.v0.services.transports import recommendation_service_grpc_transport +from google.ads.google_ads.v0.proto.services import recommendation_service_pb2 + +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( + 'google-ads', ).version + + +class RecommendationServiceClient(object): + """Service to manage recommendations.""" + + SERVICE_ADDRESS = 'googleads.googleapis.com:443' + """The default address of the service.""" + + # The name of the interface for this client. This is the key used to + # find the method configuration in the client_config dictionary. + _INTERFACE_NAME = 'google.ads.googleads.v0.services.RecommendationService' + + @classmethod + def from_service_account_file(cls, filename, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + RecommendationServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs['credentials'] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @classmethod + def recommendation_path(cls, customer, recommendation): + """Return a fully-qualified recommendation string.""" + return google.api_core.path_template.expand( + 'customers/{customer}/recommendations/{recommendation}', + customer=customer, + recommendation=recommendation, + ) + + def __init__(self, + transport=None, + channel=None, + credentials=None, + client_config=recommendation_service_client_config.config, + client_info=None): + """Constructor. + + Args: + transport (Union[~.RecommendationServiceGrpcTransport, + Callable[[~.Credentials, type], ~.RecommendationServiceGrpcTransport]): A transport + instance, responsible for actually making the API calls. + The default transport uses the gRPC protocol. + This argument may also be a callable which returns a + transport instance. Callables will be sent the credentials + as the first argument and the default transport class as + the second argument. + channel (grpc.Channel): DEPRECATED. A ``Channel`` instance + through which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is mutually exclusive with providing a + transport instance to ``transport``; doing so will raise + an exception. + client_config (dict): DEPRECATED. A dictionary of call options for + each method. If not specified, the default configuration is used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + """ + # Raise deprecation warnings for things we want to go away. + if client_config: + warnings.warn('The `client_config` argument is deprecated.', + PendingDeprecationWarning) + if channel: + warnings.warn( + 'The `channel` argument is deprecated; use ' + '`transport` instead.', PendingDeprecationWarning) + + # Instantiate the transport. + # The transport is responsible for handling serialization and + # deserialization and actually sending data to the service. + if transport: + if callable(transport): + self.transport = transport( + credentials=credentials, + default_class=recommendation_service_grpc_transport. + RecommendationServiceGrpcTransport, + ) + else: + if credentials: + raise ValueError( + 'Received both a transport instance and ' + 'credentials; these are mutually exclusive.') + self.transport = transport + else: + self.transport = recommendation_service_grpc_transport.RecommendationServiceGrpcTransport( + address=self.SERVICE_ADDRESS, + channel=channel, + credentials=credentials, + ) + + if client_info is None: + client_info = ( + google.api_core.gapic_v1.client_info.DEFAULT_CLIENT_INFO) + client_info.gapic_version = _GAPIC_LIBRARY_VERSION + self._client_info = client_info + + # Parse out the default settings for retry and timeout for each RPC + # from the client configuration. + # (Ordinarily, these are the defaults specified in the `*_config.py` + # file next to this one.) + self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( + client_config['interfaces'][self._INTERFACE_NAME], ) + + # Save a dictionary of cached API call functions. + # These are the actual callables which invoke the proper + # transport methods, wrapped with `wrap_method` to add retry, + # timeout, and the like. + self._inner_api_calls = {} + + # Service calls + def get_recommendation(self, + resource_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Returns the requested recommendation in full detail. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.RecommendationServiceClient() + >>> + >>> resource_name = client.recommendation_path('[CUSTOMER]', '[RECOMMENDATION]') + >>> + >>> response = client.get_recommendation(resource_name) + + Args: + resource_name (str): The resource name of the recommendation to fetch. + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.Recommendation` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'get_recommendation' not in self._inner_api_calls: + self._inner_api_calls[ + 'get_recommendation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_recommendation, + default_retry=self._method_configs[ + 'GetRecommendation'].retry, + default_timeout=self._method_configs['GetRecommendation'] + .timeout, + client_info=self._client_info, + ) + + request = recommendation_service_pb2.GetRecommendationRequest( + resource_name=resource_name, ) + return self._inner_api_calls['get_recommendation']( + request, retry=retry, timeout=timeout, metadata=metadata) + + def apply_recommendation(self, + customer_id, + operations, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None): + """ + Applies given recommendations with corresponding apply parameters. + + Example: + >>> from google.cloud.ads import googleads_v0 + >>> + >>> client = googleads_v0.RecommendationServiceClient() + >>> + >>> # TODO: Initialize ``customer_id``: + >>> customer_id = '' + >>> + >>> # TODO: Initialize ``operations``: + >>> operations = [] + >>> + >>> response = client.apply_recommendation(customer_id, operations) + + Args: + customer_id (str): The ID of the customer with the recommendation. + operations (list[Union[dict, ~google.cloud.ads.googleads_v0.types.ApplyRecommendationOperation]]): The list of operations to apply recommendations. + If a dict is provided, it must be of the same form as the protobuf + message :class:`~google.cloud.ads.googleads_v0.types.ApplyRecommendationOperation` + retry (Optional[google.api_core.retry.Retry]): A retry object used + to retry requests. If ``None`` is specified, requests will not + be retried. + timeout (Optional[float]): The amount of time, in seconds, to wait + for the request to complete. Note that if ``retry`` is + specified, the timeout applies to each individual attempt. + metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata + that is provided to the method. + + Returns: + A :class:`~google.cloud.ads.googleads_v0.types.ApplyRecommendationResponse` instance. + + Raises: + google.api_core.exceptions.GoogleAPICallError: If the request + failed for any reason. + google.api_core.exceptions.RetryError: If the request failed due + to a retryable error and retry attempts failed. + ValueError: If the parameters are invalid. + """ + # Wrap the transport method to add retry and timeout logic. + if 'apply_recommendation' not in self._inner_api_calls: + self._inner_api_calls[ + 'apply_recommendation'] = google.api_core.gapic_v1.method.wrap_method( + self.transport.apply_recommendation, + default_retry=self._method_configs[ + 'ApplyRecommendation'].retry, + default_timeout=self._method_configs['ApplyRecommendation'] + .timeout, + client_info=self._client_info, + ) + + request = recommendation_service_pb2.ApplyRecommendationRequest( + customer_id=customer_id, + operations=operations, + ) + return self._inner_api_calls['apply_recommendation']( + request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/google/ads/google_ads/v0/services/recommendation_service_client_config.py b/google/ads/google_ads/v0/services/recommendation_service_client_config.py new file mode 100644 index 000000000..943fced1c --- /dev/null +++ b/google/ads/google_ads/v0/services/recommendation_service_client_config.py @@ -0,0 +1,33 @@ +config = { + "interfaces": { + "google.ads.googleads.v0.services.RecommendationService": { + "retry_codes": { + "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], + "non_idempotent": [] + }, + "retry_params": { + "default": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 20000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 20000, + "total_timeout_millis": 600000 + } + }, + "methods": { + "GetRecommendation": { + "timeout_millis": 600000, + "retry_codes_name": "idempotent", + "retry_params_name": "default" + }, + "ApplyRecommendation": { + "timeout_millis": 600000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + } + } + } + } +} diff --git a/google/ads/google_ads/v0/services/transports/__init__.py b/google/ads/google_ads/v0/services/transports/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/google/ads/google_ads/v0/services/transports/ad_group_ad_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/ad_group_ad_service_grpc_transport.py new file mode 100644 index 000000000..f4aba982b --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/ad_group_ad_service_grpc_transport.py @@ -0,0 +1,117 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import ad_group_ad_service_pb2_grpc + + +class AdGroupAdServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services AdGroupAdService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_ad_service_stub': + ad_group_ad_service_pb2_grpc.AdGroupAdServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_ad_group_ad(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested ad in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_service_stub'].GetAdGroupAd + + @property + def mutate_ad_group_ads(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes ads. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_ad_service_stub'].MutateAdGroupAds diff --git a/google/ads/google_ads/v0/services/transports/ad_group_bid_modifier_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/ad_group_bid_modifier_service_grpc_transport.py new file mode 100644 index 000000000..db78854fb --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/ad_group_bid_modifier_service_grpc_transport.py @@ -0,0 +1,121 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import ad_group_bid_modifier_service_pb2_grpc + + +class AdGroupBidModifierServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services AdGroupBidModifierService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_bid_modifier_service_stub': + ad_group_bid_modifier_service_pb2_grpc. + AdGroupBidModifierServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_ad_group_bid_modifier(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested ad group bid modifier in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'ad_group_bid_modifier_service_stub'].GetAdGroupBidModifier + + @property + def mutate_ad_group_bid_modifiers(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes ad group bid modifiers. + Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'ad_group_bid_modifier_service_stub'].MutateAdGroupBidModifiers diff --git a/google/ads/google_ads/v0/services/transports/ad_group_criterion_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/ad_group_criterion_service_grpc_transport.py new file mode 100644 index 000000000..c45300db3 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/ad_group_criterion_service_grpc_transport.py @@ -0,0 +1,120 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import ad_group_criterion_service_pb2_grpc + + +class AdGroupCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services AdGroupCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_criterion_service_stub': + ad_group_criterion_service_pb2_grpc.AdGroupCriterionServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_ad_group_criterion(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'ad_group_criterion_service_stub'].GetAdGroupCriterion + + @property + def mutate_ad_group_criteria(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'ad_group_criterion_service_stub'].MutateAdGroupCriteria diff --git a/google/ads/google_ads/v0/services/transports/ad_group_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/ad_group_service_grpc_transport.py new file mode 100644 index 000000000..0ad7ec6dd --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/ad_group_service_grpc_transport.py @@ -0,0 +1,117 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import ad_group_service_pb2_grpc + + +class AdGroupServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services AdGroupService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'ad_group_service_stub': + ad_group_service_pb2_grpc.AdGroupServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_ad_group(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested ad group in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_service_stub'].GetAdGroup + + @property + def mutate_ad_groups(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes ad groups. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['ad_group_service_stub'].MutateAdGroups diff --git a/google/ads/google_ads/v0/services/transports/bidding_strategy_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/bidding_strategy_service_grpc_transport.py new file mode 100644 index 000000000..834353548 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/bidding_strategy_service_grpc_transport.py @@ -0,0 +1,120 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import bidding_strategy_service_pb2_grpc + + +class BiddingStrategyServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services BiddingStrategyService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'bidding_strategy_service_stub': + bidding_strategy_service_pb2_grpc.BiddingStrategyServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_bidding_strategy(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested bidding strategy in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['bidding_strategy_service_stub'].GetBiddingStrategy + + @property + def mutate_bidding_strategies(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes bidding strategies. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'bidding_strategy_service_stub'].MutateBiddingStrategies diff --git a/google/ads/google_ads/v0/services/transports/campaign_budget_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/campaign_budget_service_grpc_transport.py new file mode 100644 index 000000000..cc6f39321 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/campaign_budget_service_grpc_transport.py @@ -0,0 +1,120 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import campaign_budget_service_pb2_grpc + + +class CampaignBudgetServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services CampaignBudgetService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_budget_service_stub': + campaign_budget_service_pb2_grpc.CampaignBudgetServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_campaign_budget(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested Campaign Budget in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_budget_service_stub'].GetCampaignBudget + + @property + def mutate_campaign_budgets(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes campaign budgets. Operation statuses are + returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'campaign_budget_service_stub'].MutateCampaignBudgets diff --git a/google/ads/google_ads/v0/services/transports/campaign_criterion_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/campaign_criterion_service_grpc_transport.py new file mode 100644 index 000000000..ae0f52f88 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/campaign_criterion_service_grpc_transport.py @@ -0,0 +1,120 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import campaign_criterion_service_pb2_grpc + + +class CampaignCriterionServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services CampaignCriterionService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_criterion_service_stub': + campaign_criterion_service_pb2_grpc.CampaignCriterionServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_campaign_criterion(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested criterion in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'campaign_criterion_service_stub'].GetCampaignCriterion + + @property + def mutate_campaign_criteria(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes criteria. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'campaign_criterion_service_stub'].MutateCampaignCriteria diff --git a/google/ads/google_ads/v0/services/transports/campaign_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/campaign_service_grpc_transport.py new file mode 100644 index 000000000..45d8fdbcd --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/campaign_service_grpc_transport.py @@ -0,0 +1,117 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import campaign_service_pb2_grpc + + +class CampaignServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services CampaignService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'campaign_service_stub': + campaign_service_pb2_grpc.CampaignServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_campaign(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested campaign in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_service_stub'].GetCampaign + + @property + def mutate_campaigns(self): + """Return the gRPC stub for {$apiMethod.name}. + + Creates, updates, or removes campaigns. Operation statuses are returned. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['campaign_service_stub'].MutateCampaigns diff --git a/google/ads/google_ads/v0/services/transports/customer_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/customer_service_grpc_transport.py new file mode 100644 index 000000000..498ecadfb --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/customer_service_grpc_transport.py @@ -0,0 +1,104 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import customer_service_pb2_grpc + + +class CustomerServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services CustomerService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'customer_service_stub': + customer_service_pb2_grpc.CustomerServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_customer(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested customer in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['customer_service_stub'].GetCustomer diff --git a/google/ads/google_ads/v0/services/transports/geo_target_constant_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/geo_target_constant_service_grpc_transport.py new file mode 100644 index 000000000..44591af44 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/geo_target_constant_service_grpc_transport.py @@ -0,0 +1,106 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import geo_target_constant_service_pb2_grpc + + +class GeoTargetConstantServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services GeoTargetConstantService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'geo_target_constant_service_stub': + geo_target_constant_service_pb2_grpc.GeoTargetConstantServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_geo_target_constant(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested geo target constant in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'geo_target_constant_service_stub'].GetGeoTargetConstant diff --git a/google/ads/google_ads/v0/services/transports/google_ads_field_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/google_ads_field_service_grpc_transport.py new file mode 100644 index 000000000..3a383bedb --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/google_ads_field_service_grpc_transport.py @@ -0,0 +1,119 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import google_ads_field_service_pb2_grpc + + +class GoogleAdsFieldServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services GoogleAdsFieldService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'google_ads_field_service_stub': + google_ads_field_service_pb2_grpc.GoogleAdsFieldServiceStub( + channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_google_ads_field(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns just the requested field. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_field_service_stub'].GetGoogleAdsField + + @property + def search_google_ads_fields(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns all fields that match the search query. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs[ + 'google_ads_field_service_stub'].SearchGoogleAdsFields diff --git a/google/ads/google_ads/v0/services/transports/google_ads_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/google_ads_service_grpc_transport.py new file mode 100644 index 000000000..fc71fe6af --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/google_ads_service_grpc_transport.py @@ -0,0 +1,104 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import google_ads_service_pb2_grpc + + +class GoogleAdsServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services GoogleAdsService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'google_ads_service_stub': + google_ads_service_pb2_grpc.GoogleAdsServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def search(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns all rows that match the search query. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['google_ads_service_stub'].Search diff --git a/google/ads/google_ads/v0/services/transports/keyword_view_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/keyword_view_service_grpc_transport.py new file mode 100644 index 000000000..fcbbee845 --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/keyword_view_service_grpc_transport.py @@ -0,0 +1,104 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import keyword_view_service_pb2_grpc + + +class KeywordViewServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services KeywordViewService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'keyword_view_service_stub': + keyword_view_service_pb2_grpc.KeywordViewServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_keyword_view(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested keyword view in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['keyword_view_service_stub'].GetKeywordView diff --git a/google/ads/google_ads/v0/services/transports/recommendation_service_grpc_transport.py b/google/ads/google_ads/v0/services/transports/recommendation_service_grpc_transport.py new file mode 100644 index 000000000..76e3957db --- /dev/null +++ b/google/ads/google_ads/v0/services/transports/recommendation_service_grpc_transport.py @@ -0,0 +1,117 @@ +# Copyright 2018 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 +# +# https://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. + +import google.api_core.grpc_helpers + +from google.ads.google_ads.v0.proto.services import recommendation_service_pb2_grpc + + +class RecommendationServiceGrpcTransport(object): + """gRPC transport class providing stubs for + google.ads.googleads.v0.services RecommendationService API. + + The transport provides access to the raw gRPC stubs, + which can be used to take advantage of advanced + features of gRPC. + """ + # The scopes needed to make gRPC calls to all of the methods defined + # in this service. + _OAUTH_SCOPES = () + + def __init__(self, + channel=None, + credentials=None, + address='googleads.googleapis.com:443'): + """Instantiate the transport class. + + Args: + channel (grpc.Channel): A ``Channel`` instance through + which to make calls. This argument is mutually exclusive + with ``credentials``; providing both will raise an exception. + credentials (google.auth.credentials.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If none + are specified, the client will attempt to ascertain the + credentials from the environment. + address (str): The address where the service is hosted. + """ + # If both `channel` and `credentials` are specified, raise an + # exception (channels come with credentials baked in already). + if channel is not None and credentials is not None: + raise ValueError( + 'The `channel` and `credentials` arguments are mutually ' + 'exclusive.', ) + + # Create the channel. + if channel is None: + channel = self.create_channel( + address=address, + credentials=credentials, + ) + + # gRPC uses objects called "stubs" that are bound to the + # channel and provide a basic method for each RPC. + self._stubs = { + 'recommendation_service_stub': + recommendation_service_pb2_grpc.RecommendationServiceStub(channel), + } + + @classmethod + def create_channel(cls, + address='googleads.googleapis.com:443', + credentials=None): + """Create and return a gRPC channel object. + + Args: + address (str): The host for the channel to use. + credentials (~.Credentials): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + + Returns: + grpc.Channel: A gRPC channel object. + """ + return google.api_core.grpc_helpers.create_channel( + address, + credentials=credentials, + scopes=cls._OAUTH_SCOPES, + ) + + @property + def get_recommendation(self): + """Return the gRPC stub for {$apiMethod.name}. + + Returns the requested recommendation in full detail. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['recommendation_service_stub'].GetRecommendation + + @property + def apply_recommendation(self): + """Return the gRPC stub for {$apiMethod.name}. + + Applies given recommendations with corresponding apply parameters. + + Returns: + Callable: A callable which accepts the appropriate + deserialized request object and returns a + deserialized response object. + """ + return self._stubs['recommendation_service_stub'].ApplyRecommendation diff --git a/google/ads/google_ads/v0/types.py b/google/ads/google_ads/v0/types.py new file mode 100644 index 000000000..3cd0c1aae --- /dev/null +++ b/google/ads/google_ads/v0/types.py @@ -0,0 +1,281 @@ +# Copyright 2018 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 +# +# https://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. + +from __future__ import absolute_import +import sys + +from google.api_core.protobuf_helpers import get_messages + +from google.api import http_pb2 +from google.ads.google_ads.v0.proto.errors import ad_customizer_error_pb2 +from google.ads.google_ads.v0.proto.errors import ad_error_pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_ad_error_pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_ad_pb2 +from google.ads.google_ads.v0.proto.services import ad_group_ad_service_pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_ad_status_pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_bid_modifier_error_pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_bid_modifier_pb2 +from google.ads.google_ads.v0.proto.services import ad_group_bid_modifier_service_pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_criterion_error_pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_criterion_pb2 +from google.ads.google_ads.v0.proto.services import ad_group_criterion_service_pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_criterion_status_pb2 +from google.ads.google_ads.v0.proto.errors import ad_group_error_pb2 +from google.ads.google_ads.v0.proto.resources import ad_group_pb2 +from google.ads.google_ads.v0.proto.services import ad_group_service_pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_status_pb2 +from google.ads.google_ads.v0.proto.enums import ad_group_type_pb2 +from google.ads.google_ads.v0.proto.enums import ad_network_type_pb2 +from google.ads.google_ads.v0.proto.resources import ad_pb2 +from google.ads.google_ads.v0.proto.enums import ad_serving_optimization_status_pb2 +from google.ads.google_ads.v0.proto.errors import ad_sharing_error_pb2 +from google.ads.google_ads.v0.proto.common import ad_type_infos_pb2 +from google.ads.google_ads.v0.proto.enums import ad_type_pb2 +from google.ads.google_ads.v0.proto.enums import advertising_channel_sub_type_pb2 +from google.ads.google_ads.v0.proto.enums import advertising_channel_type_pb2 +from google.ads.google_ads.v0.proto.errors import adx_error_pb2 +from google.ads.google_ads.v0.proto.errors import authentication_error_pb2 +from google.ads.google_ads.v0.proto.errors import authorization_error_pb2 +from google.ads.google_ads.v0.proto.errors import bidding_error_pb2 +from google.ads.google_ads.v0.proto.common import bidding_pb2 +from google.ads.google_ads.v0.proto.enums import bidding_source_pb2 +from google.ads.google_ads.v0.proto.errors import bidding_strategy_error_pb2 +from google.ads.google_ads.v0.proto.resources import bidding_strategy_pb2 +from google.ads.google_ads.v0.proto.services import bidding_strategy_service_pb2 +from google.ads.google_ads.v0.proto.enums import bidding_strategy_type_pb2 +from google.ads.google_ads.v0.proto.enums import budget_delivery_method_pb2 +from google.ads.google_ads.v0.proto.enums import budget_status_pb2 +from google.ads.google_ads.v0.proto.errors import campaign_budget_error_pb2 +from google.ads.google_ads.v0.proto.resources import campaign_budget_pb2 +from google.ads.google_ads.v0.proto.services import campaign_budget_service_pb2 +from google.ads.google_ads.v0.proto.errors import campaign_criterion_error_pb2 +from google.ads.google_ads.v0.proto.resources import campaign_criterion_pb2 +from google.ads.google_ads.v0.proto.services import campaign_criterion_service_pb2 +from google.ads.google_ads.v0.proto.errors import campaign_error_pb2 +from google.ads.google_ads.v0.proto.resources import campaign_pb2 +from google.ads.google_ads.v0.proto.services import campaign_service_pb2 +from google.ads.google_ads.v0.proto.enums import campaign_serving_status_pb2 +from google.ads.google_ads.v0.proto.enums import campaign_status_pb2 +from google.ads.google_ads.v0.proto.errors import collection_size_error_pb2 +from google.ads.google_ads.v0.proto.errors import context_error_pb2 +from google.ads.google_ads.v0.proto.common import criteria_pb2 +from google.ads.google_ads.v0.proto.errors import criterion_error_pb2 +from google.ads.google_ads.v0.proto.enums import criterion_type_pb2 +from google.ads.google_ads.v0.proto.common import custom_parameter_pb2 +from google.ads.google_ads.v0.proto.resources import customer_pb2 +from google.ads.google_ads.v0.proto.services import customer_service_pb2 +from google.ads.google_ads.v0.proto.errors import date_error_pb2 +from google.ads.google_ads.v0.proto.errors import date_range_error_pb2 +from google.ads.google_ads.v0.proto.enums import day_of_week_pb2 +from google.ads.google_ads.v0.proto.enums import device_pb2 +from google.ads.google_ads.v0.proto.errors import distinct_error_pb2 +from google.ads.google_ads.v0.proto.errors import errors_pb2 +from google.ads.google_ads.v0.proto.errors import feed_attribute_reference_error_pb2 +from google.ads.google_ads.v0.proto.errors import field_error_pb2 +from google.ads.google_ads.v0.proto.errors import field_mask_error_pb2 +from google.ads.google_ads.v0.proto.errors import function_error_pb2 +from google.ads.google_ads.v0.proto.errors import function_parsing_error_pb2 +from google.ads.google_ads.v0.proto.resources import geo_target_constant_pb2 +from google.ads.google_ads.v0.proto.services import geo_target_constant_service_pb2 +from google.ads.google_ads.v0.proto.enums import google_ads_field_category_pb2 +from google.ads.google_ads.v0.proto.enums import google_ads_field_data_type_pb2 +from google.ads.google_ads.v0.proto.resources import google_ads_field_pb2 +from google.ads.google_ads.v0.proto.services import google_ads_field_service_pb2 +from google.ads.google_ads.v0.proto.services import google_ads_service_pb2 +from google.ads.google_ads.v0.proto.errors import id_error_pb2 +from google.ads.google_ads.v0.proto.errors import image_error_pb2 +from google.ads.google_ads.v0.proto.errors import internal_error_pb2 +from google.ads.google_ads.v0.proto.enums import keyword_match_type_pb2 +from google.ads.google_ads.v0.proto.resources import keyword_view_pb2 +from google.ads.google_ads.v0.proto.services import keyword_view_service_pb2 +from google.ads.google_ads.v0.proto.errors import list_operation_error_pb2 +from google.ads.google_ads.v0.proto.enums import listing_custom_attribute_index_pb2 +from google.ads.google_ads.v0.proto.enums import listing_group_type_pb2 +from google.ads.google_ads.v0.proto.errors import media_bundle_error_pb2 +from google.ads.google_ads.v0.proto.errors import media_error_pb2 +from google.ads.google_ads.v0.proto.common import metrics_pb2 +from google.ads.google_ads.v0.proto.errors import multiplier_error_pb2 +from google.ads.google_ads.v0.proto.errors import mutate_error_pb2 +from google.ads.google_ads.v0.proto.errors import new_resource_creation_error_pb2 +from google.ads.google_ads.v0.proto.errors import not_empty_error_pb2 +from google.ads.google_ads.v0.proto.errors import null_error_pb2 +from google.ads.google_ads.v0.proto.errors import operation_access_denied_error_pb2 +from google.ads.google_ads.v0.proto.errors import operator_error_pb2 +from google.ads.google_ads.v0.proto.enums import page_one_promoted_strategy_goal_pb2 +from google.ads.google_ads.v0.proto.common import policy_pb2 +from google.ads.google_ads.v0.proto.enums import quality_score_bucket_pb2 +from google.ads.google_ads.v0.proto.errors import query_error_pb2 +from google.ads.google_ads.v0.proto.errors import quota_error_pb2 +from google.ads.google_ads.v0.proto.errors import range_error_pb2 +from google.ads.google_ads.v0.proto.errors import recommendation_error_pb2 +from google.ads.google_ads.v0.proto.resources import recommendation_pb2 +from google.ads.google_ads.v0.proto.services import recommendation_service_pb2 +from google.ads.google_ads.v0.proto.enums import recommendation_type_pb2 +from google.ads.google_ads.v0.proto.errors import region_code_error_pb2 +from google.ads.google_ads.v0.proto.errors import request_error_pb2 +from google.ads.google_ads.v0.proto.errors import resource_access_denied_error_pb2 +from google.ads.google_ads.v0.proto.errors import resource_count_limit_exceeded_error_pb2 +from google.ads.google_ads.v0.proto.errors import setting_error_pb2 +from google.ads.google_ads.v0.proto.enums import slot_pb2 +from google.ads.google_ads.v0.proto.errors import string_format_error_pb2 +from google.ads.google_ads.v0.proto.errors import string_length_error_pb2 +from google.ads.google_ads.v0.proto.enums import target_cpa_opt_in_recommendation_goal_pb2 +from google.ads.google_ads.v0.proto.errors import url_field_error_pb2 +from google.ads.google_ads.v0.proto.common import value_pb2 +from google.protobuf import any_pb2 +from google.protobuf import descriptor_pb2 +from google.protobuf import field_mask_pb2 +from google.protobuf import wrappers_pb2 +from google.rpc import status_pb2 + +_shared_modules = [ + http_pb2, + ad_customizer_error_pb2, + ad_error_pb2, + ad_group_ad_error_pb2, + ad_group_ad_pb2, + ad_group_ad_status_pb2, + ad_group_bid_modifier_error_pb2, + ad_group_bid_modifier_pb2, + ad_group_criterion_error_pb2, + ad_group_criterion_pb2, + ad_group_criterion_status_pb2, + ad_group_error_pb2, + ad_group_pb2, + ad_group_status_pb2, + ad_group_type_pb2, + ad_network_type_pb2, + ad_pb2, + ad_serving_optimization_status_pb2, + ad_sharing_error_pb2, + ad_type_infos_pb2, + ad_type_pb2, + advertising_channel_sub_type_pb2, + advertising_channel_type_pb2, + adx_error_pb2, + authentication_error_pb2, + authorization_error_pb2, + bidding_error_pb2, + bidding_pb2, + bidding_source_pb2, + bidding_strategy_error_pb2, + bidding_strategy_pb2, + bidding_strategy_type_pb2, + budget_delivery_method_pb2, + budget_status_pb2, + campaign_budget_error_pb2, + campaign_budget_pb2, + campaign_criterion_error_pb2, + campaign_criterion_pb2, + campaign_error_pb2, + campaign_pb2, + campaign_serving_status_pb2, + campaign_status_pb2, + collection_size_error_pb2, + context_error_pb2, + criteria_pb2, + criterion_error_pb2, + criterion_type_pb2, + custom_parameter_pb2, + customer_pb2, + date_error_pb2, + date_range_error_pb2, + day_of_week_pb2, + device_pb2, + distinct_error_pb2, + errors_pb2, + feed_attribute_reference_error_pb2, + field_error_pb2, + field_mask_error_pb2, + function_error_pb2, + function_parsing_error_pb2, + geo_target_constant_pb2, + google_ads_field_category_pb2, + google_ads_field_data_type_pb2, + google_ads_field_pb2, + id_error_pb2, + image_error_pb2, + internal_error_pb2, + keyword_match_type_pb2, + keyword_view_pb2, + list_operation_error_pb2, + listing_custom_attribute_index_pb2, + listing_group_type_pb2, + media_bundle_error_pb2, + media_error_pb2, + metrics_pb2, + multiplier_error_pb2, + mutate_error_pb2, + new_resource_creation_error_pb2, + not_empty_error_pb2, + null_error_pb2, + operation_access_denied_error_pb2, + operator_error_pb2, + page_one_promoted_strategy_goal_pb2, + policy_pb2, + quality_score_bucket_pb2, + query_error_pb2, + quota_error_pb2, + range_error_pb2, + recommendation_error_pb2, + recommendation_pb2, + recommendation_type_pb2, + region_code_error_pb2, + request_error_pb2, + resource_access_denied_error_pb2, + resource_count_limit_exceeded_error_pb2, + setting_error_pb2, + slot_pb2, + string_format_error_pb2, + string_length_error_pb2, + target_cpa_opt_in_recommendation_goal_pb2, + url_field_error_pb2, + value_pb2, + any_pb2, + descriptor_pb2, + field_mask_pb2, + wrappers_pb2, + status_pb2, +] + +_local_modules = [ + ad_group_ad_service_pb2, + ad_group_bid_modifier_service_pb2, + ad_group_criterion_service_pb2, + ad_group_service_pb2, + bidding_strategy_service_pb2, + campaign_budget_service_pb2, + campaign_criterion_service_pb2, + campaign_service_pb2, + customer_service_pb2, + geo_target_constant_service_pb2, + google_ads_field_service_pb2, + google_ads_service_pb2, + keyword_view_service_pb2, + recommendation_service_pb2, +] + +names = [] + +for module in _shared_modules: + for name, message in get_messages(module).items(): + setattr(sys.modules[__name__], name, message) + names.append(name) +for module in _local_modules: + for name, message in get_messages(module).items(): + message.__module__ = 'google.cloud.ads.googleads_v0.types' + setattr(sys.modules[__name__], name, message) + names.append(name) + +__all__ = tuple(sorted(names)) diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..87b11a007 --- /dev/null +++ b/setup.py @@ -0,0 +1,63 @@ +# Copyright 2018 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 +# +# https://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. +"""A setup module for the Google Ads API client library.""" + +from setuptools import setup, find_packages +import io + +install_requires = [ + 'enum34; python_version < "3.4"', + 'google-auth-oauthlib>=0.0.1,<1.0.0', + 'google-api-core[grpc] >= 1.1.0, < 2.0.0dev', + 'PyYAML >= 3.11, < 4.0', +] + +tests_require = [ + 'mock >= 2.0.0, < 3.0.0', + 'pyfakefs >= 3.4, < 3.5', +] + +with io.open('README.rst', 'r', encoding='utf-8') as readme_file: + long_description = readme_file.read() + +setup( + name='google-ads', + version='0.1.0', + author='Google LLC', + author_email='googleapis-packages@google.com', + classifiers=[ + 'Intended Audience :: Developers', + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Apache Software License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + ], + description='Client library for the Google Ads API', + include_package_data=True, + long_description=long_description, + install_requires=install_requires, + tests_require=tests_require, + test_suite='tests', + license='Apache 2.0', + packages=find_packages(exclude=('tests*', )), + namespace_packages=['google', 'google.ads', 'google.ads.google_ads'], + url='https://github.com/googleads/google-ads-python', + zip_safe=False, +) diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..b0c7da3d7 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2018 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 +# +# https://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. diff --git a/tests/client_test.py b/tests/client_test.py new file mode 100644 index 000000000..fce77d269 --- /dev/null +++ b/tests/client_test.py @@ -0,0 +1,154 @@ +# Copyright 2018 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 +# +# https://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. +"""Tests for the Google Ads API client library.""" + + +import os + +import google.ads.google_ads.client +import google.ads.google_ads.v0 +import mock +from pyfakefs.fake_filesystem_unittest import TestCase +import yaml + + +class GoogleAdsClientTest(TestCase): + """Tests for the google.ads.googleads.client.GoogleAdsClient class.""" + + def _create_test_client(self): + with mock.patch('google.oauth2.credentials') as mock_credentials: + mock_credentials_instance = mock_credentials.return_value + mock_credentials_instance.refresh_token = self.refresh_token + mock_credentials_instance.client_id = self.client_id + mock_credentials_instance.client_secret = self.client_secret + client = google.ads.google_ads.client.GoogleAdsClient( + mock_credentials_instance, self.developer_token) + return client + + def setUp(self): + self.setUpPyfakefs() + self.developer_token = 'abc123' + self.client_id = 'client_id_123456789' + self.client_secret = 'client_secret_987654321' + self.refresh_token = 'refresh' + + def test_load_from_storage(self): + config = { + 'developer_token': self.developer_token, + 'client_id': self.client_id, + 'client_secret': self.client_secret, + 'refresh_token': self.refresh_token + } + + file_path = os.path.join(os.path.expanduser('~'), 'google-ads.yaml') + self.fs.create_file(file_path, contents=yaml.safe_dump(config)) + + with mock.patch('google.ads.google_ads.client.GoogleAdsClient' + '.__init__') as mock_client_init, \ + mock.patch( + 'google.oauth2.credentials.Credentials') as mock_credentials: + mock_client_init.return_value = None + mock_credentials_instance = mock.Mock() + mock_credentials.return_value = mock_credentials_instance + (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage()) + mock_client_init.assert_called_once_with( + credentials=mock_credentials_instance, + developer_token=self.developer_token) + + def test_load_from_storage_custom_path(self): + config = { + 'developer_token': self.developer_token, + 'client_id': self.client_id, + 'client_secret': self.client_secret, + 'refresh_token': self.refresh_token + } + + file_path = 'test/google-ads.yaml' + self.fs.create_file(file_path, contents=yaml.safe_dump(config)) + + with mock.patch('google.ads.google_ads.client.GoogleAdsClient' + '.__init__') as mock_client_init, \ + mock.patch( + 'google.oauth2.credentials.Credentials') as mock_credentials: + mock_client_init.return_value = None + mock_credentials_instance = mock.Mock() + mock_credentials.return_value = mock_credentials_instance + (google.ads.google_ads.client.GoogleAdsClient + .load_from_storage(path=file_path)) + mock_client_init.assert_called_once_with( + credentials=mock_credentials_instance, + developer_token=self.developer_token) + + def test_load_from_storage_file_not_found(self): + wrong_file_path = 'test/wrong-google-ads.yaml' + + self.assertRaises( + IOError, + google.ads.google_ads.client.GoogleAdsClient.load_from_storage, + path=wrong_file_path) + + def test_load_from_storage_required_config_missing(self): + config = { + 'client_id': self.client_id, + 'client_secret': self.client_secret, + 'refresh_token': self.refresh_token + } + + file_path = 'test/google-ads.yaml' + self.fs.create_file(file_path, contents=yaml.safe_dump(config)) + + self.assertRaises( + ValueError, + google.ads.google_ads.client.GoogleAdsClient.load_from_storage, + path=file_path) + + def test_get_service(self): + # Retrieve service names for all defined service clients. + service_names = [ + name.rsplit('Client')[0] for name in dir(google.ads.google_ads.v0) + if 'ServiceClient' in name] + + client = self._create_test_client() + + # Iterate through retrieval of all service clients by name. + for service_name in service_names: + client.get_service(service_name) + + def test_get_service_not_found(self): + client = self._create_test_client() + self.assertRaises(ValueError, client.get_service, 'BadService') + + def test_get_service_invalid_version(self): + client = self._create_test_client() + self.assertRaises(ValueError, client.get_service, 'GoogleAdsService', + version='v0_bad') + + def test_get_type(self): + # Retrieve names for all types defined in pb2 files. + type_names = google.ads.google_ads.v0.types.names + + # Iterate through retrieval of all types by name. + for name in type_names: + google.ads.google_ads.client.GoogleAdsClient.get_type(name) + + def test_get_type_not_found(self): + self.assertRaises( + ValueError, google.ads.google_ads.client.GoogleAdsClient.get_type, + 'BadType') + + def test_get_type_invalid_version(self): + self.assertRaises( + ValueError, google.ads.google_ads.client.GoogleAdsClient.get_type, + 'GoogleAdsFailure', version='v0_bad')