:py:mod:`airflow.providers.google.cloud.transfers.facebook_ads_to_gcs`
======================================================================

.. py:module:: airflow.providers.google.cloud.transfers.facebook_ads_to_gcs

.. autoapi-nested-parse::

   This module contains Facebook Ad Reporting to GCS operators.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.facebook_ads_to_gcs.FlushAction
   airflow.providers.google.cloud.transfers.facebook_ads_to_gcs.FacebookAdsReportToGcsOperator




.. py:class:: FlushAction

   Bases: :py:obj:`enum.Enum`

   Facebook Ads Export Options

   .. py:attribute:: EXPORT_ONCE
      :annotation: = ExportAtOnce

      

   .. py:attribute:: EXPORT_EVERY_ACCOUNT
      :annotation: = ExportEveryAccount

      


.. py:class:: FacebookAdsReportToGcsOperator(*, bucket_name, object_name, fields, parameters = None, gzip = False, upload_as_account = False, api_version = None, gcp_conn_id = 'google_cloud_default', facebook_conn_id = 'facebook_default', impersonation_chain = None, **kwargs)

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

   Fetches the results from the Facebook Ads API as desired in the params
   Converts and saves the data as a temporary JSON file
   Uploads the JSON to Google Cloud Storage

   .. seealso::
       For more information on the Facebook Ads API, take a look at the API docs:
       https://developers.facebook.com/docs/marketing-apis/

   .. seealso::
       For more information on the Facebook Ads Python SDK, take a look at the docs:
       https://github.com/facebook/facebook-python-business-sdk

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

   :param bucket_name: The GCS bucket to upload to
   :param object_name: 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 facebook_conn_id: Airflow Facebook Ads connection ID
   :param api_version: The version of Facebook API. Default to None. If it is None,
       it will use the Facebook business SDK default version.
   :param fields: List of fields that is obtained from Facebook. Found in AdsInsights.Field class.
       https://developers.facebook.com/docs/marketing-api/insights/parameters/v6.0
   :param parameters: Parameters that determine the query for Facebook
       https://developers.facebook.com/docs/marketing-api/insights/parameters/v6.0
   :param gzip: Option to compress local file or file data for upload
   :param upload_as_account: Option to export file with account_id
       This parameter only works if Account Id sets as array in Facebook Connection
       If set as True, each file will be exported in a separate file that has a prefix of account_id
       If set as False, a single file will be exported for all account_id
   :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).

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['facebook_conn_id', 'bucket_name', 'object_name', 'impersonation_chain', 'parameters']

      

   .. 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.



