Your Name преди 3 години
родител
ревизия
3b4cb8736e
променени са 3 файла, в които са добавени 31 реда и са изтрити 117 реда
  1. 28 117
      hhh/ads/kw_planner.py
  2. 1 0
      similar_server/main.py
  3. 2 0
      similar_web/main.py

+ 28 - 117
hhh/ads/kw_planner.py

@@ -1,36 +1,19 @@
-#!/usr/bin/env python
-# Copyright 2019 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""This example generates keyword ideas from a list of seed keywords."""
-
-
 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 = ["1023191"]  # location ID for New York, NY
+_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 = "1000"  # language ID for English
-
-
+_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
@@ -46,7 +29,7 @@ def main(
     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):
@@ -54,7 +37,7 @@ def main(
             "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.
@@ -64,40 +47,36 @@ def main(
     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 = 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
-        print(
-            f'Keyword idea text "{idea.text}" has '
-            f'"{idea.keyword_idea_metrics.avg_monthly_searches}" '
-            f'average monthly searches and "{competition_value}" '
-            "competition.\n"
-        )
-    # [END generate_keyword_ideas]
-
-
+        list_keywords.append(idea)
+    
+    return list_keywords
+ 
 def map_keywords_to_string_values(client, keyword_texts):
     keyword_protos = []
     for keyword in keyword_texts:
@@ -105,15 +84,13 @@ def map_keywords_to_string_values(client, keyword_texts):
         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.
     """
@@ -121,83 +98,17 @@ def _map_locations_ids_to_resource_names(client, location_ids):
         "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")
 
 
-if __name__ == "__main__":
-    # GoogleAdsClient will read the google-ads.yaml configuration file in the
-    # home directory if none is specified.
-    googleads_client = GoogleAdsClient.load_from_storage(version="v7")
 
-    parser = argparse.ArgumentParser(
-        description="Generates keyword ideas from a list of seed keywords."
-    )
+#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)
 
-    # The following argument(s) should be provided to run the example.
-    parser.add_argument(
-        "-c",
-        "--customer_id",
-        type=str,
-        required=True,
-        help="The Google Ads customer ID.",
-    )
-    parser.add_argument(
-        "-k",
-        "--keyword_texts",
-        nargs="+",
-        type=str,
-        required=False,
-        default=[],
-        help="Space-delimited list of starter keywords",
-    )
-    # To determine the appropriate location IDs, see:
-    # https://developers.google.com/google-ads/api/reference/data/geotargets
-    parser.add_argument(
-        "-l",
-        "--location_ids",
-        nargs="+",
-        type=str,
-        required=False,
-        default=_DEFAULT_LOCATION_IDS,
-        help="Space-delimited list of location criteria IDs",
-    )
-    # To determine the appropriate language ID, see:
-    # https://developers.google.com/google-ads/api/reference/data/codes-formats#expandable-7
-    parser.add_argument(
-        "-i",
-        "--language_id",
-        type=str,
-        required=False,
-        default=_DEFAULT_LANGUAGE_ID,
-        help="The language criterion ID.",
-    )
-    # Optional: Specify a URL string related to your business to generate ideas.
-    parser.add_argument(
-        "-p",
-        "--page_url",
-        type=str,
-        required=False,
-        help="A URL string related to your business",
-    )
+print(list_keywords)
 
-    args = parser.parse_args()
 
-    try:
-        main(
-            googleads_client,
-            args.customer_id,
-            args.location_ids,
-            args.language_id,
-            args.keyword_texts,
-            args.page_url,
-        )
-    except GoogleAdsException as ex:
-        print(
-            f'Request with ID "{ex.request_id}" failed with status '
-            f'"{ex.error.code().name}" and includes the following errors:'
-        )
-        for error in ex.failure.errors:
-            print(f'\tError with message "{error.message}".')
-            if error.location:
-                for field_path_element in error.location.field_path_elements:
-                    print(f"\t\tOn field: {field_path_element.field_name}")
-        sys.exit(1)

+ 1 - 0
similar_server/main.py

@@ -10,6 +10,7 @@ import json
 import ast
 from fastapi.responses import JSONResponse
 from fastapi.middleware.cors import CORSMiddleware
+import kw_planner
 db = dataset.connect('sqlite:///similar.db')
 
 app = FastAPI()

+ 2 - 0
similar_web/main.py

@@ -109,6 +109,8 @@ async def random_kw():
     return logs
 
 
+
+
 @app.post("/kw_dm")
 async def get_domain_by_keyword(req:kw_req):
     ls = domain_filter(search(req.keyword,num_results=20))