Keyword Ranks (App Store Optimization)

The /aso resource provides access to keyword rank trends and stats for keywords and apps tracked in your Appfigures account.

Getting Keyword Stats for an App

Request

GET /aso/stats?{filters}

Arguments

Field Type Description
products Product ID The Appfigures ID of the app to get data for. At this time only one app can be set per request.
countries String the ISO code of the country to fetch results in. At this time only one country can be set per request.
device Enum The device to fetch data from. Only applicable for iOS apps. options: `handheld` and `tablet`.
start Date The date and time of the beginning of the date range to fetch.
end Date The date and time of the end of the date range to fetch.
granularity Enum `daily` or `hourly`. Some plans do not have access to hourly granularity.

Response

Field Type Description
avg_position Number The average of all ranks using the latest rank positions and not including unranked keywords.
avg_position_delta Number The average of all rank changes using the latest rank change and not including unranked keywords.
highest Number The highest position the app was seen in for any of the tracked keywords. The best value is 1.
highest_delta Number The biggest increase (improvement) in rank using the latest position and latest change.
lowest Number The lowest position the app was seen in for any of the tracked keywords.
lowest_delta Number The biggest decrease (decline) in rank using the latest position and latest change.
top_5 Number The number of keywords, from your tracked list, that have a rank greater than or equal to 5 right now.
top_25 Number The number of keywords, from your tracked list, that have a rank greater than or equal to 25 right now.
top_100 Number The number of keywords, from your tracked list, that have a rank greater than or equal to 100 right now.
ranked_keywords Number The number of keywords, from your tracked list, that the selected app is ranked in.
total_keywords Number The number of keywords in your tracked list.
positive Number The number of keywords, from your tracked list, where the app’s rank moved up (improved) during the selected date range.
negative Number The number of keywords, from your tracked list, where the app’s rank moved down (declined) during the selected date range.
unranked_keywords Number The number of keywords, from your tracked list, that the selected app is not ranked in.
unchanged Number The number of keywords, from your tracked list, that have not had any rank changes in the selected date range.

Example Response

// GET /aso/stats?
                products=333918141896&
                countries=US&
                granularity=hourly&
                start=2021-02-03T00:00:00&
                end=2021-02-09T17:00:00&
                device=handheld

{
  "avg_position": 21,
  "avg_position_delta": 9,
  "highest": 1,
  "highest_delta": 0,
  "lowest": 43,
  "lowest_delta": 15,
  "top_5": 1,
  "top_25": 2,
  "top_100": 2,
  "ranked_keywords": 5,
  "total_keywords": 5,
  "positive": 4,
  "negative": 0,
  "unranked_keywords": 0,
  "unchanged": 1
}

Getting Rank Trends

Request

GET /aso?{filters}

Arguments

Field Type Description
group_by Enum How to group the results. At this time only the `keyword` value is supported.
products Product ID The Appfigures ID of the app to get data for. At this time only one app can be set per request.
countries String the ISO code of the country to fetch results in. At this time only one country can be set per request.
device Enum The device to fetch data from. Only applicable for iOS apps. options: `handheld` and `tablet`.
start_date Date The date and time of the beginning of the date range to fetch.
end_date Date The date and time of the end of the date range to fetch.
normalize Bool Whether the results should include entries for days without data or not.
granularity Enum `daily` or `hourly`. Some plans do not have access to hourly granularity.
page Number The page you’d like to fetch.

Response

The response is paged, which means it’ll return two main sections: metadata and results

Metadata.Resultset:

Field Type Description
count Number The max number of results per page.
page Number The current page of results being returned.
total_count Number The number of results for this request.
total_pages Number The number of pages for this request.

Results:

Field Type Description
position Number The rank for the selected app for this search.
delta Number The change in rank, represented by the number of positions moved up or down, between the latest scan and the one before it, using hourly granularity.
last_change Date The date of the last change in rank.
num_apps Number The total number of apps that rank for this keyword.
keyword_id String The keyword’s Appfigures ID.
keyword_term String The search term. This field may include emoji.
popularity Number The popularity score for this keyword, on a scale of 1 – 100. This metric may not be available to all plans.
competitiveness Number The competitiveness score for this keyword, on a scale of 1 – 100. This metric may not be available to all plans.

Example Response

// GET /aso?
          group_by=keyword&
          products=333918141896&
          countries=US&
          device=handheld&
          start_date=2021-02-03T00:00:00&
          end_date=2021-02-09T17:00:00&
          normalize=true&
          granularity=hourly&
          time_zone=utc&
          page=1

{
  "metadata": {
    "resultset": {
      "count": 500,
      "page": 1,
      "total_count": 5,
      "total_pages": 1
    }
  },
  "results": [
    {
      "position": 12,
      "delta": 1,
      "last_change": "2021-02-09T16:00:00",
      "num_apps": 269,
      "keyword_id": "1d86c5c8b1cdcae0ad30574e31e6288a",
      "keyword_term": "stream tv",
      "popularity": 32,
      "competitiveness": 92,
      "importance": "6.12"
    },
    {
      "position": 29,
      "delta": 8,
      "last_change": "2021-02-07T22:00:00",
      "num_apps": 231,
      "keyword_id": "456f3e168ea7f915cd5898bce0162ab4",
      "keyword_term": "stream shows",
      "popularity": 5,
      "competitiveness": 94,
      "importance": "0.74"
    },
    {
      "position": 1,
      "delta": 0,
      "num_apps": 252,
      "keyword_id": "54818b05d116eadc7f67517a3a6e4b33",
      "keyword_term": "discovery",
      "popularity": 52,
      "competitiveness": 100,
      "importance": "52.00"
    },
    {
      "position": 23,
      "delta": -1,
      "last_change": "2021-02-09T09:00:00",
      "num_apps": 241,
      "keyword_id": "7d520907f526f36930df8491326b1dbc",
      "keyword_term": "tv shows",
      "popularity": 39,
      "competitiveness": 100,
      "importance": "6.16"
    },
    {
      "position": 43,
      "delta": -1,
      "last_change": "2021-02-09T16:00:00",
      "num_apps": 273,
      "keyword_id": "f7b44cfafd5c52223d5498196c8a2e7b",
      "keyword_term": "stream",
      "popularity": 57,
      "competitiveness": 98,
      "importance": "7.70"
    }
  ]
}