first commit
This commit is contained in:
33
src/gads_v2/google_ads.py
Normal file
33
src/gads_v2/google_ads.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from typing import Any
|
||||
|
||||
from google.ads.googleads.client import GoogleAdsClient
|
||||
|
||||
|
||||
def get_google_ads_client(use_proto_plus: bool = True) -> GoogleAdsClient:
|
||||
developer_token = os.environ.get("GOOGLE_ADS_DEVELOPER_TOKEN") or os.environ.get(
|
||||
"GOOGLE_ADS_DEVELOPER_TOKNE"
|
||||
)
|
||||
if not developer_token:
|
||||
raise RuntimeError("Brak GOOGLE_ADS_DEVELOPER_TOKEN w .env.")
|
||||
return GoogleAdsClient.load_from_dict(
|
||||
{
|
||||
"developer_token": developer_token,
|
||||
"client_id": os.environ["GOOGLE_ADS_OAUTH2_CLIENT_ID"],
|
||||
"client_secret": os.environ["GOOGLE_ADS_OAUTH2_CLIENT_SECRET"],
|
||||
"refresh_token": os.environ["GOOGLE_ADS_OAUTH2_REFRESH_TOKEN"],
|
||||
"login_customer_id": os.environ["GOOGLE_ADS_MANAGER_ACCOUNT_ID"],
|
||||
"use_proto_plus": use_proto_plus,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def run_query(client: GoogleAdsClient, customer_id: str, query: str, timeout: float = 300.0) -> list[Any]:
|
||||
service = client.get_service("GoogleAdsService")
|
||||
rows = []
|
||||
for batch in service.search_stream(customer_id=customer_id, query=query, timeout=timeout):
|
||||
rows.extend(batch.results)
|
||||
return rows
|
||||
|
||||
Reference in New Issue
Block a user