Před spuštěním kampaně lze automaticky porovnat každý instagramový účet z briefu s veřejnými údaji profilu. Taková kontrola odhalí nesoulad uživatelského jména, soukromý profil, změnu jména nebo životopisu a rozdíl v počtu příspěvků oproti očekávanému rozmezí. Výsledkem je tabulka kontrol pro marketéra, nikoli automatické rozhodnutí o vhodnosti tvůrce.

Problém: brief zastarává rychleji než tabulka
V seznamu kampaně může být uvedeno jméno účtu, odkaz, orientační počet sledujících a požadavky na veřejný profil. Tyto údaje se snadno rozejdou: účet změní uživatelské jméno, profil se nastaví jako soukromý a čísla v briefu zůstanou stejná. Ručně ověřit jeden profil je snadné; opakovat tuto kontrolu před každou kampaní u celého seznamu účtů už je obtížnější řídit a reprodukovat.
Užitečným řešením je stanovit pro každý řádek jasná pravidla, načíst dostupná veřejná pole v okamžiku kontroly a vedle sebe zapsat původní a skutečné hodnoty. „Shoda“ pak znamená pouze to, že konkrétní pole odpovídá konkrétnímu pravidlu; rozhodnutí o vhodnosti publika nebo kvalitě obsahu zůstává na odborníkovi.
Jaká data načítat
V přehledu endpointů IG API je popsán endpoint GET /v1/user/by/username s povinným parametrem username. V ověřené odpovědi jsou údaje profilu v objektu ig: obsahuje uživatelské jméno, celé jméno, životopis, příznaky soukromí a ověření, počet příspěvků, sledujících a sledovaných účtů. Tato pole popisují dostupný snímek profilu.
Pro předběžnou kontrolu to stačí k porovnání jména účtu, soukromí a číselných limitů. Životopis lze zobrazit obsluze ke kontrole nebo ověřit jednoduchým pravidlem, například přítomností povinného výrazu. Takový textový filtr zjistí shodu řetězce, sám o sobě ale neposuzuje jeho význam ani nepotvrzuje splnění smluvních podmínek.
Jak zapojit požadavek v Pythonu
Nejprve uložte licenční klíč do proměnné prostředí JSONSCRAPER_INSTAGRAM_LICENSE_KEY. Příklad používá potvrzenou základní adresu, endpoint, parametr username a název klíče license_key. CSV obsahuje pole username,min_followers,max_followers,require_public; skript porovná odpověď každého účtu s pravidly a označí řádky, které vyžadují kontrolu.
import csv
import os
import sys
import requests
BASE_URL = "https://ig.jsonscraper.com"
API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
raise SystemExit("Set JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
# brief.csv: username,min_followers,max_followers,require_public
with open("brief.csv", newline="", encoding="utf-8") as source:
brief = list(csv.DictReader(source))
results = []
for row in brief:
username = row.get("username", "").strip()
minimum_text = row.get("min_followers", "").strip()
if not username or not minimum_text:
results.append({
"requested_username": username,
"needs_review": True,
"error": "Missing username or min_followers",
})
continue
try:
response = requests.get(
f"{BASE_URL}/v1/user/by/username",
params={"username": username, "license_key": API_KEY},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
raise ValueError("Unexpected API response")
profile = payload["ig"]
followers = profile.get("follower_count")
minimum = int(minimum_text)
maximum_text = row.get("max_followers", "").strip()
maximum = int(maximum_text) if maximum_text else None
public_required = row.get("require_public", "").strip().lower() == "true"
checks = {
"username_matches": (
isinstance(profile.get("username"), str)
and profile["username"].lower() == username.lstrip("@").lower()
),
"followers_in_range": (
isinstance(followers, int)
and followers >= minimum
and (maximum is None or followers
Spuštění: python check_profiles.py. Nainstalujte knihovnu requests, nastavte proměnnou prostředí v běhovém prostředí a umístěte vedle skriptu soubor brief.csv. Nezapisujte klíč do zdrojového kódu ani výsledného CSV. Skript zpracovává seznam postupně, což usnadňuje kontrolu a ladění menších skupin účtů.
Proč musí chybějící hodnoty zůstat viditelné
V pravidlech kontroly je důležité rozlišovat mezi nulovou hodnotou a chybějícím polem. V příkladu se počet sledujících považuje za vyhovující pouze tehdy, když je číselné pole k dispozici; pokud počitadlo chybí, podmínka není potvrzena a záznam se předá k ruční kontrole. Prázdný limit min_followers se rovněž označí jako chyba vstupních dat, místo aby se automaticky změnil na nulu.
Kontrolu odpovědi je vhodné zachovat jako součást pracovního postupu. Skript nejprve ověří, že vnější stav má hodnotu ok, a poté zkontroluje, zda existuje objekt ig. Chyba HTTP, neočekávaný JSON nebo neplatné pravidlo se zaznamenají do reportu bez textu výjimky, který by mohl odhalit klíč v URL. Obsluha tak rozliší selhání požadavku od nesouladu profilu, aniž by vyzradila tajný údaj.
Jak číst výsledky a automatizovat kontrolu
Soubor profile_check.csv obsahuje původní uživatelské jméno, vrácené jméno, dostupná veřejná pole, výsledky jednotlivých podmínek a celkový příznak needs_review. Tým může filtrovat řádky podle tohoto příznaku a vývojář může report uložit do úložiště nebo předat do dalšího kroku procesu ETL. Pro plánované spouštění použijte plánovač úloh a uložte zvlášť datum spuštění, abyste mohli porovnávat snímky kampaní.

Pokud se pravidlo změní, uchovávejte ho v briefu, nikoli napevno v kódu. Díky tomu lze limity ověřit: u každého řádku je vidět, jaké rozmezí počtu sledujících nebo jaký příznak veřejného profilu se očekával. Pro životopis lze přidat kontrolu výskytu zadaného textu, ale doslovná shoda nenahrazuje věcné posouzení odborníkem.
Na stránce IG Scraper API je uvedena základní adresa, příklad požadavku a odkaz na Postman. Výše uvedený postup používá pouze ověřené vyhledání profilu podle uživatelského jména a nepředpokládá, že tento požadavek vrací příspěvky.
Praktickým výsledkem je opakovatelná předběžná kontrola: místo ručního prohlížení celého seznamu získá tým přehled shod a výjimek navázaných na konkrétní pole briefu. To urychlí kontrolu před spuštěním kampaně a zároveň ponechá rozhodnutí o vhodnosti na odpovědném odborníkovi.