Skip to content

Commit 862a074

Browse files
authored
Added annotations to examples/remarketing (#953)
1 parent d365bdc commit 862a074

16 files changed

+1388
-583
lines changed

examples/remarketing/add_conversion_action.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,31 @@
2121

2222
from google.ads.googleads.client import GoogleAdsClient
2323
from google.ads.googleads.errors import GoogleAdsException
24+
from google.ads.googleads.v20.resources.types.conversion_action import (
25+
ConversionAction,
26+
)
27+
from google.ads.googleads.v20.services.services.conversion_action_service import (
28+
ConversionActionServiceClient,
29+
)
30+
from google.ads.googleads.v20.services.types.conversion_action_service import (
31+
ConversionActionOperation,
32+
MutateConversionActionsResponse,
33+
)
2434

2535

2636
# [START add_conversion_action]
27-
def main(client, customer_id):
28-
conversion_action_service = client.get_service("ConversionActionService")
37+
def main(client: GoogleAdsClient, customer_id: str) -> None:
38+
conversion_action_service: ConversionActionServiceClient = (
39+
client.get_service("ConversionActionService")
40+
)
2941

3042
# Create the operation.
31-
conversion_action_operation = client.get_type("ConversionActionOperation")
43+
conversion_action_operation: ConversionActionOperation = client.get_type(
44+
"ConversionActionOperation"
45+
)
3246

3347
# Create conversion action.
34-
conversion_action = conversion_action_operation.create
48+
conversion_action: ConversionAction = conversion_action_operation.create
3549

3650
# Note that conversion action names must be unique. If a conversion action
3751
# already exists with the specified conversion_action_name, the create
@@ -47,12 +61,14 @@ def main(client, customer_id):
4761
conversion_action.view_through_lookback_window_days = 15
4862

4963
# Create a value settings object.
50-
value_settings = conversion_action.value_settings
64+
value_settings: ConversionAction.ValueSettings = (
65+
conversion_action.value_settings
66+
)
5167
value_settings.default_value = 15.0
5268
value_settings.always_use_default_value = True
5369

5470
# Add the conversion action.
55-
conversion_action_response = (
71+
conversion_action_response: MutateConversionActionsResponse = (
5672
conversion_action_service.mutate_conversion_actions(
5773
customer_id=customer_id,
5874
operations=[conversion_action_operation],
@@ -67,7 +83,7 @@ def main(client, customer_id):
6783

6884

6985
if __name__ == "__main__":
70-
parser = argparse.ArgumentParser(
86+
parser: argparse.ArgumentParser = argparse.ArgumentParser(
7187
description="Adds a conversion action for specified customer."
7288
)
7389
# The following argument(s) should be provided to run the example.
@@ -78,11 +94,13 @@ def main(client, customer_id):
7894
required=True,
7995
help="The Google Ads customer ID.",
8096
)
81-
args = parser.parse_args()
97+
args: argparse.Namespace = parser.parse_args()
8298

8399
# GoogleAdsClient will read the google-ads.yaml configuration file in the
84100
# home directory if none is specified.
85-
googleads_client = GoogleAdsClient.load_from_storage(version="v20")
101+
googleads_client: GoogleAdsClient = GoogleAdsClient.load_from_storage(
102+
version="v20"
103+
)
86104

87105
try:
88106
main(googleads_client, args.customer_id)

examples/remarketing/add_conversion_based_user_list.py

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,30 @@
2222
import argparse
2323
import sys
2424
from uuid import uuid4
25+
from typing import List
2526

2627
from google.ads.googleads.client import GoogleAdsClient
2728
from google.ads.googleads.errors import GoogleAdsException
29+
from google.ads.googleads.v20.common.types.user_lists import UserListActionInfo
30+
from google.ads.googleads.v20.resources.types.user_list import UserList
31+
from google.ads.googleads.v20.services.services.conversion_action_service import (
32+
ConversionActionServiceClient,
33+
)
34+
from google.ads.googleads.v20.services.services.user_list_service import (
35+
UserListServiceClient,
36+
)
37+
from google.ads.googleads.v20.services.types.user_list_service import (
38+
UserListOperation,
39+
MutateUserListsResponse,
40+
)
2841

2942

3043
# [START add_conversion_based_user_list]
31-
def main(client, customer_id, conversion_action_ids):
44+
def main(
45+
client: GoogleAdsClient,
46+
customer_id: str,
47+
conversion_action_ids: List[str],
48+
) -> None:
3249
"""Creates a combination user list.
3350
3451
Args:
@@ -38,15 +55,21 @@ def main(client, customer_id, conversion_action_ids):
3855
user list.
3956
"""
4057
# Get the UserListService and ConversionActionService clients.
41-
user_list_service = client.get_service("UserListService")
42-
conversion_action_service = client.get_service("ConversionActionService")
58+
user_list_service: UserListServiceClient = client.get_service(
59+
"UserListService"
60+
)
61+
conversion_action_service: ConversionActionServiceClient = (
62+
client.get_service("ConversionActionService")
63+
)
4364

4465
# Create a list of UserListActionInfo objects for the given conversion
4566
# actions. These specify the conversion actions that, when triggered, will
4667
# cause a user to be added to a UserList.
47-
user_list_action_info_list = []
68+
user_list_action_info_list: List[UserListActionInfo] = []
4869
for conversion_action_id in conversion_action_ids:
49-
user_list_action_info = client.get_type("UserListActionInfo")
70+
user_list_action_info: UserListActionInfo = client.get_type(
71+
"UserListActionInfo"
72+
)
5073
user_list_action_info.conversion_action = (
5174
conversion_action_service.conversion_action_path(
5275
customer_id, conversion_action_id
@@ -55,8 +78,10 @@ def main(client, customer_id, conversion_action_ids):
5578
user_list_action_info_list.append(user_list_action_info)
5679

5780
# Create a UserListOperation and populate the UserList.
58-
user_list_operation = client.get_type("UserListOperation")
59-
user_list = user_list_operation.create
81+
user_list_operation: UserListOperation = client.get_type(
82+
"UserListOperation"
83+
)
84+
user_list: UserList = user_list_operation.create
6085
user_list.name = f"Example BasicUserList #{uuid4()}"
6186
user_list.description = (
6287
"A list of people who have triggered one or more conversion actions"
@@ -67,7 +92,7 @@ def main(client, customer_id, conversion_action_ids):
6792
user_list.basic_user_list.actions.extend(user_list_action_info_list)
6893

6994
# Issue a mutate request to add the user list, then print the results.
70-
response = user_list_service.mutate_user_lists(
95+
response: MutateUserListsResponse = user_list_service.mutate_user_lists(
7196
customer_id=customer_id, operations=[user_list_operation]
7297
)
7398
print(
@@ -78,7 +103,7 @@ def main(client, customer_id, conversion_action_ids):
78103

79104

80105
if __name__ == "__main__":
81-
parser = argparse.ArgumentParser(
106+
parser: argparse.ArgumentParser = argparse.ArgumentParser(
82107
description="Creates a basic user list based on conversion actions."
83108
)
84109
# The following argument(s) should be provided to run the example.
@@ -97,11 +122,13 @@ def main(client, customer_id, conversion_action_ids):
97122
required=True,
98123
help="The IDs of the conversion actions for the basic user list.",
99124
)
100-
args = parser.parse_args()
125+
args: argparse.Namespace = parser.parse_args()
101126

102127
# GoogleAdsClient will read the google-ads.yaml configuration file in the
103128
# home directory if none is specified.
104-
googleads_client = GoogleAdsClient.load_from_storage(version="v20")
129+
googleads_client: GoogleAdsClient = GoogleAdsClient.load_from_storage(
130+
version="v20"
131+
)
105132

106133
try:
107134
main(googleads_client, args.customer_id, args.conversion_action_ids)

examples/remarketing/add_custom_audience.py

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,40 @@
2626

2727
from google.ads.googleads.client import GoogleAdsClient
2828
from google.ads.googleads.errors import GoogleAdsException
29-
30-
31-
def main(client, customer_id):
29+
from google.ads.googleads.v20.enums.types.custom_audience_member_type import (
30+
CustomAudienceMemberTypeEnum,
31+
)
32+
from google.ads.googleads.v20.resources.types.custom_audience import (
33+
CustomAudience,
34+
CustomAudienceMember,
35+
)
36+
from google.ads.googleads.v20.services.types.custom_audience_service import (
37+
CustomAudienceOperation,
38+
MutateCustomAudiencesResponse,
39+
)
40+
from google.ads.googleads.v20.services.services.custom_audience_service import (
41+
CustomAudienceServiceClient,
42+
)
43+
44+
45+
def main(client: GoogleAdsClient, customer_id: str) -> None:
3246
"""The main method that creates all necessary entities for the example.
3347
3448
Args:
3549
client: an initialized GoogleAdsClient instance.
3650
customer_id: a client customer ID.
3751
"""
38-
custom_audience_service = client.get_service("CustomAudienceService")
52+
custom_audience_service: CustomAudienceServiceClient = client.get_service(
53+
"CustomAudienceService"
54+
)
3955

4056
# Create a custom audience operation.
41-
custom_audience_operation = client.get_type("CustomAudienceOperation")
57+
custom_audience_operation: CustomAudienceOperation = client.get_type(
58+
"CustomAudienceOperation"
59+
)
4260

4361
# Create a custom audience
44-
custom_audience = custom_audience_operation.create
62+
custom_audience: CustomAudience = custom_audience_operation.create
4563
custom_audience.name = f"Example CustomAudience #{uuid4()}"
4664
custom_audience.description = (
4765
"Custom audiences who have searched specific terms on Google Search."
@@ -54,25 +72,27 @@ def main(client, customer_id):
5472
custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED
5573
# List of members that this custom audience is composed of. Customers that
5674
# meet any of the membership conditions will be reached.
57-
member_type_enum = client.enums.CustomAudienceMemberTypeEnum
75+
member_type_enum: CustomAudienceMemberTypeEnum = (
76+
client.enums.CustomAudienceMemberTypeEnum
77+
)
5878

59-
member1 = create_custom_audience_member(
79+
member1: CustomAudienceMember = create_custom_audience_member(
6080
client, member_type_enum.KEYWORD, "mars cruise"
6181
)
6282

63-
member2 = create_custom_audience_member(
83+
member2: CustomAudienceMember = create_custom_audience_member(
6484
client, member_type_enum.KEYWORD, "jupiter cruise"
6585
)
6686

67-
member3 = create_custom_audience_member(
87+
member3: CustomAudienceMember = create_custom_audience_member(
6888
client, member_type_enum.URL, "http://www.example.com/locations/mars"
6989
)
7090

71-
member4 = create_custom_audience_member(
91+
member4: CustomAudienceMember = create_custom_audience_member(
7292
client, member_type_enum.URL, "http://www.example.com/locations/jupiter"
7393
)
7494

75-
member5 = create_custom_audience_member(
95+
member5: CustomAudienceMember = create_custom_audience_member(
7696
client, member_type_enum.APP, "com.google.android.apps.adwords"
7797
)
7898

@@ -81,8 +101,10 @@ def main(client, customer_id):
81101
)
82102

83103
# Add the custom audience.
84-
custom_audience_response = custom_audience_service.mutate_custom_audiences(
85-
customer_id=customer_id, operations=[custom_audience_operation]
104+
custom_audience_response: MutateCustomAudiencesResponse = (
105+
custom_audience_service.mutate_custom_audiences(
106+
customer_id=customer_id, operations=[custom_audience_operation]
107+
)
86108
)
87109

88110
print(
@@ -91,7 +113,11 @@ def main(client, customer_id):
91113
)
92114

93115

94-
def create_custom_audience_member(client, member_type, value):
116+
def create_custom_audience_member(
117+
client: GoogleAdsClient,
118+
member_type: CustomAudienceMemberTypeEnum,
119+
value: str,
120+
) -> CustomAudienceMember:
95121
"""Creates a custom audience member for a given member type and value.
96122
97123
Args:
@@ -102,10 +128,12 @@ def create_custom_audience_member(client, member_type, value):
102128
Returns:
103129
A newly created CustomAudienceMember.
104130
"""
105-
member = client.get_type("CustomAudienceMember")
131+
member: CustomAudienceMember = client.get_type("CustomAudienceMember")
106132
member.member_type = member_type
107133

108-
member_type_enum = client.enums.CustomAudienceMemberTypeEnum
134+
member_type_enum: CustomAudienceMemberTypeEnum = (
135+
client.enums.CustomAudienceMemberTypeEnum
136+
)
109137

110138
if member_type == member_type_enum.KEYWORD:
111139
member.keyword = value
@@ -122,7 +150,7 @@ def create_custom_audience_member(client, member_type, value):
122150

123151

124152
if __name__ == "__main__":
125-
parser = argparse.ArgumentParser(
153+
parser: argparse.ArgumentParser = argparse.ArgumentParser(
126154
description="Adds a custom audience for a specified customer."
127155
)
128156
# The following argument(s) should be provided to run the example.
@@ -133,11 +161,13 @@ def create_custom_audience_member(client, member_type, value):
133161
required=True,
134162
help="The Google Ads customer ID.",
135163
)
136-
args = parser.parse_args()
164+
args: argparse.Namespace = parser.parse_args()
137165

138166
# GoogleAdsClient will read the google-ads.yaml configuration file in the
139167
# home directory if none is specified.
140-
googleads_client = GoogleAdsClient.load_from_storage(version="v20")
168+
googleads_client: GoogleAdsClient = GoogleAdsClient.load_from_storage(
169+
version="v20"
170+
)
141171

142172
try:
143173
main(googleads_client, args.customer_id)

0 commit comments

Comments
 (0)