Verifying an address matches its stated postal code before checkout
A mismatched postal code and city on an order form looks like a small typo until it turns into a delivery sent to the wrong part of the country entirely.
Writing a separate version of an ad for every market it might run in is more work than most advertisers using a self-service ad platform are willing to do, and the result, when they do not, is an ad that mentions "free shipping" to a viewer in a country the advertiser does not actually ship to, or a price quoted in a currency the viewer does not use, both of which look sloppy and cost clicks.
An ad platform serving small and mid-size advertisers built a lighter-weight fix: rather than asking advertisers to write country-specific versions, the platform let a single ad template include a few variable fields, country name, a shipping promise, a price, that got filled in per viewer based on where the ad was being served. Resolving where a viewer was came from /v1/ip, run server-side at the moment an ad was selected to serve, returning the viewer's country among other fields.
An advertiser configured what each variable field should say for each country they wanted to target, a short setup step done once, and the platform handled substituting the right version in at serve time. A viewer in one country saw an ad copy that named their own country and quoted a price consistent with what they'd actually be charged, while a viewer in another country serving from the same underlying campaign saw a version tailored to their own market, all from a single ad the advertiser had built once.
This mattered more for smaller advertisers than large ones, since a bigger advertiser typically already has the resources to build fully separate creative per market. The platform's audience, smaller businesses running their own ad campaigns without a dedicated marketing team, benefited from getting a reasonable version of localized ad copy without needing to produce that many separate assets themselves.
The platform was careful about targeting decisions versus copy personalization, treating them as separate concerns. Whether an ad was eligible to be shown to a viewer in a given country at all was still controlled by the advertiser's own targeting settings, set deliberately rather than inferred. The IP-based country detection only decided which version of an already-eligible ad's copy to display, never whether to show the ad in the first place, keeping the advertiser fully in control of where their spend actually went.
Accuracy expectations here were realistic rather than absolute. IP-based country detection is reliable for the great majority of traffic but not infallible, particularly for viewers on certain mobile networks or corporate connections that can occasionally resolve to a different country than the viewer is physically in. For ad copy personalization, an occasional mismatch was a minor cosmetic issue rather than a serious problem, a different risk tolerance than something like fraud screening or legal compliance would allow.
Given how much ad serving volume can be, the platform ran comfortably on an Unlimited key rather than prepaid credit, since a flat €50 monthly cost was easier to reason about against unpredictable and often very high ad serving volume than a per-request bill that could swing widely week to week.
Documentation for the endpoint is at /docs/ipv4-lookup/ and /docs/ipv6-lookup/, with pricing options detailed at /pricing/.