blob: 382542c4da9aad50151f37447a4d563f1601505b [file] [log] [blame]
:py:mod:`airflow.providers.google.ads.hooks.ads`
================================================
.. py:module:: airflow.providers.google.ads.hooks.ads
.. autoapi-nested-parse::
This module contains Google Ad hook.
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.providers.google.ads.hooks.ads.GoogleAdsHook
.. py:class:: GoogleAdsHook(api_version, gcp_conn_id = 'google_cloud_default', google_ads_conn_id = 'google_ads_default')
Bases: :py:obj:`airflow.hooks.base.BaseHook`
Hook for the Google Ads API.
This hook requires two connections:
- gcp_conn_id - provides service account details (like any other GCP connection)
- google_ads_conn_id - which contains information from Google Ads config.yaml file
in the ``extras``. Example of the ``extras``:
.. code-block:: json
{
"google_ads_client": {
"developer_token": "{{ INSERT_TOKEN }}",
"json_key_file_path": null,
"impersonated_email": "{{ INSERT_IMPERSONATED_EMAIL }}"
}
}
The ``json_key_file_path`` is resolved by the hook using credentials from gcp_conn_id.
https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-service
.. seealso::
For more information on how Google Ads authentication flow works take a look at:
https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-service
.. 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
:param gcp_conn_id: The connection ID with the service account details.
:param google_ads_conn_id: The connection ID with the details of Google Ads config.yaml file.
:param api_version: The Google Ads API version to use.
:return: list of Google Ads Row object(s)
:rtype: list[GoogleAdsRow]
.. py:attribute:: default_api_version
:annotation: = v10
.. py:method:: search(client_ids, query, page_size = 10000, **kwargs)
Pulls data from the Google Ads API and returns it as native protobuf
message instances (those seen in versions prior to 10.0.0 of the
google-ads library).
This method is for backwards compatibility with older versions of the
google_ads_hook.
Check out the search_proto_plus method to get API results in the new
default format of the google-ads library since v10.0.0 that behave
more like conventional python object (using proto-plus-python).
:param client_ids: Google Ads client ID(s) to query the API for.
:param query: Google Ads Query Language query.
:param page_size: Number of results to return per page. Max 10000.
:return: Google Ads API response, converted to Google Ads Row objects
:rtype: list[GoogleAdsRow]
.. py:method:: search_proto_plus(client_ids, query, page_size = 10000, **kwargs)
Pulls data from the Google Ads API and returns it as proto-plus-python
message instances that behave more like conventional python objects.
:param client_ids: Google Ads client ID(s) to query the API for.
:param query: Google Ads Query Language query.
:param page_size: Number of results to return per page. Max 10000.
:return: Google Ads API response, converted to Google Ads Row objects
:rtype: list[GoogleAdsRow]
.. py:method:: list_accessible_customers()
Returns resource names of customers directly accessible by the user authenticating the call.
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
:return: List of names of customers