Markkinointitiimi voi nähdä kilpailijoiden julkaisuja syötteessä, mutta manuaalinen tarkastelu ei vastaa hyvin konkreettiseen kysymykseen: mitkä muodot ja aiheet keräävät säännöllisesti reaktioita ja mitkä ovat nousseet esiin vain kerran? Ratkaisu on tallentaa julkisten julkaisujen tiedot päivittäin ja vertailla niitä ajan, muodon ja saatavilla olevien laskurien mukaan.

Alla on Pythonilla ja IG Scraper API:lla toteutettava perusputki. Se hakee valitun tilin julkaisut, tallentaa vastaukset JSONL-muodossa ja kokoaa yhteenvedon uusista julkaisuista. Raportin reaktiomittarit kuvaavat API:n keruuhetkellä palauttamia arvoja; eri päivien tilannekuvien avulla voidaan analysoida erikseen niiden muutoksia.
Määritä ensin, mitä vertailet
Pienessä kilpailijajoukossa riittää, että ylläpidät luetteloa julkisista tileistä ja keräät niiden julkaisut samalla aikataululla. Aloita kysymyksistä, joihin tiedot voivat vastata: kuinka usein sisältöä julkaistaan, mitkä julkaisut ovat Reelsejä tai muita muotoja, mitkä aiheet toistuvat ja miten saatavilla olevat tykkäys- ja kommenttilaskurit muuttuvat.
Erota tallennuksessa kaksi asiaa: julkaisu ja sen tilannekuva. Tunnista julkaisu vakaalla tunnisteella, jos sellainen on vastauksessa; tallenna jokainen uusi keruukerta erilliseksi tietueeksi, johon merkitään keruuaika. Näin näet, miten saatavilla olevat laskurit ovat muuttuneet, sen sijaan että korvaisit eilisen arvon tämänpäiväisellä.
Käytä dokumentoitua reittiä
jsonscraperin dokumentaatiossa peruspyynnön osoitteeksi ilmoitetaan https://ig.jsonscraper.com ja reitiksi GET /v1/user/by/username. Julkaisujen hakemista varten API-kartassa on myös reitti GET /v1/user/medias/chunk. Tarkista parametrien ja vastauskenttien täsmällinen joukko tuotteeseen liittyvästä Postman-kokoelmasta: älä sido käsittelijää oletettuun rakenteeseen ennen kuin olet tutkinut oman pyyntösi todellisen vastauksen.
Käytä alustavaan tarkistukseen dokumentoitua profiilipyyntöesimerkkiä; välitä avain ympäristömuuttujana äläkä kirjoita sitä lähdekoodiin:
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"
Tuotesivun esimerkissä käytetään parametreja username, license_key ja cache_timeout profiilireitillä. Käytä parametria muilla reiteillä vain, jos se on dokumentoitu niille. Hae julkaisupyyntöä varten reitin ajantasaiset parametrit sen määrittelystä.
Tallenna vastaukset ajallisina tilannekuvina
Seuraava skripti on pohja tuotantokäyttöön: julkaisureitin URL ja parametrit jätetään asetuksiin, jotta ne voidaan täyttää tarkasti Postman-dokumentaation mukaan. Käsittelijä tallentaa alkuperäisen JSON-vastauksen ja keruuajan; lisää kenttien normalisointi, kun olet tarkistanut todellisen vastauksen.
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")
# Täytä päätepiste ja parametrit Postman-kokoelman
# reitin GET /v1/user/medias/chunk dokumentaation mukaan.
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")
Tässä ei tarkoituksella ole keksittyjä sivutusparametreja tai kenttien nimiä: ne pitää kopioida kyseisen reitin määrittelystä ja tarkistaa API:n vastauksesta. Aikakatkaisun käyttö pyynnössä ja raise_for_status() auttavat havaitsemaan verkkovirheen ennen kuin tulos tallennetaan tavallisena tietona. Lisää automaattista ajoa varten JSON-tarkistus ja virheloki.
Lisää aikataulu ja mittarit
Aja keruu kerran päivässä cronilla tai automaatiosi ajastimella. Käy useita tilejä varten läpi määrityslista, tallenna jokaisesta oma tilannekuva ja varaudu uusimaan ajo tilapäisen virheen jälkeen. Säilytä avain ympäristömuuttujassa tai salaisuuksien hallintapalvelussa; API-sivu suosittelee erikseen, ettei sitä upoteta asiakaspuolen koodiin.
Kun olet tarkistanut vastauksen, normalisoi tietueet taulukkoon, jonka kenttiä ovat esimerkiksi username, media_id, collected_at, sisällön tyyppi ja saatavilla olevat laskurit. Älä poista alkuperäistä JSON-tiedostoa: siitä on hyötyä, jos vastausmuoto muuttuu tai laskenta pitää tarkistaa.
Laske analytiikkakerroksessa uusien julkaisujen määrä ajanjaksolla, saatavilla olevien reaktioiden mediaani muodoittain sekä saman julkaisun laskurin muutos tilannekuvien välillä. Mediaani vähentää yksittäisen viraalijulkaisun vaikutusta yhteenvetoon. Vertaile tilejä samoilta aikaväleiltä ja ilmoita otoskoko tunnusluvun yhteydessä.
Mitä tuloksena syntyy
Tiimi saa toistettavan julkaisutaulukon ja päivittäisen yhteenvedon: julkaisutiheyden, muotojakauman ja saatavilla olevien reaktioiden kehityksen. Tiedot auttavat muodostamaan hypoteeseja omaa sisältösuunnitelmaa varten sen sijaan, että vain keräilisit kuvakaappauksia syötteestä.
Seuraavaksi voit lähettää normalisoidut tietueet Google Sheetiin, tietokantaan tai visualisointijärjestelmään ja muodostaa tekstiyhteenvedon erillisessä vaiheessa. Jos otat tekoälyn käyttöön, anna sille koostetut tiedot ja pyydä kuvaamaan havaittuja säännönmukaisuuksia ajanjakso ja julkaisujen määrä mainiten; jätä strategiapäätökset toimittajalle.
Aloita yhdestä tilistä ja yhdestä reitistä: tarkista parametrit ja vastausrakenne IG Scraper API:n kuvauksesta ja kiinnitä sitten asetukset aikataulutettuun ajoon. Näin kilpailijoiden seurannasta tulee yksittäisen manuaalisen tarkastelun sijaan selkeä putki, jossa historia säilyy.