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 =
URL for base.
'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.
32 33 34 35 36 37 |
# File 'app/services/seo/keywords_people_use_client.rb', line 32 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
57 58 59 60 61 62 |
# File 'app/services/seo/keywords_people_use_client.rb', line 57 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
45 46 47 48 49 50 51 |
# File 'app/services/seo/keywords_people_use_client.rb', line 45 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
68 69 70 71 72 73 |
# File 'app/services/seo/keywords_people_use_client.rb', line 68 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
96 97 98 99 100 |
# File 'app/services/seo/keywords_people_use_client.rb', line 96 def quora_questions(keyword) request(:get, '/api/quora', { keyword: keyword }) end |
#reddit_questions(keyword) ⇒ Response
Search Reddit and Quora for topic questions and discussions
87 88 89 90 91 |
# File 'app/services/seo/keywords_people_use_client.rb', line 87 def reddit_questions(keyword) request(:get, '/api/reddit', { keyword: keyword }) end |
#search_all(keyword, country: 'us') ⇒ Response
Combined search across all sources
106 107 108 109 110 111 |
# File 'app/services/seo/keywords_people_use_client.rb', line 106 def search_all(keyword, country: 'us') request(:get, '/api/search', { keyword: keyword, country: country }) end |
#semantic_keywords(keyword) ⇒ Response
Get semantic/related keyword variations
78 79 80 81 82 |
# File 'app/services/seo/keywords_people_use_client.rb', line 78 def semantic_keywords(keyword) request(:get, '/api/semantic', { keyword: keyword }) end |