| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | 
							- import argparse
 
- import sys
 
- from google.ads.googleads.client import GoogleAdsClient
 
- from google.ads.googleads.errors import GoogleAdsException
 
-  
 
- # Location IDs are listed here:
 
- # https://developers.google.com/google-ads/api/reference/data/geotargets
 
- # and they can also be retrieved using the GeoTargetConstantService as shown
 
- # here: https://developers.google.com/google-ads/api/docs/targeting/location-targeting
 
- _DEFAULT_LOCATION_IDS = ["2158"]  # location ID for New York, NY
 
- # A language criterion ID. For example, specify 1000 for English. For more
 
- # information on determining this value, see the below link:
 
- # https://developers.google.com/google-ads/api/reference/data/codes-formats#expandable-7
 
- _DEFAULT_LANGUAGE_ID = "1018"  # language ID for English
 
- ## 1018 chinese  
 
-  
 
- # [START generate_keyword_ideas]
 
- def main(
 
-     client, customer_id, location_ids, language_id, keyword_texts, page_url
 
- ):
 
-     keyword_plan_idea_service = client.get_service("KeywordPlanIdeaService")
 
-     keyword_competition_level_enum = client.get_type(
 
-         "KeywordPlanCompetitionLevelEnum"
 
-     ).KeywordPlanCompetitionLevel
 
-     keyword_plan_network = client.get_type(
 
-         "KeywordPlanNetworkEnum"
 
-     ).KeywordPlanNetwork.GOOGLE_SEARCH_AND_PARTNERS
 
-     location_rns = _map_locations_ids_to_resource_names(client, location_ids)
 
-     language_rn = client.get_service(
 
-         "LanguageConstantService"
 
-     ).language_constant_path(language_id)
 
-  
 
-     # Either keywords or a page_url are required to generate keyword ideas
 
-     # so this raises an error if neither are provided.
 
-     if not (keyword_texts or page_url):
 
-         raise ValueError(
 
-             "At least one of keywords or page URL is required, "
 
-             "but neither was specified."
 
-         )
 
-  
 
-     # Only one of the fields "url_seed", "keyword_seed", or
 
-     # "keyword_and_url_seed" can be set on the request, depending on whether
 
-     # keywords, a page_url or both were passed to this function.
 
-     request = client.get_type("GenerateKeywordIdeasRequest")
 
-     request.customer_id = customer_id
 
-     request.language = language_rn
 
-     request.geo_target_constants = location_rns
 
-     request.include_adult_keywords = False
 
-     request.keyword_plan_network = keyword_plan_network
 
-  
 
-     # To generate keyword ideas with only a page_url and no keywords we need
 
-     # to initialize a UrlSeed object with the page_url as the "url" field.
 
-     if not keyword_texts and page_url:
 
-         request.url_seed.url = url_seed
 
-  
 
-     # To generate keyword ideas with only a list of keywords and no page_url
 
-     # we need to initialize a KeywordSeed object and set the "keywords" field
 
-     # to be a list of StringValue objects.
 
-     if keyword_texts and not page_url:
 
-         request.keyword_seed.keywords.extend(keyword_texts)
 
-  
 
-     # To generate keyword ideas using both a list of keywords and a page_url we
 
-     # need to initialize a KeywordAndUrlSeed object, setting both the "url" and
 
-     # "keywords" fields.
 
-     if keyword_texts and page_url:
 
-         request.keyword_and_url_seed.url = page_url
 
-         request.keyword_and_url_seed.keywords.extend(keyword_texts)
 
-  
 
-     keyword_ideas = keyword_plan_idea_service.generate_keyword_ideas(
 
-         request=request
 
-     )
 
-     
 
-     list_keywords = []
 
-     for idea in keyword_ideas:
 
-         competition_value = idea.keyword_idea_metrics.competition.name
 
-         list_keywords.append(idea)
 
-     
 
-     return list_keywords
 
-  
 
- def map_keywords_to_string_values(client, keyword_texts):
 
-     keyword_protos = []
 
-     for keyword in keyword_texts:
 
-         string_val = client.get_type("StringValue")
 
-         string_val.value = keyword
 
-         keyword_protos.append(string_val)
 
-     return keyword_protos
 
-  
 
-  
 
- def _map_locations_ids_to_resource_names(client, location_ids):
 
-     """Converts a list of location IDs to resource names.
 
-     Args:
 
-         client: an initialized GoogleAdsClient instance.
 
-         location_ids: a list of location ID strings.
 
-     Returns:
 
-         a list of resource name strings using the given location IDs.
 
-     """
 
-     build_resource_name = client.get_service(
 
-         "GeoTargetConstantService"
 
-     ).geo_target_constant_path
 
-     return [build_resource_name(location_id) for location_id in location_ids]
 
-  
 
-  
 
- from google.ads.googleads.client import GoogleAdsClient
 
- client = GoogleAdsClient.load_from_storage("c:/users/jared/downloads/ads.yaml")
 
- #list_keywords = main(client, "4810313721", ["2840"], "1000", ["mortgage"], None)
 
- #list_keywords = main(client, "7400705511", ["2840"], "1000", ["mortgage"], None)
 
- list_keywords = main(client, "7400705511", ["2840"], "1000", ["裝潢"], None)
 
- print(list_keywords)
 
 
  |