mencoro 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -5
- data/docs/AccountApi.md +1 -1
- data/docs/AnalyticsApi.md +96 -86
- data/docs/AsyncJobResource.md +3 -1
- data/docs/AsyncJobResourceError.md +20 -0
- data/docs/BillingApi.md +1 -1
- data/docs/CitedSourceRow.md +32 -0
- data/docs/CitedSourcesResponse.md +20 -0
- data/docs/ClusterBreakdownRow.md +82 -0
- data/docs/ClustersApi.md +74 -0
- data/docs/CompetitorCoOccurrenceResponse.md +18 -0
- data/docs/CompetitorCoOccurrenceRow.md +36 -0
- data/docs/CompetitorShareOfVoice.md +20 -0
- data/docs/CreateInvitation201Response.md +4 -0
- data/docs/CreateInvitationRequest.md +3 -1
- data/docs/CreateInvitationRequestProjectAccess.md +20 -0
- data/docs/DiscoveryApi.md +1 -1
- data/docs/GetMeStats200ResponseProjects.md +1 -1
- data/docs/GetOrganizationOverview200ResponseAggregate.md +1 -1
- data/docs/GetOrganizationOverview200ResponseProjectsInner.md +8 -2
- data/docs/GetOrganizationStats200ResponseInvitations.md +1 -1
- data/docs/GetOrganizationStats200ResponseMembers.md +1 -1
- data/docs/GetOrganizationStats200ResponseProjects.md +1 -1
- data/docs/InvitationResource.md +5 -1
- data/docs/JobsApi.md +1 -1
- data/docs/KeywordListingResource.md +12 -10
- data/docs/KeywordListingResourceCarriedPositions.md +24 -0
- data/docs/KeywordListingResourceCarriedPositionsSerp.md +20 -0
- data/docs/ListProjects200Response.md +1 -1
- data/docs/MemberResource.md +5 -1
- data/docs/MembersApi.md +78 -0
- data/docs/MentionMatchResource.md +44 -0
- data/docs/MentionSampleResponse.md +46 -0
- data/docs/MentionTypeCounts.md +26 -0
- data/docs/OrganizationsApi.md +3 -3
- data/docs/PerCompetitorSentiment.md +30 -0
- data/docs/PerEngineSentiment.md +28 -0
- data/docs/PerEntityMetrics.md +32 -0
- data/docs/PositionDistributionBucket.md +20 -0
- data/docs/ProjectMentionMixResponse.md +22 -0
- data/docs/ProjectMentionSamplesResponse.md +20 -0
- data/docs/ProjectRankTrackingClusterBreakdown.md +20 -0
- data/docs/ProjectRankTrackingStats.md +96 -0
- data/docs/ProjectRankTrackingTimeSeries.md +20 -0
- data/docs/ProjectSentimentBreakdown.md +20 -0
- data/docs/ProjectedMonthlyChecksResource.md +2 -2
- data/docs/ProjectsApi.md +76 -2
- data/docs/SearchTrackedQueryMentionMatches200Response.md +20 -0
- data/docs/SearchTrackedQuerySerpMatches200Response.md +20 -0
- data/docs/SerpMatchResource.md +30 -0
- data/docs/SetMemberProjectAccessRequest.md +20 -0
- data/docs/SubscriptionResource.md +1 -1
- data/docs/TimeSeriesPoint.md +22 -0
- data/docs/TrackedQueriesApi.md +175 -3
- data/docs/TrackedQueryCountResource.md +1 -1
- data/docs/TrackedQueryMoverRow.md +58 -0
- data/docs/TrackedQueryMoversResponse.md +22 -0
- data/docs/TrackedQueryRankTrackingTimeSeries.md +20 -0
- data/docs/TrackedQueryUsageResource.md +1 -1
- data/lib/mencoro/api/account_api.rb +3 -3
- data/lib/mencoro/api/analytics_api.rb +103 -85
- data/lib/mencoro/api/billing_api.rb +3 -3
- data/lib/mencoro/api/captures_api.rb +2 -2
- data/lib/mencoro/api/clusters_api.rb +76 -1
- data/lib/mencoro/api/discovery_api.rb +3 -3
- data/lib/mencoro/api/invitations_api.rb +1 -1
- data/lib/mencoro/api/jobs_api.rb +3 -3
- data/lib/mencoro/api/members_api.rb +95 -1
- data/lib/mencoro/api/organization_operations_api.rb +1 -1
- data/lib/mencoro/api/organizations_api.rb +7 -7
- data/lib/mencoro/api/projects_api.rb +80 -5
- data/lib/mencoro/api/tracked_queries_api.rb +220 -8
- data/lib/mencoro/api_client.rb +2 -2
- data/lib/mencoro/api_error.rb +1 -1
- data/lib/mencoro/api_model_base.rb +1 -1
- data/lib/mencoro/configuration.rb +1 -1
- data/lib/mencoro/models/accepted_job_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_report_resource.rb +1 -1
- data/lib/mencoro/models/ai_response_resource.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +1 -1
- data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/async_job_resource.rb +17 -7
- data/lib/mencoro/models/async_job_resource_error.rb +217 -0
- data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +1 -1
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +1 -1
- data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/batch_targets_request_data.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome.rb +1 -1
- data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +1 -1
- data/lib/mencoro/models/brand_profile_resource.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +1 -1
- data/lib/mencoro/models/change_member_role_request.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +1 -1
- data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +1 -1
- data/lib/mencoro/models/citation_resource.rb +1 -1
- data/lib/mencoro/models/cited_source_row.rb +298 -0
- data/lib/mencoro/models/cited_sources_response.rb +192 -0
- data/lib/mencoro/models/cluster_breakdown_row.rb +580 -0
- data/lib/mencoro/models/cluster_membership_request_data.rb +1 -1
- data/lib/mencoro/models/competitor_co_occurrence_response.rb +166 -0
- data/lib/mencoro/models/competitor_co_occurrence_row.rb +318 -0
- data/lib/mencoro/models/competitor_resource.rb +1 -1
- data/lib/mencoro/models/competitor_share_of_voice.rb +174 -0
- data/lib/mencoro/models/create_competitor_request.rb +1 -1
- data/lib/mencoro/models/create_invitation200_response.rb +1 -1
- data/lib/mencoro/models/create_invitation201_response.rb +60 -2
- data/lib/mencoro/models/create_invitation_request.rb +15 -5
- data/lib/mencoro/models/create_invitation_request_project_access.rb +201 -0
- data/lib/mencoro/models/create_organization201_response.rb +1 -1
- data/lib/mencoro/models/create_organization_request.rb +1 -1
- data/lib/mencoro/models/create_project_request.rb +1 -1
- data/lib/mencoro/models/create_project_request_competitors_inner.rb +1 -1
- data/lib/mencoro/models/create_query_cluster409_response.rb +1 -1
- data/lib/mencoro/models/create_query_cluster_request.rb +1 -1
- data/lib/mencoro/models/delete_query_cluster200_response.rb +1 -1
- data/lib/mencoro/models/entitlements_resource.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response.rb +1 -1
- data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_organizations.rb +1 -1
- data/lib/mencoro/models/get_me_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_membership_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response.rb +1 -1
- data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response.rb +1 -1
- data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +2 -2
- data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +34 -3
- data/lib/mencoro/models/get_organization_stats200_response.rb +1 -1
- data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_members.rb +4 -7
- data/lib/mencoro/models/get_organization_stats200_response_projects.rb +2 -2
- data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response.rb +1 -1
- data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +1 -1
- data/lib/mencoro/models/invitation_resource.rb +64 -6
- data/lib/mencoro/models/keyword_listing_resource.rb +40 -14
- data/lib/mencoro/models/keyword_listing_resource_carried_positions.rb +187 -0
- data/lib/mencoro/models/keyword_listing_resource_carried_positions_serp.rb +192 -0
- data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +1 -1
- data/lib/mencoro/models/list_ai_responses200_response.rb +1 -1
- data/lib/mencoro/models/list_competitors200_response.rb +1 -1
- data/lib/mencoro/models/list_invitations200_response.rb +1 -1
- data/lib/mencoro/models/list_keyword_listings200_response.rb +1 -1
- data/lib/mencoro/models/list_members200_response.rb +1 -1
- data/lib/mencoro/models/list_organizations200_response.rb +1 -1
- data/lib/mencoro/models/list_projects200_response.rb +2 -2
- data/lib/mencoro/models/list_query_clusters200_response.rb +1 -1
- data/lib/mencoro/models/list_search_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/list_shopping_snapshots200_response.rb +1 -1
- data/lib/mencoro/models/me_resource.rb +1 -1
- data/lib/mencoro/models/member_resource.rb +63 -5
- data/lib/mencoro/models/mention_match_resource.rb +432 -0
- data/lib/mencoro/models/mention_sample_response.rb +450 -0
- data/lib/mencoro/models/mention_type_counts.rb +268 -0
- data/lib/mencoro/models/operation_effect.rb +1 -1
- data/lib/mencoro/models/organization_resource.rb +1 -1
- data/lib/mencoro/models/per_competitor_sentiment.rb +304 -0
- data/lib/mencoro/models/per_engine_sentiment.rb +278 -0
- data/lib/mencoro/models/per_entity_metrics.rb +218 -0
- data/lib/mencoro/models/position_distribution_bucket.rb +190 -0
- data/lib/mencoro/models/preview_organization_operation200_response.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +1 -1
- data/lib/mencoro/models/preview_organization_operation_request.rb +3 -3
- data/lib/mencoro/models/project_detail_resource.rb +1 -1
- data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +1 -1
- data/lib/mencoro/models/project_mention_mix_response.rb +222 -0
- data/lib/mencoro/models/project_mention_samples_response.rb +192 -0
- data/lib/mencoro/models/project_rank_tracking_cluster_breakdown.rb +176 -0
- data/lib/mencoro/models/project_rank_tracking_stats.rb +718 -0
- data/lib/mencoro/models/project_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/project_resource.rb +1 -1
- data/lib/mencoro/models/project_sentiment_breakdown.rb +194 -0
- data/lib/mencoro/models/projected_monthly_checks_resource.rb +3 -3
- data/lib/mencoro/models/query_cluster_resource.rb +1 -1
- data/lib/mencoro/models/report_ai_response_request.rb +1 -1
- data/lib/mencoro/models/search_result_resource.rb +1 -1
- data/lib/mencoro/models/search_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/search_tracked_queries200_response.rb +1 -1
- data/lib/mencoro/models/search_tracked_query_mention_matches200_response.rb +158 -0
- data/lib/mencoro/models/search_tracked_query_serp_matches200_response.rb +158 -0
- data/lib/mencoro/models/serp_match_resource.rb +314 -0
- data/lib/mencoro/models/set_member_project_access_request.rb +200 -0
- data/lib/mencoro/models/shopping_offer_resource.rb +1 -1
- data/lib/mencoro/models/shopping_snapshot_resource.rb +1 -1
- data/lib/mencoro/models/start_brand_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +1 -1
- data/lib/mencoro/models/start_clustering_job_request_data.rb +1 -1
- data/lib/mencoro/models/start_keyword_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/start_prompt_discovery_job_request.rb +1 -1
- data/lib/mencoro/models/submitted_checks_resource.rb +1 -1
- data/lib/mencoro/models/subscription_resource.rb +3 -3
- data/lib/mencoro/models/time_series_point.rb +218 -0
- data/lib/mencoro/models/tracked_query_count_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_detail_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_mover_row.rb +492 -0
- data/lib/mencoro/models/tracked_query_movers_response.rb +202 -0
- data/lib/mencoro/models/tracked_query_rank_tracking_time_series.rb +176 -0
- data/lib/mencoro/models/tracked_query_resource.rb +3 -3
- data/lib/mencoro/models/tracked_query_usage_resource.rb +2 -2
- data/lib/mencoro/models/update_organization_request.rb +1 -1
- data/lib/mencoro/models/update_project_brand_profile_request.rb +1 -1
- data/lib/mencoro/models/update_project_request.rb +1 -1
- data/lib/mencoro/version.rb +2 -2
- data/lib/mencoro.rb +32 -1
- data/mencoro.gemspec +2 -2
- data/spec/models/async_job_resource_error_spec.rb +46 -0
- data/spec/models/cited_source_row_spec.rb +78 -0
- data/spec/models/cited_sources_response_spec.rb +42 -0
- data/spec/models/cluster_breakdown_row_spec.rb +228 -0
- data/spec/models/competitor_co_occurrence_response_spec.rb +36 -0
- data/spec/models/competitor_co_occurrence_row_spec.rb +90 -0
- data/spec/models/competitor_share_of_voice_spec.rb +42 -0
- data/spec/models/create_invitation_request_project_access_spec.rb +46 -0
- data/spec/models/keyword_listing_resource_carried_positions_serp_spec.rb +42 -0
- data/spec/models/keyword_listing_resource_carried_positions_spec.rb +54 -0
- data/spec/models/mention_match_resource_spec.rb +114 -0
- data/spec/models/mention_sample_response_spec.rb +114 -0
- data/spec/models/mention_type_counts_spec.rb +60 -0
- data/spec/models/per_competitor_sentiment_spec.rb +72 -0
- data/spec/models/per_engine_sentiment_spec.rb +66 -0
- data/spec/models/per_entity_metrics_spec.rb +78 -0
- data/spec/models/position_distribution_bucket_spec.rb +42 -0
- data/spec/models/project_mention_mix_response_spec.rb +48 -0
- data/spec/models/project_mention_samples_response_spec.rb +42 -0
- data/spec/models/project_rank_tracking_cluster_breakdown_spec.rb +42 -0
- data/spec/models/project_rank_tracking_stats_spec.rb +270 -0
- data/spec/models/project_rank_tracking_time_series_spec.rb +42 -0
- data/spec/models/project_sentiment_breakdown_spec.rb +42 -0
- data/spec/models/search_tracked_query_mention_matches200_response_spec.rb +42 -0
- data/spec/models/search_tracked_query_serp_matches200_response_spec.rb +42 -0
- data/spec/models/serp_match_resource_spec.rb +72 -0
- data/spec/models/set_member_project_access_request_spec.rb +46 -0
- data/spec/models/time_series_point_spec.rb +48 -0
- data/spec/models/tracked_query_mover_row_spec.rb +156 -0
- data/spec/models/tracked_query_movers_response_spec.rb +48 -0
- data/spec/models/tracked_query_rank_tracking_time_series_spec.rb +42 -0
- data/spec/spec_helper.rb +1 -1
- metadata +235 -108
data/docs/AnalyticsApi.md
CHANGED
|
@@ -95,11 +95,11 @@ end
|
|
|
95
95
|
|
|
96
96
|
## get_cited_sources
|
|
97
97
|
|
|
98
|
-
> get_cited_sources(organization_id, project_id, date_from, date_to, opts)
|
|
98
|
+
> <CitedSourcesResponse> get_cited_sources(organization_id, project_id, date_from, date_to, opts)
|
|
99
99
|
|
|
100
100
|
Domains and pages the AI answers cited
|
|
101
101
|
|
|
102
|
-
Minimum role: viewer. The sources the answer engines drew on across a project's AI answers over a date window, ranked by how often they were cited. Per source: citationCount, the total number of citations; distinctResponseCount and distinctQueryCount, how many captured answers and tracked queries it appeared in; avgPosition, its average 1-based rank inside the answers' citation lists, where LOWER is better. A null avgPosition means no citation in the window carried a position, not a rank of zero; a null domain or sampleTitle means the citation never carried one. `total` counts the distinct sources matching the window, before paging. The list is UNFILTERED by ownership: the brand's, competitors' and third-party sources sit in the same ranking. Only the AI answer engines (chatgpt, perplexity, google_ai_overview, google_ai_mode) produce citations, so filtering by google_serp or google_shopping is accepted and returns nothing. Citations still behind an answer engine's redirect (a google.com/goto link, whose URL names the engine rather than the source) are excluded, so a source cited only through such links is absent from this list rather than counted as zero.
|
|
102
|
+
Minimum role: viewer. The sources the answer engines drew on across a project's AI answers over a date window, ranked by how often they were cited. Per source: citationCount, the total number of citations; distinctResponseCount and distinctQueryCount, how many captured answers and tracked queries it appeared in; avgPosition, its average 1-based rank inside the answers' citation lists, where LOWER is better. A null avgPosition means no citation in the window carried a position, not a rank of zero; a null domain or sampleTitle means the citation never carried one. `total` counts the distinct sources matching the window, before paging. The list is UNFILTERED by ownership: the brand's, competitors' and third-party sources sit in the same ranking. Only the AI answer engines (chatgpt, claude, perplexity, google_ai_overview, google_ai_mode) produce citations, so filtering by google_serp or google_shopping is accepted and returns nothing. Citations still behind an answer engine's redirect (a google.com/goto link, whose URL names the engine rather than the source) are excluded, so a source cited only through such links is absent from this list rather than counted as zero.
|
|
103
103
|
|
|
104
104
|
### Examples
|
|
105
105
|
|
|
@@ -126,7 +126,8 @@ opts = {
|
|
|
126
126
|
|
|
127
127
|
begin
|
|
128
128
|
# Domains and pages the AI answers cited
|
|
129
|
-
api_instance.get_cited_sources(organization_id, project_id, date_from, date_to, opts)
|
|
129
|
+
result = api_instance.get_cited_sources(organization_id, project_id, date_from, date_to, opts)
|
|
130
|
+
p result
|
|
130
131
|
rescue Mencoro::ApiError => e
|
|
131
132
|
puts "Error when calling AnalyticsApi->get_cited_sources: #{e}"
|
|
132
133
|
end
|
|
@@ -134,9 +135,9 @@ end
|
|
|
134
135
|
|
|
135
136
|
#### Using the get_cited_sources_with_http_info variant
|
|
136
137
|
|
|
137
|
-
This returns an Array which contains the response data
|
|
138
|
+
This returns an Array which contains the response data, status code and headers.
|
|
138
139
|
|
|
139
|
-
> <Array(
|
|
140
|
+
> <Array(<CitedSourcesResponse>, Integer, Hash)> get_cited_sources_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
140
141
|
|
|
141
142
|
```ruby
|
|
142
143
|
begin
|
|
@@ -144,7 +145,7 @@ begin
|
|
|
144
145
|
data, status_code, headers = api_instance.get_cited_sources_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
145
146
|
p status_code # => 2xx
|
|
146
147
|
p headers # => { ... }
|
|
147
|
-
p data # =>
|
|
148
|
+
p data # => <CitedSourcesResponse>
|
|
148
149
|
rescue Mencoro::ApiError => e
|
|
149
150
|
puts "Error when calling AnalyticsApi->get_cited_sources_with_http_info: #{e}"
|
|
150
151
|
end
|
|
@@ -165,7 +166,7 @@ end
|
|
|
165
166
|
|
|
166
167
|
### Return type
|
|
167
168
|
|
|
168
|
-
|
|
169
|
+
[**CitedSourcesResponse**](CitedSourcesResponse.md)
|
|
169
170
|
|
|
170
171
|
### Authorization
|
|
171
172
|
|
|
@@ -174,12 +175,12 @@ nil (empty response body)
|
|
|
174
175
|
### HTTP request headers
|
|
175
176
|
|
|
176
177
|
- **Content-Type**: Not defined
|
|
177
|
-
- **Accept**:
|
|
178
|
+
- **Accept**: application/json
|
|
178
179
|
|
|
179
180
|
|
|
180
181
|
## get_cluster_breakdown
|
|
181
182
|
|
|
182
|
-
> get_cluster_breakdown(organization_id, project_id, date_from, date_to, opts)
|
|
183
|
+
> <ProjectRankTrackingClusterBreakdown> get_cluster_breakdown(organization_id, project_id, date_from, date_to, opts)
|
|
183
184
|
|
|
184
185
|
Rank-tracking metrics per keyword cluster
|
|
185
186
|
|
|
@@ -205,12 +206,13 @@ opts = {
|
|
|
205
206
|
engines: ['chatgpt'], # Array<String> | Repeatable, or comma-separated.
|
|
206
207
|
countries: ['inner_example'], # Array<String> | ISO-3166 alpha-2 codes or English names. Must be configured on the project.
|
|
207
208
|
query_cluster_ids: ['inner_example'], # Array<String> | Restrict to these clusters. Each must belong to the project.
|
|
208
|
-
include_ungrouped_queries: true # Boolean | Sent alone, returns only the ungrouped
|
|
209
|
+
include_ungrouped_queries: true # Boolean | Sent alone, returns only the ungrouped row: the tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds that row to those clusters. Omit both for every cluster plus the ungrouped row.
|
|
209
210
|
}
|
|
210
211
|
|
|
211
212
|
begin
|
|
212
213
|
# Rank-tracking metrics per keyword cluster
|
|
213
|
-
api_instance.get_cluster_breakdown(organization_id, project_id, date_from, date_to, opts)
|
|
214
|
+
result = api_instance.get_cluster_breakdown(organization_id, project_id, date_from, date_to, opts)
|
|
215
|
+
p result
|
|
214
216
|
rescue Mencoro::ApiError => e
|
|
215
217
|
puts "Error when calling AnalyticsApi->get_cluster_breakdown: #{e}"
|
|
216
218
|
end
|
|
@@ -218,9 +220,9 @@ end
|
|
|
218
220
|
|
|
219
221
|
#### Using the get_cluster_breakdown_with_http_info variant
|
|
220
222
|
|
|
221
|
-
This returns an Array which contains the response data
|
|
223
|
+
This returns an Array which contains the response data, status code and headers.
|
|
222
224
|
|
|
223
|
-
> <Array(
|
|
225
|
+
> <Array(<ProjectRankTrackingClusterBreakdown>, Integer, Hash)> get_cluster_breakdown_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
224
226
|
|
|
225
227
|
```ruby
|
|
226
228
|
begin
|
|
@@ -228,7 +230,7 @@ begin
|
|
|
228
230
|
data, status_code, headers = api_instance.get_cluster_breakdown_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
229
231
|
p status_code # => 2xx
|
|
230
232
|
p headers # => { ... }
|
|
231
|
-
p data # =>
|
|
233
|
+
p data # => <ProjectRankTrackingClusterBreakdown>
|
|
232
234
|
rescue Mencoro::ApiError => e
|
|
233
235
|
puts "Error when calling AnalyticsApi->get_cluster_breakdown_with_http_info: #{e}"
|
|
234
236
|
end
|
|
@@ -245,11 +247,11 @@ end
|
|
|
245
247
|
| **engines** | [**Array<String>**](String.md) | Repeatable, or comma-separated. | [optional] |
|
|
246
248
|
| **countries** | [**Array<String>**](String.md) | ISO-3166 alpha-2 codes or English names. Must be configured on the project. | [optional] |
|
|
247
249
|
| **query_cluster_ids** | [**Array<String>**](String.md) | Restrict to these clusters. Each must belong to the project. | [optional] |
|
|
248
|
-
| **include_ungrouped_queries** | **Boolean** | Sent alone, returns only the ungrouped
|
|
250
|
+
| **include_ungrouped_queries** | **Boolean** | Sent alone, returns only the ungrouped row: the tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds that row to those clusters. Omit both for every cluster plus the ungrouped row. | [optional][default to false] |
|
|
249
251
|
|
|
250
252
|
### Return type
|
|
251
253
|
|
|
252
|
-
|
|
254
|
+
[**ProjectRankTrackingClusterBreakdown**](ProjectRankTrackingClusterBreakdown.md)
|
|
253
255
|
|
|
254
256
|
### Authorization
|
|
255
257
|
|
|
@@ -258,12 +260,12 @@ nil (empty response body)
|
|
|
258
260
|
### HTTP request headers
|
|
259
261
|
|
|
260
262
|
- **Content-Type**: Not defined
|
|
261
|
-
- **Accept**:
|
|
263
|
+
- **Accept**: application/json
|
|
262
264
|
|
|
263
265
|
|
|
264
266
|
## get_competitor_co_occurrence
|
|
265
267
|
|
|
266
|
-
> get_competitor_co_occurrence(organization_id, project_id, date_from, date_to, opts)
|
|
268
|
+
> <CompetitorCoOccurrenceResponse> get_competitor_co_occurrence(organization_id, project_id, date_from, date_to, opts)
|
|
267
269
|
|
|
268
270
|
Head-to-head record of the brand against each tracked competitor
|
|
269
271
|
|
|
@@ -293,7 +295,8 @@ opts = {
|
|
|
293
295
|
|
|
294
296
|
begin
|
|
295
297
|
# Head-to-head record of the brand against each tracked competitor
|
|
296
|
-
api_instance.get_competitor_co_occurrence(organization_id, project_id, date_from, date_to, opts)
|
|
298
|
+
result = api_instance.get_competitor_co_occurrence(organization_id, project_id, date_from, date_to, opts)
|
|
299
|
+
p result
|
|
297
300
|
rescue Mencoro::ApiError => e
|
|
298
301
|
puts "Error when calling AnalyticsApi->get_competitor_co_occurrence: #{e}"
|
|
299
302
|
end
|
|
@@ -301,9 +304,9 @@ end
|
|
|
301
304
|
|
|
302
305
|
#### Using the get_competitor_co_occurrence_with_http_info variant
|
|
303
306
|
|
|
304
|
-
This returns an Array which contains the response data
|
|
307
|
+
This returns an Array which contains the response data, status code and headers.
|
|
305
308
|
|
|
306
|
-
> <Array(
|
|
309
|
+
> <Array(<CompetitorCoOccurrenceResponse>, Integer, Hash)> get_competitor_co_occurrence_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
307
310
|
|
|
308
311
|
```ruby
|
|
309
312
|
begin
|
|
@@ -311,7 +314,7 @@ begin
|
|
|
311
314
|
data, status_code, headers = api_instance.get_competitor_co_occurrence_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
312
315
|
p status_code # => 2xx
|
|
313
316
|
p headers # => { ... }
|
|
314
|
-
p data # =>
|
|
317
|
+
p data # => <CompetitorCoOccurrenceResponse>
|
|
315
318
|
rescue Mencoro::ApiError => e
|
|
316
319
|
puts "Error when calling AnalyticsApi->get_competitor_co_occurrence_with_http_info: #{e}"
|
|
317
320
|
end
|
|
@@ -331,7 +334,7 @@ end
|
|
|
331
334
|
|
|
332
335
|
### Return type
|
|
333
336
|
|
|
334
|
-
|
|
337
|
+
[**CompetitorCoOccurrenceResponse**](CompetitorCoOccurrenceResponse.md)
|
|
335
338
|
|
|
336
339
|
### Authorization
|
|
337
340
|
|
|
@@ -340,16 +343,16 @@ nil (empty response body)
|
|
|
340
343
|
### HTTP request headers
|
|
341
344
|
|
|
342
345
|
- **Content-Type**: Not defined
|
|
343
|
-
- **Accept**:
|
|
346
|
+
- **Accept**: application/json
|
|
344
347
|
|
|
345
348
|
|
|
346
349
|
## get_mention_mix
|
|
347
350
|
|
|
348
|
-
> get_mention_mix(organization_id, project_id, date_from, date_to, opts)
|
|
351
|
+
> <ProjectMentionMixResponse> get_mention_mix(organization_id, project_id, date_from, date_to, opts)
|
|
349
352
|
|
|
350
353
|
Composition of a project brand mentions in AI answers
|
|
351
354
|
|
|
352
|
-
Minimum role: viewer. Counts of the project brand's own text mentions in AI answers over a date window, grouped three ways: byType (recommendation, comparison, listing, example, reference), byTone (positive, neutral, negative) and byQualifier (direct, conditional — a conditional mention is one the answer hedged with a condition).
|
|
355
|
+
Minimum role: viewer. Counts of the project brand's own text mentions in AI answers over a date window, grouped three ways: byType (recommendation, comparison, listing, example, reference), byTone (positive, neutral, negative) and byQualifier (direct, conditional — a conditional mention is one the answer hedged with a condition). Every bucket is always present and is a plain count, never null: a zero means no mention of that kind was found in the window. The three groupings count the same mentions, so each one sums to the same total. Only the project brand is counted: tracked competitors, untracked competitors and unrelated brands are all excluded (mentions stored before the relation was recorded count as the brand, as they do in Share of Voice). Only mentions inside the answer text are counted — a citation of the brand's URL is not a mention here. Each count is a raw number of stored mentions: when a query runs several passes a day, every pass adds its own. The counts therefore show the composition of the brand's mentions but are not the inputs of the Share of Voice score, which averages each check over its passes and also weights cited links. Only AI answer engines produce mentions, so restricting engines to google_serp or google_shopping alone returns all zeros. For the positive/neutral/negative split per engine and per competitor use the sentiment endpoint.
|
|
353
356
|
|
|
354
357
|
### Examples
|
|
355
358
|
|
|
@@ -374,7 +377,8 @@ opts = {
|
|
|
374
377
|
|
|
375
378
|
begin
|
|
376
379
|
# Composition of a project brand mentions in AI answers
|
|
377
|
-
api_instance.get_mention_mix(organization_id, project_id, date_from, date_to, opts)
|
|
380
|
+
result = api_instance.get_mention_mix(organization_id, project_id, date_from, date_to, opts)
|
|
381
|
+
p result
|
|
378
382
|
rescue Mencoro::ApiError => e
|
|
379
383
|
puts "Error when calling AnalyticsApi->get_mention_mix: #{e}"
|
|
380
384
|
end
|
|
@@ -382,9 +386,9 @@ end
|
|
|
382
386
|
|
|
383
387
|
#### Using the get_mention_mix_with_http_info variant
|
|
384
388
|
|
|
385
|
-
This returns an Array which contains the response data
|
|
389
|
+
This returns an Array which contains the response data, status code and headers.
|
|
386
390
|
|
|
387
|
-
> <Array(
|
|
391
|
+
> <Array(<ProjectMentionMixResponse>, Integer, Hash)> get_mention_mix_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
388
392
|
|
|
389
393
|
```ruby
|
|
390
394
|
begin
|
|
@@ -392,7 +396,7 @@ begin
|
|
|
392
396
|
data, status_code, headers = api_instance.get_mention_mix_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
393
397
|
p status_code # => 2xx
|
|
394
398
|
p headers # => { ... }
|
|
395
|
-
p data # =>
|
|
399
|
+
p data # => <ProjectMentionMixResponse>
|
|
396
400
|
rescue Mencoro::ApiError => e
|
|
397
401
|
puts "Error when calling AnalyticsApi->get_mention_mix_with_http_info: #{e}"
|
|
398
402
|
end
|
|
@@ -411,7 +415,7 @@ end
|
|
|
411
415
|
|
|
412
416
|
### Return type
|
|
413
417
|
|
|
414
|
-
|
|
418
|
+
[**ProjectMentionMixResponse**](ProjectMentionMixResponse.md)
|
|
415
419
|
|
|
416
420
|
### Authorization
|
|
417
421
|
|
|
@@ -420,16 +424,16 @@ nil (empty response body)
|
|
|
420
424
|
### HTTP request headers
|
|
421
425
|
|
|
422
426
|
- **Content-Type**: Not defined
|
|
423
|
-
- **Accept**:
|
|
427
|
+
- **Accept**: application/json
|
|
424
428
|
|
|
425
429
|
|
|
426
430
|
## get_mention_samples
|
|
427
431
|
|
|
428
|
-
> get_mention_samples(organization_id, project_id, date_from, date_to, opts)
|
|
432
|
+
> <ProjectMentionSamplesResponse> get_mention_samples(organization_id, project_id, date_from, date_to, opts)
|
|
429
433
|
|
|
430
434
|
Sample of the raw AI mention texts of a project
|
|
431
435
|
|
|
432
|
-
Minimum role: viewer. A paginated page of the individual mention texts behind the aggregate numbers, for qualitative review and for checking sentiment labels by eye. Each sample carries the mention text, the engine and country it was seen in, the tracked query that produced it, its sentiment and mention type, and mentionPosition — a 1-based rank inside the answer where LOWER is better, always present. `total` counts every mention matching the filters, not the size of the page returned. Only mentions inside the answer text are returned: a citation of the brand URL is not a mention here, and only AI answer engines produce mentions, so restricting engines to google_serp or google_shopping alone returns an empty page rather than an error. Two fields carry a \"not known\" rather than a zero: country is null and queryText is empty when the tracked query behind the mention has since been deleted, and competitorId is null when the mention row stores no competitor id — which is NOT an assertion that the mention is about your own brand, since an untracked competitor also stores none. Read mentionRelation instead: `own` and `tracked-competitor` are what the scraper resolved to a configured entity, `untracked-competitor` is a rival the project does not track, and null means the row predates the field. brandName carries the mentioned brand, and is the only way to name an untracked competitor, which has no competitor id to resolve one from. Omitting the competitorId filter returns exactly the rows with no competitor id stored — that is, own-brand AND untracked-competitor mentions together, not every competitor; pass a competitor UUID to restrict the page to that competitor, and use mentionRelation to separate the rest. For the aggregate positive/neutral/negative split use the sentiment endpoint, and for
|
|
436
|
+
Minimum role: viewer. A paginated page of the individual mention texts behind the aggregate numbers, for qualitative review and for checking sentiment labels by eye. Each sample carries the mention text, the engine and country it was seen in, the tracked query that produced it, its sentiment and mention type, and mentionPosition — a 1-based rank inside the answer where LOWER is better, always present. `total` counts every mention matching the filters, not the size of the page returned. Only mentions inside the answer text are returned: a citation of the brand URL is not a mention here, and only AI answer engines produce mentions, so restricting engines to google_serp or google_shopping alone returns an empty page rather than an error. Two fields carry a \"not known\" rather than a zero: country is null and queryText is empty when the tracked query behind the mention has since been deleted, and competitorId is null when the mention row stores no competitor id — which is NOT an assertion that the mention is about your own brand, since an untracked competitor also stores none. Read mentionRelation instead: `own` and `tracked-competitor` are what the scraper resolved to a configured entity, `untracked-competitor` is a rival the project does not track, and null means the row predates the field. brandName carries the mentioned brand, and is the only way to name an untracked competitor, which has no competitor id to resolve one from. Omitting the competitorId filter returns exactly the rows with no competitor id stored — that is, own-brand AND untracked-competitor mentions together, not every competitor; pass a competitor UUID to restrict the page to that competitor, and use mentionRelation to separate the rest. For the aggregate positive/neutral/negative split use the sentiment endpoint, and for the brand's own mention counts by type, tone and qualifier the mention mix endpoint.
|
|
433
437
|
|
|
434
438
|
### Examples
|
|
435
439
|
|
|
@@ -460,7 +464,8 @@ opts = {
|
|
|
460
464
|
|
|
461
465
|
begin
|
|
462
466
|
# Sample of the raw AI mention texts of a project
|
|
463
|
-
api_instance.get_mention_samples(organization_id, project_id, date_from, date_to, opts)
|
|
467
|
+
result = api_instance.get_mention_samples(organization_id, project_id, date_from, date_to, opts)
|
|
468
|
+
p result
|
|
464
469
|
rescue Mencoro::ApiError => e
|
|
465
470
|
puts "Error when calling AnalyticsApi->get_mention_samples: #{e}"
|
|
466
471
|
end
|
|
@@ -468,9 +473,9 @@ end
|
|
|
468
473
|
|
|
469
474
|
#### Using the get_mention_samples_with_http_info variant
|
|
470
475
|
|
|
471
|
-
This returns an Array which contains the response data
|
|
476
|
+
This returns an Array which contains the response data, status code and headers.
|
|
472
477
|
|
|
473
|
-
> <Array(
|
|
478
|
+
> <Array(<ProjectMentionSamplesResponse>, Integer, Hash)> get_mention_samples_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
474
479
|
|
|
475
480
|
```ruby
|
|
476
481
|
begin
|
|
@@ -478,7 +483,7 @@ begin
|
|
|
478
483
|
data, status_code, headers = api_instance.get_mention_samples_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
479
484
|
p status_code # => 2xx
|
|
480
485
|
p headers # => { ... }
|
|
481
|
-
p data # =>
|
|
486
|
+
p data # => <ProjectMentionSamplesResponse>
|
|
482
487
|
rescue Mencoro::ApiError => e
|
|
483
488
|
puts "Error when calling AnalyticsApi->get_mention_samples_with_http_info: #{e}"
|
|
484
489
|
end
|
|
@@ -503,7 +508,7 @@ end
|
|
|
503
508
|
|
|
504
509
|
### Return type
|
|
505
510
|
|
|
506
|
-
|
|
511
|
+
[**ProjectMentionSamplesResponse**](ProjectMentionSamplesResponse.md)
|
|
507
512
|
|
|
508
513
|
### Authorization
|
|
509
514
|
|
|
@@ -587,7 +592,7 @@ This endpoint does not need any parameter.
|
|
|
587
592
|
|
|
588
593
|
Snapshot rank-health board across an organization active projects
|
|
589
594
|
|
|
590
|
-
Minimum role: viewer. One row per active project — share of voice, mention rate, average mention position, positivity index and tracked-query count — ordered by share of voice, plus an organization-level aggregate of the same metrics. Archived projects are excluded. This is a current-state snapshot and takes no date window; for a date-ranged comparison call the per-project operations (getProjectMetrics, getProjectTimeSeries) for each projectId returned here. Every metric is nullable, and a null means the project has no rank data yet — not a score of zero. Higher is better for shareOfVoice, mentionRate and positivityIndex; avgMentionPosition is a 1-based rank, so LOWER is better.
|
|
595
|
+
Minimum role: viewer. One row per active project the caller can access — share of voice, mention rate, average mention position, positivity index and tracked-query count — ordered by share of voice, plus an organization-level aggregate of the same metrics. Archived projects are excluded. For a member restricted to selected projects, the rows and every aggregate figure cover those projects only. This is a current-state snapshot and takes no date window; for a date-ranged comparison call the per-project operations (getProjectMetrics, getProjectTimeSeries) for each projectId returned here. Every metric is nullable, and a null means the project has no rank data yet — not a score of zero. Higher is better for shareOfVoice, mentionRate and positivityIndex; avgMentionPosition is a 1-based rank, so LOWER is better.
|
|
591
596
|
|
|
592
597
|
### Examples
|
|
593
598
|
|
|
@@ -652,11 +657,11 @@ end
|
|
|
652
657
|
|
|
653
658
|
## get_project_metrics
|
|
654
659
|
|
|
655
|
-
> get_project_metrics(organization_id, project_id, date_from, date_to, opts)
|
|
660
|
+
> <ProjectRankTrackingStats> get_project_metrics(organization_id, project_id, date_from, date_to, opts)
|
|
656
661
|
|
|
657
662
|
Headline visibility metrics of a project
|
|
658
663
|
|
|
659
|
-
Minimum role: viewer. The project overview over a date window: share of voice (own and per competitor), mention / SERP / shopping rates, average
|
|
664
|
+
Minimum role: viewer. The project overview over a date window: share of voice (own and per competitor), mention / SERP / shopping rates, average positions, position stability, the sentiment split and the position-distribution buckets. Positions are 1-based, so a LOWER number is better; rates, the positivity index and share of voice are percentages from 0 to 100, where HIGHER is better. Every `trend*` field is the signed change against the immediately preceding window of the same length, signed so that POSITIVE always means improved: for a position or a stability spread a positive trend means the number went down, for a rate or score it means the number went up. A null metric means \"not known yet\", never zero: a scalar is null when the window holds no checks at all, and a `trend*` field is null when there is no earlier window to compare against. The counters (`mentionCount`, `*TrackedQueryCount`, `*QueriesWithResult`, `sentiment*` and `mentionTypeCounts`) are genuine zeros instead, so an empty window reads as zero counts with null rates. `dataDirtySince` is non-null while a recalculation is pending, meaning the figures may still move for dates from then on.
|
|
660
665
|
|
|
661
666
|
### Examples
|
|
662
667
|
|
|
@@ -678,12 +683,13 @@ opts = {
|
|
|
678
683
|
engines: ['chatgpt'], # Array<String> | Repeatable, or comma-separated.
|
|
679
684
|
countries: ['inner_example'], # Array<String> | ISO-3166 alpha-2 codes or English names. Must be configured on the project.
|
|
680
685
|
query_cluster_ids: ['inner_example'], # Array<String> | Restrict to these keyword clusters. Each must belong to this project.
|
|
681
|
-
include_ungrouped_queries: true # Boolean |
|
|
686
|
+
include_ungrouped_queries: true # Boolean | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries.
|
|
682
687
|
}
|
|
683
688
|
|
|
684
689
|
begin
|
|
685
690
|
# Headline visibility metrics of a project
|
|
686
|
-
api_instance.get_project_metrics(organization_id, project_id, date_from, date_to, opts)
|
|
691
|
+
result = api_instance.get_project_metrics(organization_id, project_id, date_from, date_to, opts)
|
|
692
|
+
p result
|
|
687
693
|
rescue Mencoro::ApiError => e
|
|
688
694
|
puts "Error when calling AnalyticsApi->get_project_metrics: #{e}"
|
|
689
695
|
end
|
|
@@ -691,9 +697,9 @@ end
|
|
|
691
697
|
|
|
692
698
|
#### Using the get_project_metrics_with_http_info variant
|
|
693
699
|
|
|
694
|
-
This returns an Array which contains the response data
|
|
700
|
+
This returns an Array which contains the response data, status code and headers.
|
|
695
701
|
|
|
696
|
-
> <Array(
|
|
702
|
+
> <Array(<ProjectRankTrackingStats>, Integer, Hash)> get_project_metrics_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
697
703
|
|
|
698
704
|
```ruby
|
|
699
705
|
begin
|
|
@@ -701,7 +707,7 @@ begin
|
|
|
701
707
|
data, status_code, headers = api_instance.get_project_metrics_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
702
708
|
p status_code # => 2xx
|
|
703
709
|
p headers # => { ... }
|
|
704
|
-
p data # =>
|
|
710
|
+
p data # => <ProjectRankTrackingStats>
|
|
705
711
|
rescue Mencoro::ApiError => e
|
|
706
712
|
puts "Error when calling AnalyticsApi->get_project_metrics_with_http_info: #{e}"
|
|
707
713
|
end
|
|
@@ -718,11 +724,11 @@ end
|
|
|
718
724
|
| **engines** | [**Array<String>**](String.md) | Repeatable, or comma-separated. | [optional] |
|
|
719
725
|
| **countries** | [**Array<String>**](String.md) | ISO-3166 alpha-2 codes or English names. Must be configured on the project. | [optional] |
|
|
720
726
|
| **query_cluster_ids** | [**Array<String>**](String.md) | Restrict to these keyword clusters. Each must belong to this project. | [optional] |
|
|
721
|
-
| **include_ungrouped_queries** | **Boolean** |
|
|
727
|
+
| **include_ungrouped_queries** | **Boolean** | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. | [optional][default to false] |
|
|
722
728
|
|
|
723
729
|
### Return type
|
|
724
730
|
|
|
725
|
-
|
|
731
|
+
[**ProjectRankTrackingStats**](ProjectRankTrackingStats.md)
|
|
726
732
|
|
|
727
733
|
### Authorization
|
|
728
734
|
|
|
@@ -731,12 +737,12 @@ nil (empty response body)
|
|
|
731
737
|
### HTTP request headers
|
|
732
738
|
|
|
733
739
|
- **Content-Type**: Not defined
|
|
734
|
-
- **Accept**:
|
|
740
|
+
- **Accept**: application/json
|
|
735
741
|
|
|
736
742
|
|
|
737
743
|
## get_project_sentiment
|
|
738
744
|
|
|
739
|
-
> get_project_sentiment(organization_id, project_id, date_from, date_to, opts)
|
|
745
|
+
> <ProjectSentimentBreakdown> get_project_sentiment(organization_id, project_id, date_from, date_to, opts)
|
|
740
746
|
|
|
741
747
|
Sentiment breakdown of a project brand mentions
|
|
742
748
|
|
|
@@ -762,12 +768,13 @@ opts = {
|
|
|
762
768
|
engines: ['chatgpt'], # Array<String> | Repeatable, or comma-separated.
|
|
763
769
|
countries: ['inner_example'], # Array<String> | ISO-3166 alpha-2 codes or English names. Must be configured on the project.
|
|
764
770
|
query_cluster_ids: ['inner_example'], # Array<String> |
|
|
765
|
-
include_ungrouped_queries: true # Boolean |
|
|
771
|
+
include_ungrouped_queries: true # Boolean | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries.
|
|
766
772
|
}
|
|
767
773
|
|
|
768
774
|
begin
|
|
769
775
|
# Sentiment breakdown of a project brand mentions
|
|
770
|
-
api_instance.get_project_sentiment(organization_id, project_id, date_from, date_to, opts)
|
|
776
|
+
result = api_instance.get_project_sentiment(organization_id, project_id, date_from, date_to, opts)
|
|
777
|
+
p result
|
|
771
778
|
rescue Mencoro::ApiError => e
|
|
772
779
|
puts "Error when calling AnalyticsApi->get_project_sentiment: #{e}"
|
|
773
780
|
end
|
|
@@ -775,9 +782,9 @@ end
|
|
|
775
782
|
|
|
776
783
|
#### Using the get_project_sentiment_with_http_info variant
|
|
777
784
|
|
|
778
|
-
This returns an Array which contains the response data
|
|
785
|
+
This returns an Array which contains the response data, status code and headers.
|
|
779
786
|
|
|
780
|
-
> <Array(
|
|
787
|
+
> <Array(<ProjectSentimentBreakdown>, Integer, Hash)> get_project_sentiment_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
781
788
|
|
|
782
789
|
```ruby
|
|
783
790
|
begin
|
|
@@ -785,7 +792,7 @@ begin
|
|
|
785
792
|
data, status_code, headers = api_instance.get_project_sentiment_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
786
793
|
p status_code # => 2xx
|
|
787
794
|
p headers # => { ... }
|
|
788
|
-
p data # =>
|
|
795
|
+
p data # => <ProjectSentimentBreakdown>
|
|
789
796
|
rescue Mencoro::ApiError => e
|
|
790
797
|
puts "Error when calling AnalyticsApi->get_project_sentiment_with_http_info: #{e}"
|
|
791
798
|
end
|
|
@@ -802,11 +809,11 @@ end
|
|
|
802
809
|
| **engines** | [**Array<String>**](String.md) | Repeatable, or comma-separated. | [optional] |
|
|
803
810
|
| **countries** | [**Array<String>**](String.md) | ISO-3166 alpha-2 codes or English names. Must be configured on the project. | [optional] |
|
|
804
811
|
| **query_cluster_ids** | [**Array<String>**](String.md) | | [optional] |
|
|
805
|
-
| **include_ungrouped_queries** | **Boolean** |
|
|
812
|
+
| **include_ungrouped_queries** | **Boolean** | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. | [optional][default to false] |
|
|
806
813
|
|
|
807
814
|
### Return type
|
|
808
815
|
|
|
809
|
-
|
|
816
|
+
[**ProjectSentimentBreakdown**](ProjectSentimentBreakdown.md)
|
|
810
817
|
|
|
811
818
|
### Authorization
|
|
812
819
|
|
|
@@ -815,12 +822,12 @@ nil (empty response body)
|
|
|
815
822
|
### HTTP request headers
|
|
816
823
|
|
|
817
824
|
- **Content-Type**: Not defined
|
|
818
|
-
- **Accept**:
|
|
825
|
+
- **Accept**: application/json
|
|
819
826
|
|
|
820
827
|
|
|
821
828
|
## get_project_time_series
|
|
822
829
|
|
|
823
|
-
> get_project_time_series(organization_id, project_id, date_from, date_to, opts)
|
|
830
|
+
> <ProjectRankTrackingTimeSeries> get_project_time_series(organization_id, project_id, date_from, date_to, opts)
|
|
824
831
|
|
|
825
832
|
Rank-tracking metrics of a project over time
|
|
826
833
|
|
|
@@ -847,13 +854,14 @@ opts = {
|
|
|
847
854
|
engines: ['chatgpt'], # Array<String> | Repeatable, or comma-separated.
|
|
848
855
|
countries: ['inner_example'], # Array<String> | ISO-3166 alpha-2 codes or English names. Must be configured on the project.
|
|
849
856
|
query_cluster_ids: ['inner_example'], # Array<String> |
|
|
850
|
-
include_ungrouped_queries: true, # Boolean |
|
|
857
|
+
include_ungrouped_queries: true, # Boolean | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries.
|
|
851
858
|
competitor_ids: ['inner_example'] # Array<String> | Repeatable, or comma-separated. Each id adds one series under the competitors map of every point.
|
|
852
859
|
}
|
|
853
860
|
|
|
854
861
|
begin
|
|
855
862
|
# Rank-tracking metrics of a project over time
|
|
856
|
-
api_instance.get_project_time_series(organization_id, project_id, date_from, date_to, opts)
|
|
863
|
+
result = api_instance.get_project_time_series(organization_id, project_id, date_from, date_to, opts)
|
|
864
|
+
p result
|
|
857
865
|
rescue Mencoro::ApiError => e
|
|
858
866
|
puts "Error when calling AnalyticsApi->get_project_time_series: #{e}"
|
|
859
867
|
end
|
|
@@ -861,9 +869,9 @@ end
|
|
|
861
869
|
|
|
862
870
|
#### Using the get_project_time_series_with_http_info variant
|
|
863
871
|
|
|
864
|
-
This returns an Array which contains the response data
|
|
872
|
+
This returns an Array which contains the response data, status code and headers.
|
|
865
873
|
|
|
866
|
-
> <Array(
|
|
874
|
+
> <Array(<ProjectRankTrackingTimeSeries>, Integer, Hash)> get_project_time_series_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
867
875
|
|
|
868
876
|
```ruby
|
|
869
877
|
begin
|
|
@@ -871,7 +879,7 @@ begin
|
|
|
871
879
|
data, status_code, headers = api_instance.get_project_time_series_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
872
880
|
p status_code # => 2xx
|
|
873
881
|
p headers # => { ... }
|
|
874
|
-
p data # =>
|
|
882
|
+
p data # => <ProjectRankTrackingTimeSeries>
|
|
875
883
|
rescue Mencoro::ApiError => e
|
|
876
884
|
puts "Error when calling AnalyticsApi->get_project_time_series_with_http_info: #{e}"
|
|
877
885
|
end
|
|
@@ -889,12 +897,12 @@ end
|
|
|
889
897
|
| **engines** | [**Array<String>**](String.md) | Repeatable, or comma-separated. | [optional] |
|
|
890
898
|
| **countries** | [**Array<String>**](String.md) | ISO-3166 alpha-2 codes or English names. Must be configured on the project. | [optional] |
|
|
891
899
|
| **query_cluster_ids** | [**Array<String>**](String.md) | | [optional] |
|
|
892
|
-
| **include_ungrouped_queries** | **Boolean** |
|
|
900
|
+
| **include_ungrouped_queries** | **Boolean** | Sent alone, restricts to tracked queries that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all tracked queries. | [optional][default to false] |
|
|
893
901
|
| **competitor_ids** | [**Array<String>**](String.md) | Repeatable, or comma-separated. Each id adds one series under the competitors map of every point. | [optional] |
|
|
894
902
|
|
|
895
903
|
### Return type
|
|
896
904
|
|
|
897
|
-
|
|
905
|
+
[**ProjectRankTrackingTimeSeries**](ProjectRankTrackingTimeSeries.md)
|
|
898
906
|
|
|
899
907
|
### Authorization
|
|
900
908
|
|
|
@@ -903,12 +911,12 @@ nil (empty response body)
|
|
|
903
911
|
### HTTP request headers
|
|
904
912
|
|
|
905
913
|
- **Content-Type**: Not defined
|
|
906
|
-
- **Accept**:
|
|
914
|
+
- **Accept**: application/json
|
|
907
915
|
|
|
908
916
|
|
|
909
917
|
## get_query_movers
|
|
910
918
|
|
|
911
|
-
> get_query_movers(organization_id, project_id, date_from, date_to, opts)
|
|
919
|
+
> <TrackedQueryMoversResponse> get_query_movers(organization_id, project_id, date_from, date_to, opts)
|
|
912
920
|
|
|
913
921
|
Tracked queries ranked by how much a metric moved
|
|
914
922
|
|
|
@@ -941,7 +949,8 @@ opts = {
|
|
|
941
949
|
|
|
942
950
|
begin
|
|
943
951
|
# Tracked queries ranked by how much a metric moved
|
|
944
|
-
api_instance.get_query_movers(organization_id, project_id, date_from, date_to, opts)
|
|
952
|
+
result = api_instance.get_query_movers(organization_id, project_id, date_from, date_to, opts)
|
|
953
|
+
p result
|
|
945
954
|
rescue Mencoro::ApiError => e
|
|
946
955
|
puts "Error when calling AnalyticsApi->get_query_movers: #{e}"
|
|
947
956
|
end
|
|
@@ -949,9 +958,9 @@ end
|
|
|
949
958
|
|
|
950
959
|
#### Using the get_query_movers_with_http_info variant
|
|
951
960
|
|
|
952
|
-
This returns an Array which contains the response data
|
|
961
|
+
This returns an Array which contains the response data, status code and headers.
|
|
953
962
|
|
|
954
|
-
> <Array(
|
|
963
|
+
> <Array(<TrackedQueryMoversResponse>, Integer, Hash)> get_query_movers_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
955
964
|
|
|
956
965
|
```ruby
|
|
957
966
|
begin
|
|
@@ -959,7 +968,7 @@ begin
|
|
|
959
968
|
data, status_code, headers = api_instance.get_query_movers_with_http_info(organization_id, project_id, date_from, date_to, opts)
|
|
960
969
|
p status_code # => 2xx
|
|
961
970
|
p headers # => { ... }
|
|
962
|
-
p data # =>
|
|
971
|
+
p data # => <TrackedQueryMoversResponse>
|
|
963
972
|
rescue Mencoro::ApiError => e
|
|
964
973
|
puts "Error when calling AnalyticsApi->get_query_movers_with_http_info: #{e}"
|
|
965
974
|
end
|
|
@@ -982,7 +991,7 @@ end
|
|
|
982
991
|
|
|
983
992
|
### Return type
|
|
984
993
|
|
|
985
|
-
|
|
994
|
+
[**TrackedQueryMoversResponse**](TrackedQueryMoversResponse.md)
|
|
986
995
|
|
|
987
996
|
### Authorization
|
|
988
997
|
|
|
@@ -991,7 +1000,7 @@ nil (empty response body)
|
|
|
991
1000
|
### HTTP request headers
|
|
992
1001
|
|
|
993
1002
|
- **Content-Type**: Not defined
|
|
994
|
-
- **Accept**:
|
|
1003
|
+
- **Accept**: application/json
|
|
995
1004
|
|
|
996
1005
|
|
|
997
1006
|
## get_share_of_voice_formula
|
|
@@ -1000,7 +1009,7 @@ nil (empty response body)
|
|
|
1000
1009
|
|
|
1001
1010
|
The constants behind the Share of Voice score
|
|
1002
1011
|
|
|
1003
|
-
Minimum role: viewer. Static reference data, the same for every project: the weights and multipliers that turn individual brand mentions into a Share of Voice score. Each mention is worth `mentionTypeWeights[type] * sentimentMultipliers[tone] * (conditional ? conditionalMultiplier : directMultiplier)`, and a competitor's Share of Voice is its share of the summed weights of every brand in the window, as a percentage. mentionTypeWeights is keyed by mention type (recommendation, comparison, listing, example, reference) and sentimentMultipliers by tone (positive, neutral, negative); a negative mention is discounted, not discarded, because it still evidences presence. A conditional mention is one the answer hedged with a condition (\"if you need X\"). Use this to explain a score, not to recompute one: the
|
|
1012
|
+
Minimum role: viewer. Static reference data, the same for every project: the weights and multipliers that turn individual brand mentions into a Share of Voice score. Each mention is worth `mentionTypeWeights[type] * sentimentMultipliers[tone] * (conditional ? conditionalMultiplier : directMultiplier)`, and a competitor's Share of Voice is its share of the summed weights of every brand in the window, as a percentage. mentionTypeWeights is keyed by mention type (recommendation, comparison, listing, example, reference) and sentimentMultipliers by tone (positive, neutral, negative); a negative mention is discounted, not discarded, because it still evidences presence. A conditional mention is one the answer hedged with a condition (\"if you need X\"). Use this to explain a score, not to recompute one: the score averages each check over its passes and also weights cited links, so applying these constants to the raw counts of the mention mix endpoint does not reproduce it. Every value is always present and is never null.
|
|
1004
1013
|
|
|
1005
1014
|
### Examples
|
|
1006
1015
|
|
|
@@ -1067,11 +1076,11 @@ end
|
|
|
1067
1076
|
|
|
1068
1077
|
## get_tracked_query_time_series
|
|
1069
1078
|
|
|
1070
|
-
> get_tracked_query_time_series(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1079
|
+
> <TrackedQueryRankTrackingTimeSeries> get_tracked_query_time_series(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1071
1080
|
|
|
1072
1081
|
Rank-tracking time series of a single tracked query
|
|
1073
1082
|
|
|
1074
|
-
Minimum role: viewer. One point per bucket over the date window, each carrying the brand metrics and one same-shaped entry per requested competitor. Positions (serp, shopping, mention, link) are 1-based, so a LOWER number is better; positivity, shareOfVoice, mentionRate and serpRate are percentages from 0 to 100, where higher is better. Every metric is nullable, and a null means nothing was captured for that entity in that bucket — it is not a zero
|
|
1083
|
+
Minimum role: viewer. One point per bucket over the date window, each carrying the brand metrics and one same-shaped entry per requested competitor. Positions (serp, shopping, mention, link) are 1-based, so a LOWER number is better; positivity, shareOfVoice, mentionRate and serpRate are percentages from 0 to 100, where higher is better. Every metric is nullable, and a null means nothing was captured for that entity in that bucket — it is not a zero. A bucket appears only when something was matched for the query in it; when only competitors were, the brand's metrics are all null, so a brand that was not mentioned reads as a null shareOfVoice, not as 0. shareOfVoice is also null, even with the brand mentioned, when no tracked competitor carried any mention weight on any day of the bucket: it is a share against tracked competitors, and a weekly or monthly value averages only the days where it could be computed. The tracked query fixes its own engine and country, so no engine or country filter is accepted. A non-null dataDirtySince is a timestamp warning that tracked queries were deleted from the project and historical buckets may still include their contributions until the nightly refresh rebuilds them.
|
|
1075
1084
|
|
|
1076
1085
|
### Examples
|
|
1077
1086
|
|
|
@@ -1097,7 +1106,8 @@ opts = {
|
|
|
1097
1106
|
|
|
1098
1107
|
begin
|
|
1099
1108
|
# Rank-tracking time series of a single tracked query
|
|
1100
|
-
api_instance.get_tracked_query_time_series(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1109
|
+
result = api_instance.get_tracked_query_time_series(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1110
|
+
p result
|
|
1101
1111
|
rescue Mencoro::ApiError => e
|
|
1102
1112
|
puts "Error when calling AnalyticsApi->get_tracked_query_time_series: #{e}"
|
|
1103
1113
|
end
|
|
@@ -1105,9 +1115,9 @@ end
|
|
|
1105
1115
|
|
|
1106
1116
|
#### Using the get_tracked_query_time_series_with_http_info variant
|
|
1107
1117
|
|
|
1108
|
-
This returns an Array which contains the response data
|
|
1118
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1109
1119
|
|
|
1110
|
-
> <Array(
|
|
1120
|
+
> <Array(<TrackedQueryRankTrackingTimeSeries>, Integer, Hash)> get_tracked_query_time_series_with_http_info(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1111
1121
|
|
|
1112
1122
|
```ruby
|
|
1113
1123
|
begin
|
|
@@ -1115,7 +1125,7 @@ begin
|
|
|
1115
1125
|
data, status_code, headers = api_instance.get_tracked_query_time_series_with_http_info(organization_id, project_id, tracked_query_id, date_from, date_to, opts)
|
|
1116
1126
|
p status_code # => 2xx
|
|
1117
1127
|
p headers # => { ... }
|
|
1118
|
-
p data # =>
|
|
1128
|
+
p data # => <TrackedQueryRankTrackingTimeSeries>
|
|
1119
1129
|
rescue Mencoro::ApiError => e
|
|
1120
1130
|
puts "Error when calling AnalyticsApi->get_tracked_query_time_series_with_http_info: #{e}"
|
|
1121
1131
|
end
|
|
@@ -1135,7 +1145,7 @@ end
|
|
|
1135
1145
|
|
|
1136
1146
|
### Return type
|
|
1137
1147
|
|
|
1138
|
-
|
|
1148
|
+
[**TrackedQueryRankTrackingTimeSeries**](TrackedQueryRankTrackingTimeSeries.md)
|
|
1139
1149
|
|
|
1140
1150
|
### Authorization
|
|
1141
1151
|
|
|
@@ -1144,7 +1154,7 @@ nil (empty response body)
|
|
|
1144
1154
|
### HTTP request headers
|
|
1145
1155
|
|
|
1146
1156
|
- **Content-Type**: Not defined
|
|
1147
|
-
- **Accept**:
|
|
1157
|
+
- **Accept**: application/json
|
|
1148
1158
|
|
|
1149
1159
|
|
|
1150
1160
|
## get_tracking_coverage
|
|
@@ -1246,7 +1256,7 @@ opts = {
|
|
|
1246
1256
|
engines: ['chatgpt'], # Array<String> | Repeatable, or comma-separated. Narrows which variants count towards each row.
|
|
1247
1257
|
countries: ['inner_example'], # Array<String> | ISO-3166 alpha-2 codes or English names. Must be configured on the project.
|
|
1248
1258
|
query_cluster_ids: ['inner_example'], # Array<String> | Restrict to keywords with a variant in these clusters. Each must belong to the project.
|
|
1249
|
-
include_ungrouped_queries: true, # Boolean | Sent alone, restricts
|
|
1259
|
+
include_ungrouped_queries: true, # Boolean | Sent alone, restricts to keywords with variants that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all keywords.
|
|
1250
1260
|
status: 'active', # String | Restrict to variants with this status. A keyword whose variants disagree still reports statusSummary \"mixed\".
|
|
1251
1261
|
check_frequencies: ['daily'], # Array<String> | Repeatable, or comma-separated.
|
|
1252
1262
|
n_passes: [37], # Array<Integer> | Repeatable, or comma-separated. Restrict to variants configured with these pass counts.
|
|
@@ -1295,7 +1305,7 @@ end
|
|
|
1295
1305
|
| **engines** | [**Array<String>**](String.md) | Repeatable, or comma-separated. Narrows which variants count towards each row. | [optional] |
|
|
1296
1306
|
| **countries** | [**Array<String>**](String.md) | ISO-3166 alpha-2 codes or English names. Must be configured on the project. | [optional] |
|
|
1297
1307
|
| **query_cluster_ids** | [**Array<String>**](String.md) | Restrict to keywords with a variant in these clusters. Each must belong to the project. | [optional] |
|
|
1298
|
-
| **include_ungrouped_queries** | **Boolean** | Sent alone, restricts
|
|
1308
|
+
| **include_ungrouped_queries** | **Boolean** | Sent alone, restricts to keywords with variants that belong to no cluster (refused if there are none). Sent with queryClusterIds, adds them to those clusters. Omit both for all keywords. | [optional][default to false] |
|
|
1299
1309
|
| **status** | **String** | Restrict to variants with this status. A keyword whose variants disagree still reports statusSummary \"mixed\". | [optional] |
|
|
1300
1310
|
| **check_frequencies** | [**Array<String>**](String.md) | Repeatable, or comma-separated. | [optional] |
|
|
1301
1311
|
| **n_passes** | [**Array<Integer>**](Integer.md) | Repeatable, or comma-separated. Restrict to variants configured with these pass counts. | [optional] |
|