airflow.providers.google.ads.hooks.ads

This module contains Google Ad hook.

Module Contents

Classes

GoogleAdsHook

Interact with Google Ads API.

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

Bases: airflow.hooks.base.BaseHook

Interact with 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 }}",
            "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

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 | None) – The Google Ads API version to use.

default_api_version = 'v15'[source]
search(client_ids, query, page_size=10000, **kwargs)[source]

Pull data from the Google Ads API.

Native protobuf message instances are returned (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[google.ads.googleads.v15.services.types.google_ads_service.GoogleAdsRow]

search_proto_plus(client_ids, query, page_size=10000, **kwargs)[source]

Pull data from the Google Ads API.

Instances of proto-plus-python message are returned, which 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[google.ads.googleads.v15.services.types.google_ads_service.GoogleAdsRow]

list_accessible_customers()[source]

List resource names of customers.

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

Return type

list[str]

Was this entry helpful?