Skip to main content
Thirdwatchthirdwatch
Other

Research Visual Content Trends With Image Search Data

Export Google Images results as JSON — URLs, dimensions, domains, positions — to study what visual styles dominate a niche across markets.

Sep 21, 2026 · 2 min read · 469 words
See the scraper →

TL;DR — The Google Images Scraper exports image search results — URL, dimensions, source page, domain, position — as JSON. Researchers use it to measure which styles, sources, and formats dominate a visual niche, per market.

Why image SERPs are a research surface

What ranks on image search defines a topic's visual grammar — the aspect ratios, photo styles, and source types that win. For design research, content strategy, and market studies, that is measurable data, not taste.

The question "what does 'sustainable packaging' look like online" becomes answerable: run the query, count domains, histogram dimensions, sample the images.

How does this compare to the alternatives?

Manual browsing Design trend reports Thirdwatch actor
Cost Free, unscalable Report fees Pay per result
Reliability Anecdotal Annual snapshots Current index
Setup time Zero Procurement Minutes
Maintenance Repeat manually Annual Re-run anytime

Trend reports lag by quarters. The index is live — you measure the niche as it is this week.

How to research visual trends in 4 steps

How do I pull the result set?

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("thirdwatch/google-images-scraper").call(
    run_input={
        "queries": ["sustainable packaging design", "refillable cosmetics"],
        "maxResults": 100,
        "country": "us", "language": "en",
    }
)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())

How do I profile the niche's sources?

import pandas as pd
df = pd.DataFrame(rows)
print(df.groupby("domain")["position"].agg(["count", "median"]))

Domains with high counts and low median positions are the niche's visual authorities — study what they publish.

How do I compare across markets?

run_de = client.actor("thirdwatch/google-images-scraper").call(
    run_input={"queries": ["sustainable packaging design"],
               "maxResults": 100, "country": "de", "language": "de"})
de = pd.DataFrame(list(client.dataset(run_de["defaultDatasetId"]).iterate_items()))
overlap = set(df.domain) & set(de.domain)
print(f"Domain overlap US/DE: {len(overlap)}")

Low overlap means a market-specific visual ecosystem — useful when localizing creative.

How do I quantify format trends?

df["aspect"] = df.width / df.height
print(df.aspect.describe())
print(df.groupby("query")["aspect"].median())

Median aspect ratio per query tells you whether the niche runs square, landscape, or vertical — a real input for ad and hero-image specs.

Sample output

{"imageUrl": "https://eco-pkg.example.com/img/refill-station.jpg",
 "width": 1600, "height": 900,
 "sourcePageUrl": "https://eco-pkg.example.com/case-study",
 "domain": "eco-pkg.example.com",
 "query": "sustainable packaging design", "position": 4}

Common pitfalls

Positions drift and personalize — aggregate medians over several runs rather than quoting single ranks. SafeSearch and market norms shape what a query returns; fix country/language for comparability. Records are an index, not the pixels — download a stratified sample for style-level claims. The actor supplies the measurement; the design interpretation stays with you.

Related use cases

Frequently asked questions

What can image search results tell a researcher?

Which domains dominate a visual niche, what aspect ratios and resolutions rank, and how results differ by market — the returned fields (domain, dimensions, position, source page) support all three analyses.

Can I compare the same query across countries?

Yes. Run it twice with different country values; gl changes what surfaces. Each record carries the query so cross-market merges stay clean.

Does it return the images themselves?

It returns URLs and metadata. Download a sample if you need pixel-level analysis — the index tells you where to look.

How stable are positions across runs?

Image SERPs drift slowly and personalize lightly — treat position as a directional rank and aggregate across runs rather than reading single positions.

Related

Try it yourself

100 free credits, no credit card.

About 30 real searches. Add the MCP to Claude or Cursor in two minutes.