123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import argparse
- import sys
- from google.ads.googleads.client import GoogleAdsClient
- from google.ads.googleads.errors import GoogleAdsException
-
- _DEFAULT_LOCATION_IDS = ["2158"]
- _DEFAULT_LANGUAGE_ID = "1018"
-
- 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)
-
-
-
- if not (keyword_texts or page_url):
- raise ValueError(
- "At least one of keywords or page URL is required, "
- "but neither was specified."
- )
-
-
-
-
- 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
-
-
-
- if not keyword_texts and page_url:
- request.url_seed.url = url_seed
-
-
-
-
- if keyword_texts and not page_url:
- request.keyword_seed.keywords.extend(keyword_texts)
-
-
-
-
- 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, "7400705511", ["2840"], "1000", ["裝潢"], None)
- print(list_keywords)
|