The package now talks only to the v4 Video Game Insights API
(https://vginsights.com/api/v4, hosted by Sensor Tower;
interactive docs at https://app.sensortower.com/vgi/api/v4/api-docs/). v4
rows are multi-platform (Steam, Xbox, PlayStation), carry VGI IDs and
slugs alongside Steam App IDs, and page with a cursor. This release
breaks compatibility with 0.1.1 in the ways listed below.
vgi_game_rankings(), vgi_top_games(),
vgi_smart_search() and
vgi_top_games_with_activity() (all built on the v3 rankings
endpoint).vgi_all_games_metadata() (use
vgi_games_metadata(all_pages = TRUE)), and the deprecated
aliases vgi_insights_entitlements() and
vgi_entitlements_by_date() (use
vgi_insights_units() and
vgi_units_sold_by_date()).vgi_game_metadata() and
vgi_game_metadata_batch() return the
vgi_games_metadata() shape: VGI’s single genre
/ subgenre, Steam’s steam_genres /
steam_subgenres, per-platform price_*,
release_date_* and store_url_* columns,
vgi_id, slug and platforms. The
v3 genres, subgenres, price,
release_date, full_release_date,
steam_url and id columns are gone. Unknown
games return an empty tibble.vgi_game_list() returns vgi_id,
steam_app_id (NA for games not on Steam) and
name, sorted by VGI ID; the id alias is
gone.vgi_publisher_info() /
vgi_developer_info() read /companies/{kind}:
Steam revenue and game counts plus slug,
country,
games_released_{steam,playstation,xbox} and
vgi_url. vgi_publisher_games() /
vgi_developer_games() still return Steam App IDs, resolved
from VGI game IDs through /games/metadata.vgi_all_publisher_games() /
vgi_all_developer_games() return VGI game IDs only; the
offset argument and id_type column are gone.
vgi_publisher_list() / vgi_developer_list()
lose min_games.vgi_player_overlap() uses v4
/player-overlap (by Steam ID, VGI ID or slug) and loses
offset. vgi_all_games_player_overlap() walks
the catalogue by cursor, one game per request, instead of
offset.version argument is gone from every function, and
make_api_request() no longer takes one.
options(vgi.base_url) and VGI_BASE_URL take
the API root; a trailing /v3 or /v4 is
dropped.$player_history, $price_changes).vgi_filter_genre() matches VGI’s genre by default; pass
source = "steam" for Steam’s genres.
vgi_build_cache() builds the cache from
/games/metadata and loses batch_size.
vgi_fetch_by_ids() keeps the "metadata" and
"active_players" data types.vgi_games_metadata(): metadata by
steam_app_ids, vgi_ids or slugs,
with cursor paging.vgi_historical_data_by_date(): one day’s snapshot on
every platform, with countries / regions
breakdowns.vgi_price_history(): price periods on every platform,
by Steam ID, VGI ID or slug.steam_app_ids, vgi_ids, slugs,
limit, cursor and all_pages;
playtime also takes countries and regions.
Company overview and list functions take vgi_ids,
slugs, cursor and all_pages.vgi_insights_units() / vgi_insights_revenue()
read the v4 unitsOwned* / premiumRevenue*
fields instead of erroring.vgi_peak_ccu_by_ids() and
vgi_peak_ccu_by_names() work again and return
steam_app_id.dev/record_fixtures.R) shipped with the package, so
R CMD check exercises the real parsing paths. Live smoke
tests run only when VGI_AUTH_TOKEN is set.rappdirs with tools::R_user_dir()
for CRAN-preferred caching.\donttest{} to
\dontrun{}.steamAppId is now
steam_app_id, peakConcurrent is
peak_concurrent, and dailyRevenue is
daily_revenue.data.frame objects..vgi_clean_names() internal utility that converts
API column names to snake_case and coerces results to tibbles in one
step.vgi_publishers_overview() and
vgi_developers_overview() for rich company data.vgi_top_regions() for regional performance
data.historical-data
snapshot polling, handling API v4 shape changes gracefully.vgi_game_summary_yoy() for year-over-year
comparisons.vgi_game_summary() for comprehensive single-call
analysis.