The problem you are experiencing with extracting data from your GA4 report could be due to a couple of things.
Firstly, the data update interval for GA4 could be set to a larger duration, thus the most recent data might not be available at the time of your request. If it’s set to update every hour, the report you pull a half hour after the last update might not contain the most recent data. It might be worth looking into adjusting the data update interval to a smaller time frame to get more up-to-date reports.
Secondly, it’s also possible that the report data is being aggregated in a way that is causing some data to be omitted. The specific settings and parameters with which you’re pulling your reports might be worth revisiting.
Lastly, there could be a delay in the time it takes for events to be processed and appear in your reports. This is typical in data reporting and could be the reason why you’re not seeing some cities appear in your pulled reports that you can see in real-time on your dashboard map.
Without more information on your exact setup and configurations, it’s hard to pinpoint the exact cause. It’s a good idea to revisit your settings, the parameters with which you’re pulling reports, and also consider if processing delay could be affecting your data.