{
  "title": "Missing keyword rank and same-day listing retrieval: AppDrift observation sample",
  "publisher": "AppDrift",
  "publishedDate": "2026-09-10",
  "observationWindow": {
    "startInclusive": "2026-08-13",
    "endExclusive": "2026-09-10",
    "calendarDays": 28
  },
  "queryTimestampsUtc": [
    "2026-09-10T04:25:26.773388Z",
    "2026-09-10T04:26:07.755313Z"
  ],
  "units": {
    "rankObservation": "One retained daily row for an account's tracked keyword series. Multiple checks can overwrite that day's row.",
    "keywordSeries": "An account app record's tracked keyword series, not a distinct keyword phrase across the corpus.",
    "appRecord": "An app record in a customer account. Public store apps tracked in multiple accounts are not deduplicated.",
    "sameDayListingTitle": "At least one nonempty trimmed title in the listing collector's snapshots for that app record on the same calendar date. This does not establish the same storefront or same instant as the keyword observation."
  },
  "platforms": [
    {
      "platform": "Google Play",
      "rankObservations": 6190,
      "keywordSeries": 301,
      "appRecords": 110,
      "observationsWithoutNumericRank": 4001,
      "missingRankObservationsWithSameDayListingTitle": 3673,
      "sharePercent": 91.8,
      "appRecordsWithMissingRank": 57,
      "appRecordsWithMissingRankAndSameDayListingTitle": 49
    },
    {
      "platform": "App Store",
      "rankObservations": 14196,
      "keywordSeries": 690,
      "appRecords": 164,
      "observationsWithoutNumericRank": 7926,
      "missingRankObservationsWithSameDayListingTitle": 5848,
      "sharePercent": 73.8,
      "appRecordsWithMissingRank": 134,
      "appRecordsWithMissingRankAndSameDayListingTitle": 81
    }
  ],
  "total": {
    "rankObservations": 20386,
    "keywordSeries": 991,
    "appRecords": 274,
    "observationsWithoutNumericRank": 11927,
    "missingRankObservationsWithSameDayListingTitle": 9521,
    "sharePercent": 79.8,
    "appRecordsWithMissingRank": 191,
    "appRecordsWithMissingRankAndSameDayListingTitle": 130
  },
  "method": [
    "Read retained keyword rank history with checked_at on or after 2026-08-13 and before 2026-09-10, joined to current tracked keyword records.",
    "Aggregate listing snapshots to one row per app record and snapshot date before joining; mark true when any snapshot has a nonempty trimmed title.",
    "Join on app record and calendar date. Among rows with no numeric rank, count those with a same-day title. No storefront is available in the historical listing snapshots.",
    "Compute the total share as 9521 divided by 11927 times 100, rounded to one decimal; do not average the platform percentages.",
    "All source reads used database-enforced read-only repeatable-read transactions. Only aggregate counts were exported."
  ],
  "limitations": [
    "Historical listing snapshots do not retain storefront, so a same-day title does not establish availability in the country used for the keyword search.",
    "Tracked keyword country is mutable current state and does not independently establish the historical storefront of every observation.",
    "The observations are repeated measurements of users' selected series, not independent trials or a random sample of either store.",
    "Counts are account app records, not deduplicated public store apps; deleted records are absent from the retained sample.",
    "A missing numeric rank does not preserve its cause, source status, or search-result depth. It cannot be treated as proof of removal, rejection, or an indexing delay.",
    "A retrieved title demonstrates a listing response to the collector, not universal installability, device eligibility, all-storefront availability, or availability throughout the day.",
    "Listing title and keyword rank were recorded on the same date, not necessarily at the same instant.",
    "Multiple rank checks can overwrite a daily row; the observation count is not a count of network requests.",
    "These descriptive proportions do not measure a causal effect or establish a platform comparison."
  ]
}
