The client asks: "Is ChatGPT recommending us?" You open the chat, type "best service for X," and see your brand. Is the task solved? No. You've checked one answer, from one country, from your account with history. A buyer in Germany or Brazil might have received a completely different list. In this guide, we will explore how to gather an honest measurement of brand visibility in ChatGPT, Perplexity, Gemini, and Google AI Overviews by country: what data is already known, how to build a sample, where proxies are needed, and how not to waste your budget on noise.
Why One Answer Means Nothing
The AI assistant's response is unstable for three reasons: the randomness of generation, the location of the query, and the channel (app or API). Each has its own numbers.
1. The Answer Changes Almost Every Time
Rand Fishkin (SparkToro) and Patrick O'Donnell (Gumshoe.ai) ran 2,961 queries in ChatGPT, Claude, and Google AI Overviews in November-December 2025. Each of the 12 "recommendation" queries was run 60-100 times on the platform. The results, according to Search Engine Journal:
- The chance of getting the same list of brands upon repetition is less than 1 in 100 for ChatGPT and Google AI responses;
- The same list in the same order is less than 0.1%;
- However, the frequency of brand appearance is more stable: Bose, Sony, Sennheiser, and Apple headphones appeared in 55-77% of 994 responses.
The authors conclude: "the position in the AI response" as a metric is unreliable; it is necessary to measure the share of responses where the brand is mentioned. The study has not been peer-reviewed, and one of the authors works for a company selling tracking, but the methodology is sound: one check is just one roll of the dice.
2. The Answer Depends on the Country
OpenAI's help on searching in ChatGPT clearly states: the service can determine the approximate location by IP address to provide local results, and a VPN changes that location. Thus, the IP is part of the input data.
How much this affects the results was shown in a study by Massive on June 8, 2026: 270 queries to ChatGPT, Gemini, and Copilot from real devices in the USA, UK, Germany, Brazil, and Japan, all in English. The results:
- Gemini completely refused to respond about betting (DraftKings, FanDuel, BetMGM) from British and German IPs and partially refused to rank alcohol there as well. From the USA, Brazil, and Japan, it responded freely;
- Copilot ranked DraftKings first only in the USA and UK; in other countries, FanDuel ranked higher;
- The assistant's choice shifted the brand's position by up to two places.
For local businesses, the gap is even more noticeable. The SOCi Local Visibility Index 2026 (January 2026, about 350,000 locations of 2,751 network brands): a company appears in Google's local block in three locations 35.9% of the time, while in ChatGPT recommendations — only 1.2%.
3. API and App Respond Differently
The most unpleasant trap for those building monitoring on the API. Brandlight compared 2,565 pairs of responses to the same 900 questions in June 2026: through the API and through the web interface of ChatGPT, Gemini, and Perplexity. The match of mentioned brands:
- ChatGPT — 11%, the same brand in first place — 13%;
- Gemini — 12% and 16%;
- Perplexity — 6% and 9%.
The disclaimers are honest: the measurements were taken a day apart, the models in the API and the app are different, and the study was conducted by a company that sells monitoring. But the order of magnitude is clear: the API does not replace what a live user sees.
What You Need for an Honest Measurement
From the three points above, a workable scheme emerges. You can build it yourself or verify it through a paid service like Peec AI, Profound, or Otterly.AI.
- A set of queries, not just one. 20-50 formulations based on real demand: "best X for Y," "alternatives to [competitor]," "X or Z," "how much does X cost." People phrase things differently: in the same SparkToro study, 142 participants wrote queries about headphones with a semantic similarity of only 0.081.
- Repetitions. Each query should be run at least 10 times on the platform and country. Less than that, and the difference between "we were mentioned in 30%" and "in 50%" gets lost in the noise.
- Country — through IP and language together. An English query from Germany and a German query from Germany represent two different markets. Check both if you sell in both.
- Clean session. Without logging into an account, without memory and history, a new browser profile for each run. Otherwise, you are measuring your personalization.
- Two channels. API — for cheap regular background, interface — for a control sample "as seen by the buyer."
- Metric — share of mentions. Plus a list of competitors nearby and sources referenced in the response: these indicate where you are lacking publications.
Step by Step: Your Measurement by Country
Step 1. API Channel: Country Set by Parameter
For background monitoring, IP is not needed: the API has its own location fields.
- OpenAI (tool
web_search): objectuser_locationwithtype: "approximate", two-letter codecountryaccording to ISO 3166-1, free text fieldscityandregion, and timezonetimezonein IANA format (e.g.,Europe/Berlin). For deep research models, location is not supported. - Perplexity: in the object
web_search, fielduser_locationwithcountry(ISO code),region,city, and optionallylatitude/longitude(these can only be passed together withcountry). The documentation notes that city and region significantly increase accuracy.
This is cheap and reproducible, but remember about 6-12% match with the interface. The API provides a trend, not a picture from the customer's perspective.
Step 2. Interface Channel: Country Set by IP
To see the response as the user in another country sees it, the query must come from the IP of that country. Here, proxies are essential:
- For each measurement country — its own stream of proxies targeted by country. If the city is important (local business), targeting by city is needed.
- Type of IP — residential proxies: assistants and Google often encounter data center addresses with captchas or restrictions, and you will measure anti-bot responses instead of actual answers. For markets where customers primarily use phones, the control sample can be done through mobile proxies.
- One run — one session: new IP, new browser profile, timezone, and system language set to the country. A discrepancy between IP and timezone alone reveals automation.
- Within one run, do not change the IP: if the response takes several seconds to load and the address changes mid-session, you will get an error or a repeated check. How to choose between a fixed session and rotation is thoroughly discussed in the article on sticky sessions and rotation for profiles.
- Speed — human-like. Hundreds of identical queries from one address in a row lead to limits and captchas. Distribute runs across addresses and time.
For Google AI Overviews, this is standard parsing of results with geography: how to collect the AI response block without getting a captcha was discussed in the guide on scraping Google results with AI Overviews.
Step 3. Check That the Country is Indeed Correct
Before a series of runs, ensure that the proxy output is recognized as the desired country in several geolocation databases and is not marked as a VPN or hosting. Databases often differ, and the AI service may see a different country than you ordered. How to read the verdicts of checkers is explained in the comparison of IP reputation checkers.
Step 4. Save the Entire Response
Record not just "mentioned / not mentioned," but the entire text, list of brands, source links, country, language, channel, time, and IP. After a month, you will want to recalculate the metric differently, and the runs cannot be repeated.
Step 5. Calculate the Share, Not the Position
The final table: rows are queries, columns are countries and platforms, and the cell contains the share of runs where the brand is mentioned, along with the top 3 competitors. This kind of table answers the client's question. Do not show the position "we are third" without repetitions: according to SparkToro, it almost never repeats.
How Much Traffic is Used
The API channel does not consume proxy traffic. The browser interface does consume traffic: the assistant's page with the response weighs more than the text of the response itself. The exact volume depends on the platform and whether you cut images and fonts, so estimate it yourself: run 10 queries through the proxy and check the consumption in the dashboard. Then it's simple arithmetic: queries × runs × countries × platforms × average run weight. Example structure: 30 queries × 10 runs × 3 countries × 2 platforms = 1,800 runs per measurement cycle. Disabling images and media in the browser usually significantly reduces page weight.
Pitfalls
- Service Rules. OpenAI's terms and conditions and those of other platforms limit automated data collection from the interface. For regular monitoring, keep the official API as the primary channel, and use the interface as a small control sample. Conduct a risk assessment with a lawyer under your jurisdiction.
- Refusals are Data Too. If in some country the assistant refuses to respond to queries in your category (like Gemini on betting in the UK and Germany), this is not a collection error but a result: in that country, the channel is closed for you.
- Language is More Important Than It Seems. The Massive study was conducted only in English. For the real market, queries in the local language may yield a different composition of brands.
- Models Change. A measurement from one day becomes outdated after a model update. Repeat the cycle every week or two and compare the trend.
- Paid Service is Not the Truth. Before purchasing, ask the provider: how many runs per query, through API or interface, from which IPs and in which countries. If there is no answer, it's too early to trust the numbers in the report.
Conclusion
"Is ChatGPT recommending us?" is not a yes or no question, but a share: in which countries, in what language, on which platform, and in what percentage of responses. An honest measurement is built from a set of queries, repetitions, clean sessions, and two channels. The API provides a cheap background, while the interface with a residential IP from the desired country shows what the buyer sees. Start small: 20 queries, 2 countries, 10 runs — and even the first table will tell you more about your visibility than any one-time screenshot.
