Un team marketing può vedere i post dei concorrenti nel feed, ma la consultazione manuale risponde con difficoltà a una domanda precisa: quali formati e temi raccolgono reazioni con regolarità e quali sono emersi una sola volta? La soluzione consiste nel salvare ogni giorno i dati dei post pubblici e confrontarli nel tempo, per formato e in base ai contatori disponibili.

Di seguito trovi una pipeline di base in Python con IG Scraper API. Recupera i post di un account selezionato, salva le risposte in JSONL e crea un riepilogo dei nuovi contenuti. Le metriche di interazione del rapporto riflettono i valori restituiti dall’API al momento della raccolta; gli snapshot di date diverse consentono di analizzarne separatamente le variazioni.
Per prima cosa, definisci cosa confrontare
Per un piccolo campione di concorrenti è sufficiente tenere un elenco di account pubblici e raccoglierne i post secondo una pianificazione unica. Parti da domande a cui i dati possono rispondere: con quale frequenza vengono pubblicati contenuti, quali post sono Reels o appartengono ad altri formati, quali temi ricorrono e come cambiano i contatori disponibili di Mi piace e commenti.
Nel sistema di archiviazione distingui due concetti: il post e il relativo snapshot. Identifica il post con un ID stabile, se presente nella risposta; a ogni nuova esecuzione salva un record separato con l’ora di raccolta. In questo modo puoi vedere come sono cambiati i contatori disponibili, invece di sovrascrivere il valore di ieri con quello di oggi.
Usa l’endpoint documentato
Nella documentazione di jsonscraper, per una richiesta di base sono indicati l’indirizzo https://ig.jsonscraper.com e l’endpoint GET /v1/user/by/username. Per recuperare i post, la mappa API elenca anche GET /v1/user/medias/chunk. Verifica gli esatti parametri e campi della risposta nella collezione Postman collegata al prodotto: non basare il codice su una struttura presunta prima di aver esaminato la risposta effettiva della tua richiesta.
Per una verifica iniziale, usa l’esempio documentato di richiesta del profilo; passa la chiave tramite una variabile d’ambiente, senza inserirla nel codice sorgente:
curl -G "https://ig.jsonscraper.com/v1/user/by/username" \
--data-urlencode "username=apple" \
--data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
--data-urlencode "cache_timeout=60"
L’esempio nella pagina del prodotto mostra username, license_key e cache_timeout per l’endpoint del profilo. Usa il parametro anche con altri endpoint solo se la relativa documentazione lo prevede. Per richiedere i post, ricava dalla specifica dell’endpoint i nomi aggiornati dei parametri.
Salva le risposte come snapshot temporali
Lo script seguente è una base da adattare per l’esecuzione: l’URL e i parametri dell’endpoint dei post sono lasciati nella configurazione, così da poterli compilare attenendosi alla documentazione Postman. Il gestore salva il JSON originale e l’ora di raccolta; aggiungi la normalizzazione dei campi dopo aver verificato la risposta effettiva.
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
BASE_URL = "https://ig.jsonscraper.com"
USERNAME = os.environ["IG_USERNAME"]
LICENSE_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
OUTPUT = Path("instagram_snapshots.jsonl")
# Compila endpoint e parametri in base alla documentazione dell’endpoint
# GET /v1/user/medias/chunk nella collezione Postman.
MEDIA_PATH = os.environ["IG_MEDIA_PATH"]
MEDIA_PARAMS = json.loads(os.environ["IG_MEDIA_PARAMS_JSON"])
params = {
**MEDIA_PARAMS,
"username": USERNAME,
"license_key": LICENSE_KEY,
}
response = requests.get(
f"{BASE_URL}{MEDIA_PATH}", params=params, timeout=30
)
response.raise_for_status()
payload = response.json()
record = {
"collected_at": datetime.now(timezone.utc).isoformat(),
"username": USERNAME,
"response": payload,
}
with OUTPUT.open("a", encoding="utf-8") as file:
file.write(json.dumps(record, ensure_ascii=False) + "\n")
Non sono stati inseriti parametri di paginazione o nomi di campi inventati: copiali dalla specifica pertinente e verificali sulla risposta dell’API. Le richieste con timeout e raise_for_status() aiutano a rilevare gli errori di rete prima di salvare il risultato come dato ordinario. Per l’esecuzione automatica, aggiungi la convalida del JSON e un registro degli errori.
Aggiungi una pianificazione e le metriche
Esegui la raccolta una volta al giorno tramite cron o lo strumento di pianificazione della tua automazione. Per più account, scorri un elenco di configurazione, salva uno snapshot per ciascuno e prevedi di ripetere l’esecuzione dopo un errore temporaneo. Conserva la chiave in una variabile d’ambiente o in un archivio di segreti; la pagina API raccomanda inoltre di non incorporarla nel codice client.
Dopo aver verificato la risposta, normalizza i record in una tabella con campi come username, media_id, collected_at, tipo di contenuto e contatori disponibili. Non eliminare il JSON originale: sarà utile se il formato della risposta cambia o se occorre verificare un calcolo.
Nel livello analitico, calcola il numero di nuovi post per periodo, la mediana delle interazioni disponibili per formato e la variazione del contatore dello stesso post tra uno snapshot e l’altro. La mediana riduce l’influenza di un singolo post virale sul riepilogo. Confronta gli account su finestre temporali uguali e mostra la dimensione del campione insieme all’aggregato.
Il risultato
Il team avrà una tabella riproducibile dei post e un riepilogo giornaliero: frequenza di pubblicazione, distribuzione per formato e andamento delle interazioni disponibili. Queste informazioni aiutano a formulare ipotesi per il proprio piano editoriale, anziché limitarsi a raccogliere screenshot dal feed.
Il passo successivo consiste nell’inviare i record normalizzati a Google Sheets, a un database o a un sistema di visualizzazione, e generare il riepilogo testuale in una fase separata. Se integri l’IA, passale dati aggregati e chiedile di descrivere gli schemi osservabili indicando periodo e numero di post; la decisione strategica resta al redattore.
Inizia con un account e un endpoint: verifica parametri e struttura della risposta nella descrizione di IG Scraper API, quindi fissa questa configurazione nella pianificazione. Così il monitoraggio dei concorrenti passa da una consultazione manuale occasionale a una pipeline chiara con uno storico conservato.