Skip to content

Commit b85bc47

Browse files
Fix: Correct enum import paths in examples/planning files
This change corrects the import paths for enums in the Python files under the `examples/planning/` directory. The previous import paths were incorrect, and this commit fixes them to use the `google.ads.googleads.v20.enums.types` path. The following files were modified: - `examples/planning/forecast_reach.py` - `examples/planning/generate_forecast_metrics.py` - `examples/planning/generate_historical_metrics.py` - `examples/planning/generate_keyword_ideas.py`
1 parent e55d98a commit b85bc47

9 files changed

+310
-78
lines changed

examples/misc/add_ad_group_image_asset.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323

2424
from google.ads.googleads.client import GoogleAdsClient
2525
from google.ads.googleads.errors import GoogleAdsException
26-
from google.api_core import protobuf_helpers
26+
from google.ads.googleads.v20.resources.types.ad_group_asset import AdGroupAsset
27+
from google.ads.googleads.v20.services.services.ad_group_asset_service.client import (
28+
AdGroupAssetServiceClient,
29+
)
30+
from google.ads.googleads.v20.services.types.ad_group_asset_service import (
31+
AdGroupAssetOperation,
32+
MutateAdGroupAssetResult,
33+
MutateAdGroupAssetsResponse,
34+
)
2735

2836

