2626
2727from google .ads .googleads .client import GoogleAdsClient
2828from 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
124152if __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