:py:mod:`airflow.providers.google.ads.operators.ads`
====================================================

.. py:module:: airflow.providers.google.ads.operators.ads

.. autoapi-nested-parse::

   This module contains Google Ad to GCS operators.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.ads.operators.ads.GoogleAdsListAccountsOperator




.. py:class:: GoogleAdsListAccountsOperator(*, bucket, object_name, gcp_conn_id = 'google_cloud_default', google_ads_conn_id = 'google_ads_default', gzip = False, impersonation_chain = None, api_version = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Saves list of customers on GCS in form of a csv file.

   The resulting list of customers is based on your OAuth credentials. The request returns a list
   of all accounts that you are able to act upon directly given your current credentials. This will
   not necessarily include all accounts within the account hierarchy; rather, it will only include
   accounts where your authenticated user has been added with admin or other rights in the account.

   .. seealso::
       https://developers.google.com/google-ads/api/reference/rpc


   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:GoogleAdsListAccountsOperator`

   :param bucket: The GCS bucket to upload to
   :param object_name: GCS path to save the csv file. Must be the full file path (ex. `path/to/file.csv`)
   :param gcp_conn_id: Airflow Google Cloud connection ID
   :param google_ads_conn_id: Airflow Google Ads connection ID
   :param gzip: Option to compress local file or file data for upload
   :param impersonation_chain: Optional service account to impersonate using short-term
       credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account (templated).
   :param api_version: Optional Google Ads API version to use.

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['bucket', 'object_name', 'impersonation_chain']

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



