class_docstr: 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``:
  
      .. 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.
docstr: Connect and authenticate with the Google Ads API using a service account.
docstr_tok: ["Connect","and","authenticate","with","the","Google","Ads","API","using","a","service","account","."]
code: def _get_service(self) -> GoogleAdsServiceClient:
      """Connect and authenticate with the Google Ads API using a service account."""
      client = self._get_client
      return client.get_service(
          "GoogleAdsService", version=self.api_version
      )
  
imports: from __future__ import annotations
  from functools import cached_property
  from tempfile import NamedTemporaryFile
  from typing import IO, TYPE_CHECKING, Any
  from google.ads.googleads.client import GoogleAdsClient
  from google.ads.googleads.errors import GoogleAdsException
  from google.auth.exceptions import GoogleAuthError
  from airflow.exceptions import AirflowException
  from airflow.hooks.base import BaseHook
  from airflow.providers.google.common.hooks.base_google import get_field
label_desc: Use image node_id 5 for calling the GoogleAdsHook obj's underlying member method code with example usage: obj._get_service() and returns: client