airflow.providers.google.ads.hooks.ads

This module contains Google Ad hook.

Module Contents

class airflow.providers.google.ads.hooks.ads.GoogleAdsHook(gcp_conn_id: str = 'google_cloud_default', google_ads_conn_id: str = 'google_ads_default', api_version: str = 'v3')[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.

Returns

list of Google Ads Row object(s)

Return type

list[GoogleAdsRow]

_get_service(self)[source]

Connects and authenticates with the Google Ads API using a service account

_get_customer_service(self)[source]

Connects and authenticates with the Google Ads API using a service account

_get_config(self)[source]

Gets google ads connection from meta db and sets google_ads_config attribute with returned config file

_update_config_with_secret(self, secrets_temp: IO[str])[source]

Gets Google Cloud secret from connection and saves the contents to the temp file Updates google ads config with file path of the temp file containing the secret Note, the secret must be passed as a file path for Google Ads API

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

Pulls data from the Google Ads API

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]

_extract_rows(self, iterators: Generator[GRPCIterator, None, None])[source]

Convert Google Page Iterator (GRPCIterator) objects to Google Ads Rows

Parameters

iterators (generator[GRPCIterator, None, None]) -- List of Google Page Iterator (GRPCIterator) objects

Returns

API response for all clients in the form of Google Ads Row object(s)

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?