2937
def main(
@@ -32,22 +40,29 @@ def main(
3240
ad_group_id: str,
3341
asset_id: str,
3442
) -> None:
35-
ad_group_asset_service = client.get_service("AdGroupAssetService")
43+
ad_group_asset_service: AdGroupAssetServiceClient = client.get_service(
44+
"AdGroupAssetService"
45+
)
3646
ad_group_asset_resource_name: str = ad_group_asset_service.asset_path(
3747
customer_id, asset_id
3848
)
3949

40-
ad_group_asset_operation = client.get_type("AdGroupAssetOperation")
41-
ad_group_asset_set = ad_group_asset_operation.create
50+
ad_group_asset_operation: AdGroupAssetOperation = client.get_type(
51+
"AdGroupAssetOperation"
52+
)
53+
ad_group_asset_set: AdGroupAsset = ad_group_asset_operation.create
4254
ad_group_asset_set.asset = ad_group_asset_resource_name
4355
ad_group_asset_set.field_type = client.enums.AssetFieldTypeEnum.AD_IMAGE
4456
ad_group_asset_set.ad_group = ad_group_asset_service.ad_group_path(
4557
customer_id, ad_group_id
4658
)
47-
response = ad_group_asset_service.mutate_ad_group_assets(
48-
customer_id=customer_id, operations=[ad_group_asset_operation]
59+
response: MutateAdGroupAssetsResponse = (
60+
ad_group_asset_service.mutate_ad_group_assets(
61+
customer_id=customer_id, operations=[ad_group_asset_operation]
62+
)
4963
)
5064

65+
result: MutateAdGroupAssetResult
5166
for result in response.results:
5267
print(
5368
"Created ad group asset with resource name: "

examples/misc/campaign_report_to_csv.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,20 @@
2828
"""
2929
import argparse
3030
import csv
31+
from collections.abc import Iterator
3132
import sys
3233
import os
3334

3435
from google.ads.googleads.client import GoogleAdsClient
3536
from google.ads.googleads.errors import GoogleAdsException
37+
from google.ads.googleads.v20.services.services.google_ads_service.client import (
38+
GoogleAdsServiceClient,
39+
)
40+
from google.ads.googleads.v20.services.types.google_ads_service import (
41+
GoogleAdsRow,
42+
SearchGoogleAdsStreamRequest,
43+
SearchGoogleAdsStreamResponse,
44+
)
3645

3746

3847
_DEFAULT_FILE_NAME = "campaign_report_to_csv_results.csv"
@@ -66,13 +75,17 @@ def main(
6675
"""
6776
file_dir: str = os.path.dirname(os.path.abspath(__file__))
6877
file_path: str = os.path.join(file_dir, output_file)
69-
ga_service = client.get_service("GoogleAdsService")
78+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
7079

7180
# Issues a search request using streaming.
72-
search_request = client.get_type("SearchGoogleAdsStreamRequest")
81+
search_request: SearchGoogleAdsStreamRequest = client.get_type(
82+
"SearchGoogleAdsStreamRequest"
83+
)
7384
search_request.customer_id = customer_id
7485
search_request.query = _QUERY
75-
stream = ga_service.search_stream(search_request)
86+
stream: Iterator[SearchGoogleAdsStreamResponse] = ga_service.search_stream(
87+
search_request
88+
)
7689

7790
with open(file_path, "w", newline="") as f:
7891
writer = csv.writer(f)
@@ -91,7 +104,9 @@ def main(
91104
if write_headers:
92105
writer.writerow(headers)
93106

107+
batch: SearchGoogleAdsStreamResponse
94108
for batch in stream:
109+
row: GoogleAdsRow
95110
for row in batch.results:
96111
# Use the CSV writer to write the individual GoogleAdsRow
97112
# fields returned in the SearchGoogleAdsStreamResponse.

examples/misc/set_custom_client_timeouts.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,21 @@
2424

2525

2626
import argparse
27+
from collections.abc import Iterator
2728
import sys
2829
from typing import List
2930

3031
from google.ads.googleads.client import GoogleAdsClient
3132
from google.ads.googleads.errors import GoogleAdsException
33+
from google.ads.googleads.v20.services.services.google_ads_service.client import (
34+
GoogleAdsServiceClient,
35+
)
36+
from google.ads.googleads.v20.services.types.google_ads_service import (
37+
GoogleAdsRow,
38+
SearchGoogleAdsRequest,
39+
SearchGoogleAdsStreamRequest,
40+
SearchGoogleAdsStreamResponse,
41+
)
3242
from google.api_core.exceptions import DeadlineExceeded
3343
from google.api_core.retry import Retry
3444

@@ -53,14 +63,18 @@ def make_server_streaming_call(
5363
client: An initialized GoogleAds client.
5464
customer_id: The str Google Ads customer ID.
5565
"""
56-
ga_service = client.get_service("GoogleAdsService")
66+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
5767
campaign_ids: List[str] = []
5868

5969
try:
60-
search_request = client.get_type("SearchGoogleAdsStreamRequest")
70+
search_request: SearchGoogleAdsStreamRequest = client.get_type(
71+
"SearchGoogleAdsStreamRequest"
72+
)
6173
search_request.customer_id = customer_id
6274
search_request.query = _QUERY
63-
stream = ga_service.search_stream(
75+
stream: Iterator[
76+
SearchGoogleAdsStreamResponse
77+
] = ga_service.search_stream(
6478
request=search_request,
6579
# When making any request, an optional "timeout" parameter can be
6680
# provided to specify a client-side response deadline in seconds.
@@ -70,7 +84,9 @@ def make_server_streaming_call(
7084
timeout=_CLIENT_TIMEOUT_SECONDS,
7185
)
7286

87+
batch: SearchGoogleAdsStreamResponse
7388
for batch in stream:
89+
row: GoogleAdsRow
7490
for row in batch.results:
7591
campaign_ids.append(row.campaign.id)
7692

@@ -102,14 +118,16 @@ def make_unary_call(client: GoogleAdsClient, customer_id: str) -> None:
102118
client: An initialized GoogleAds client.
103119
customer_id: The Google Ads customer ID.
104120
"""
105-
ga_service = client.get_service("GoogleAdsService")
121+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
106122
campaign_ids: List[str] = []
107123

108124
try:
109-
search_request = client.get_type("SearchGoogleAdsRequest")
125+
search_request: SearchGoogleAdsRequest = client.get_type(
126+
"SearchGoogleAdsRequest"
127+
)
110128
search_request.customer_id = customer_id
111129
search_request.query = _QUERY
112-
results = ga_service.search(
130+
results: Iterator[GoogleAdsRow] = ga_service.search(
113131
request=search_request,
114132
# When making any request, an optional "retry" parameter can be
115133
# provided to specify its retry behavior. Complete information about
@@ -133,6 +151,7 @@ def make_unary_call(client: GoogleAdsClient, customer_id: str) -> None:
133151
),
134152
)
135153

154+
row: GoogleAdsRow
136155
for row in results:
137156
campaign_ids.append(row.campaign.id)
138157

examples/misc/upload_image_asset.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,15 @@
2323

2424
from google.ads.googleads.client import GoogleAdsClient
2525
from google.ads.googleads.errors import GoogleAdsException
26-
from google.ads.googleads.v19.services.types import (
26+
from google.ads.googleads.v20.resources.types.asset import Asset
27+
from google.ads.googleads.v20.services.services.asset_service.client import (
28+
AssetServiceClient,
29+
)
30+
from google.ads.googleads.v20.services.types.asset_service import (
2731
AssetOperation,
32+
MutateAssetResult,
2833
MutateAssetsResponse,
2934
)
30-
from google.ads.googleads.v19.resources.types import Asset
3135
from examples.utils.example_helpers import get_image_bytes_from_url
3236

3337

@@ -39,7 +43,7 @@ def main(client: GoogleAdsClient, customer_id: str) -> None:
3943
url: str = "https://gaagl.page.link/Eit5"
4044
image_content: bytes = get_image_bytes_from_url(url)
4145

42-
asset_service = client.get_service("AssetService")
46+
asset_service: AssetServiceClient = client.get_service("AssetService")
4347
asset_operation: AssetOperation = client.get_type("AssetOperation")
4448
asset: Asset = asset_operation.create
4549
asset.type_ = client.enums.AssetTypeEnum.IMAGE
@@ -60,6 +64,7 @@ def main(client: GoogleAdsClient, customer_id: str) -> None:
6064
)
6165
)
6266
print("Uploaded file(s):")
67+
row: MutateAssetResult
6368
for row in mutate_asset_response.results:
6469
print(f"\tResource name: {row.resource_name}")
6570

0 commit comments

Comments
 (0)