chore: librarian update image pull request: 20251106T013158Z (#14854) · googleapis/google-cloud-python@a05e23b
1+Python Client for Google Ad Manager
2+===================================
3+4+|preview| |pypi| |versions|
5+6+`Google Ad Manager`_: Manage your Ad Manager inventory, run reports and more.
7+8+- `Client Library Documentation`_
9+- `Product Documentation`_
10+11+.. |preview| image:: https://img.shields.io/badge/support-preview-orange.svg
12+:target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#stability-levels
13+.. |pypi| image:: https://img.shields.io/pypi/v/google-ads-admanager.svg
14+:target: https://pypi.org/project/google-ads-admanager/
15+.. |versions| image:: https://img.shields.io/pypi/pyversions/google-ads-admanager.svg
16+:target: https://pypi.org/project/google-ads-admanager/
17+.. _Google Ad Manager: https://developers.google.com/ad-manager/api/beta
18+.. _Client Library Documentation: https://googleapis.dev/python/google-ads-admanager/latest
19+.. _Product Documentation: https://developers.google.com/ad-manager/api/beta
20+21+Quick Start
22+-----------
23+24+In order to use this library, you first need to go through the following steps:
25+26+1. `Select or create a Cloud Platform project.`_
27+2. `Enable billing for your project.`_
28+3. `Enable the Google Ad Manager.`_
29+4. `Set up Authentication.`_
30+31+.. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
32+.. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
33+.. _Enable the Google Ad Manager.: https://developers.google.com/ad-manager/api/beta
34+.. _Set up Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
35+36+Installation
37+~~~~~~~~~~~~
38+39+Install this library in a virtual environment using `venv`_. `venv`_ is a tool that
40+creates isolated Python environments. These isolated environments can have separate
41+versions of Python packages, which allows you to isolate one project's dependencies
42+from the dependencies of other projects.
43+44+With `venv`_, it's possible to install this library without needing system
45+install permissions, and without clashing with the installed system
46+dependencies.
47+48+.. _`venv`: https://docs.python.org/3/library/venv.html
49+50+51+Code samples and snippets
52+~~~~~~~~~~~~~~~~~~~~~~~~~
53+54+Code samples and snippets live in the `samples/`_ folder.
55+56+.. _samples/: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-ads-admanager/samples
57+58+59+Supported Python Versions
60+^^^^^^^^^^^^^^^^^^^^^^^^^
61+Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
62+Python.
63+64+Python >= 3.7, including 3.14
65+66+.. _active: https://devguide.python.org/devcycle/#in-development-main-branch
67+.. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
68+69+Unsupported Python Versions
70+^^^^^^^^^^^^^^^^^^^^^^^^^^^
71+Python <= 3.6
72+73+If you are using an `end-of-life`_
74+version of Python, we recommend that you update as soon as possible to an actively supported version.
75+76+.. _end-of-life: https://devguide.python.org/devcycle/#end-of-life-branches
77+78+Mac/Linux
79+^^^^^^^^^
80+81+.. code-block:: console
82+83+ python3 -m venv <your-env>
84+ source <your-env>/bin/activate
85+ pip install google-ads-admanager
86+87+88+Windows
89+^^^^^^^
90+91+.. code-block:: console
92+93+ py -m venv <your-env>
94+ .\<your-env>\Scripts\activate
95+ pip install google-ads-admanager
96+97+Next Steps
98+~~~~~~~~~~
99+100+- Read the `Client Library Documentation`_ for Google Ad Manager
101+ to see other available methods on the client.
102+- Read the `Google Ad Manager Product documentation`_ to learn
103+ more about the product and see How-to Guides.
104+- View this `README`_ to see the full list of Cloud
105+ APIs that we cover.
106+107+.. _Google Ad Manager Product documentation: https://developers.google.com/ad-manager/api/beta
108+.. _README: https://github.com/googleapis/google-cloud-python/blob/main/README.rst
109+110+Logging
111+-------
112+113+This library uses the standard Python :code:`logging` functionality to log some RPC events that could be of interest for debugging and monitoring purposes.
114+Note the following:
115+116+#. Logs may contain sensitive information. Take care to **restrict access to the logs** if they are saved, whether it be on local storage or on Google Cloud Logging.
117+#. Google may refine the occurrence, level, and content of various log messages in this library without flagging such changes as breaking. **Do not depend on immutability of the logging events**.
118+#. By default, the logging events from this library are not handled. You must **explicitly configure log handling** using one of the mechanisms below.
119+120+Simple, environment-based configuration
121+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122+123+To enable logging for this library without any changes in your code, set the :code:`GOOGLE_SDK_PYTHON_LOGGING_SCOPE` environment variable to a valid Google
124+logging scope. This configures handling of logging events (at level :code:`logging.DEBUG` or higher) from this library in a default manner, emitting the logged
125+messages in a structured format. It does not currently allow customizing the logging levels captured nor the handlers, formatters, etc. used for any logging
126+event.
127+128+A logging scope is a period-separated namespace that begins with :code:`google`, identifying the Python module or package to log.
129+130+- Valid logging scopes: :code:`google`, :code:`google.cloud.asset.v1`, :code:`google.api`, :code:`google.auth`, etc.
131+- Invalid logging scopes: :code:`foo`, :code:`123`, etc.
132+133+**NOTE**: If the logging scope is invalid, the library does not set up any logging handlers.
134+135+Environment-Based Examples
136+^^^^^^^^^^^^^^^^^^^^^^^^^^
137+138+- Enabling the default handler for all Google-based loggers
139+140+.. code-block:: console
141+142+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google
143+144+- Enabling the default handler for a specific Google module (for a client library called :code:`library_v1`):
145+146+.. code-block:: console
147+148+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.cloud.library_v1
149+150+151+Advanced, code-based configuration
152+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153+154+You can also configure a valid logging scope using Python's standard `logging` mechanism.
155+156+Code-Based Examples
157+^^^^^^^^^^^^^^^^^^^
158+159+- Configuring a handler for all Google-based loggers
160+161+.. code-block:: python
162+163+ import logging
164+165+ from google.cloud import library_v1
166+167+ base_logger = logging.getLogger("google")
168+ base_logger.addHandler(logging.StreamHandler())
169+ base_logger.setLevel(logging.DEBUG)
170+171+- Configuring a handler for a specific Google module (for a client library called :code:`library_v1`):
172+173+.. code-block:: python
174+175+ import logging
176+177+ from google.cloud import library_v1
178+179+ base_logger = logging.getLogger("google.cloud.library_v1")
180+ base_logger.addHandler(logging.StreamHandler())
181+ base_logger.setLevel(logging.DEBUG)
182+183+Logging details
184+~~~~~~~~~~~~~~~
185+186+#. Regardless of which of the mechanisms above you use to configure logging for this library, by default logging events are not propagated up to the root
187+ logger from the `google`-level logger. If you need the events to be propagated to the root logger, you must explicitly set
188+:code:`logging.getLogger("google").propagate = True` in your code.
189+#. You can mix the different logging configurations above for different Google modules. For example, you may want use a code-based logging configuration for
190+ one library, but decide you need to also set up environment-based logging configuration for another library.
191+192+ #. If you attempt to use both code-based and environment-based configuration for the same module, the environment-based configuration will be ineffectual
193+ if the code -based configuration gets applied first.
194+195+#. The Google-specific logging configurations (default handlers for environment-based configuration; not propagating logging events to the root logger) get
196+ executed the first time *any* client library is instantiated in your application, and only if the affected loggers have not been previously configured.
197+ (This is the reason for 2.i. above.)