airflow.providers.google.ads.hooks.ads

This module contains Google Ad hook.

Module Contents

class airflow.providers.google.ads.hooks.ads.GoogleAdsHook(api_version: Optional[str], gcp_conn_id: str = 'google_cloud_default', google_ads_conn_id: str = 'google_ads_default')[source]

Bases: 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:

{
    "google_ads_client": {
        "developer_token": "{{ INSERT_TOKEN }}",
        "path_to_private_key_file": null,
        "delegated_account": "{{ INSERT_DELEGATED_ACCOUNT }}"
    }
}

The path_to_private_key_file is resolved by the hook using credentials from gcp_conn_id. https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-service

See also

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

See also

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

Parameters
  • gcp_conn_id (str) -- The connection ID with the service account details.

  • google_ads_conn_id (str) -- The connection ID with the details of Google Ads config.yaml file.

  • api_version (str) -- The Google Ads API version to use.

Returns

list of Google Ads Row object(s)

Return type

list[GoogleAdsRow]

default_api_version = v8[source]
search(self, client_ids: List[str], query: str, page_size: int = 10000, **kwargs)[source]

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

Parameters
  • client_ids (List[str]) -- Google Ads client ID(s) to query the API for.

  • query (str) -- Google Ads Query Language query.

  • page_size (int) -- Number of results to return per page. Max 10000.

Returns

Google Ads API response, converted to Google Ads Row objects

Return type

list[GoogleAdsRow]

search_proto_plus(self, client_ids: List[str], query: str, page_size: int = 10000, **kwargs)[source]

Pulls data from the Google Ads API and returns it as proto-plus-python message instances that behave more like conventional python objects.

Parameters
  • client_ids (List[str]) -- Google Ads client ID(s) to query the API for.

  • query (str) -- Google Ads Query Language query.

  • page_size (int) -- Number of results to return per page. Max 10000.

Returns

Google Ads API response, converted to Google Ads Row objects

Return type

list[GoogleAdsRow]

list_accessible_customers(self)[source]

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

Returns

List of names of customers

Was this entry helpful?