:py:mod:`airflow.providers.google.ads.transfers.ads_to_gcs`
===========================================================

.. py:module:: airflow.providers.google.ads.transfers.ads_to_gcs


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.ads.transfers.ads_to_gcs.GoogleAdsToGcsOperator




.. py:class:: GoogleAdsToGcsOperator(*, client_ids, query, attributes, bucket, obj, gcp_conn_id = 'google_cloud_default', google_ads_conn_id = 'google_ads_default', page_size = 10000, gzip = False, impersonation_chain = None, api_version = None, **kwargs)

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

   Fetches the daily results from the Google Ads API for 1-n clients
   Converts and saves the data as a temporary CSV file
   Uploads the CSV to Google Cloud Storage

   .. seealso::
       For more information on the Google Ads API, take a look at the API docs:
       https://developers.google.com/google-ads/api/docs/start

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

   :param client_ids: Google Ads client IDs to query
   :param query: Google Ads Query Language API query
   :param attributes: List of Google Ads Row attributes to extract
   :param bucket: The GCS bucket to upload to
   :param obj: GCS path to save the object. Must be the full file path (ex. `path/to/file.txt`)
   :param gcp_conn_id: Airflow Google Cloud connection ID
   :param google_ads_conn_id: Airflow Google Ads connection ID
   :param page_size: The number of results per API page request. Max 10,000
   :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] = ['client_ids', 'query', 'attributes', 'bucket', 'obj', '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.



