Class: Seo::KeywordsPeopleUseClient
- Inherits:
-
Object
- Object
- Seo::KeywordsPeopleUseClient
- Defined in:
- app/services/seo/keywords_people_use_client.rb
Overview
Client for KeywordsPeopleUse REST API
Provides keyword research including People Also Ask, autocomplete, and semantic data.
Features available:
- Google People Also Ask questions
- Google Autocomplete suggestions
- Reddit and Quora questions
- Semantic keyword data
Defined Under Namespace
Classes: AuthenticationError, Error, Response
Constant Summary collapse
- BASE_URL =
'https://keywordspeopleuse.com'
Instance Method Summary collapse
-
#autocomplete(keyword, country: 'us') ⇒ Response
Get Google Autocomplete suggestions.
-
#initialize(api_key: nil) ⇒ KeywordsPeopleUseClient
constructor
A new instance of KeywordsPeopleUseClient.
-
#keyword_generator(keyword, country: 'us', language: 'en') ⇒ Response
Generate keyword ideas from a seed keyword Returns People Also Ask questions and related searches.
-
#people_also_ask(keyword, country: 'us') ⇒ Response
Get People Also Ask questions from Google.
-
#quora_questions(keyword) ⇒ Response
Search Quora for topic questions.
-
#reddit_questions(keyword) ⇒ Response
Search Reddit and Quora for topic questions and discussions.
-
#search_all(keyword, country: 'us') ⇒ Response
Combined search across all sources.
-
#semantic_keywords(keyword) ⇒ Response
Get semantic/related keyword variations.
Constructor Details
#initialize(api_key: nil) ⇒ KeywordsPeopleUseClient
Returns a new instance of KeywordsPeopleUseClient.
30 31 32 33 34 35 |
# File 'app/services/seo/keywords_people_use_client.rb', line 30 def initialize(api_key: nil) @api_key = api_key || Heatwave::Configuration.fetch(:keywordspeopleuse, :api_key) raise AuthenticationError, 'KeywordsPeopleUse API key not configured' if @api_key.blank? @connection = build_connection end |
Instance Method Details
#autocomplete(keyword, country: 'us') ⇒ Response
Get Google Autocomplete suggestions
55 56 57 58 59 60 |
# File 'app/services/seo/keywords_people_use_client.rb', line 55 def autocomplete(keyword, country: 'us') request(:get, '/api/suggestions', { keyword: keyword, country: country }) end |
#keyword_generator(keyword, country: 'us', language: 'en') ⇒ Response
Generate keyword ideas from a seed keyword
Returns People Also Ask questions and related searches
43 44 45 46 47 48 49 |
# File 'app/services/seo/keywords_people_use_client.rb', line 43 def keyword_generator(keyword, country: 'us', language: 'en') request(:get, '/api/clustering', { keyword: keyword, country: country, language: language }) end |
#people_also_ask(keyword, country: 'us') ⇒ Response
Get People Also Ask questions from Google
66 67 68 69 70 71 |
# File 'app/services/seo/keywords_people_use_client.rb', line 66 def people_also_ask(keyword, country: 'us') request(:get, '/api/alsoask', { keyword: keyword, country: country }) end |
#quora_questions(keyword) ⇒ Response
Search Quora for topic questions
94 95 96 97 98 |
# File 'app/services/seo/keywords_people_use_client.rb', line 94 def quora_questions(keyword) request(:get, '/api/quora', { keyword: keyword }) end |
#reddit_questions(keyword) ⇒ Response
Search Reddit and Quora for topic questions and discussions
85 86 87 88 89 |
# File 'app/services/seo/keywords_people_use_client.rb', line 85 def reddit_questions(keyword) request(:get, '/api/reddit', { keyword: keyword }) end |
#search_all(keyword, country: 'us') ⇒ Response
Combined search across all sources
104 105 106 107 108 109 |
# File 'app/services/seo/keywords_people_use_client.rb', line 104 def search_all(keyword, country: 'us') request(:get, '/api/search', { keyword: keyword, country: country }) end |
#semantic_keywords(keyword) ⇒ Response
Get semantic/related keyword variations
76 77 78 79 80 |
# File 'app/services/seo/keywords_people_use_client.rb', line 76 def semantic_keywords(keyword) request(:get, '/api/semantic', { keyword: keyword }) end |