Pazarlama ekibi rakiplerin gönderilerini akışta görebilir; ancak elle inceleme, hangi format ve konuların düzenli olarak etkileşim aldığını, hangilerinin yalnızca bir kez öne çıktığını anlamak için yeterli değildir. Çözüm, herkese açık gönderilerin verilerini her gün kaydetmek ve bunları zaman, format ve mevcut sayaçlara göre karşılaştırmaktır.

Aşağıda Python ve IG Scraper API ile temel bir veri akışı yer alıyor. Seçilen hesaba ait gönderileri alır, yanıtları JSONL biçiminde kaydeder ve yeni içeriklerin özetini oluşturur. Bu rapordaki etkileşim metrikleri, API’nin toplama anında döndürdüğü değerleri yansıtır; farklı tarihlerde alınan anlık görüntüler bunların değişimini ayrıca incelemeyi sağlar.
Önce neyi karşılaştıracağınızı belirleyin
Küçük bir rakip örneklemi için herkese açık hesapların listesini tutmak ve gönderilerini belirli bir programa göre toplamak yeterlidir. Verilerin yanıtlayabileceği sorularla başlayın: İçerik ne sıklıkla yayımlanıyor, hangi gönderiler Reels veya diğer formatlarda, hangi konular tekrarlanıyor ve mevcut beğeni ve yorum sayaçları nasıl değişiyor?
Depolama alanında iki kavramı birbirinden ayırın: gönderi ve gönderinin anlık görüntüsü. Yanıtta varsa gönderiyi kalıcı bir ID ile tanımlayın; her yeni çalıştırmayı toplama zamanıyla birlikte ayrı bir kayıt olarak saklayın. Böylece dünkü değeri bugünkü değerle ezmek yerine sayaçlardaki değişimi görebilirsiniz.
Belgelenmiş uç noktayı kullanın
jsonscraper belgelerinde temel istek için https://ig.jsonscraper.com adresi ve GET /v1/user/by/username uç noktası belirtiliyor. Gönderileri almak için API haritasında ayrıca GET /v1/user/medias/chunk listeleniyor. Parametrelerin ve yanıt alanlarının kesin kümesini, ürünle ilişkili Postman koleksiyonunda kontrol edin: isteğinizin gerçek yanıtını incelemeden işleyiciyi varsayılan bir yapıya bağlamayın.
İlk kontrol için belgelenmiş profil isteği örneğini kullanın; anahtarı kaynak koda yazmak yerine ortam değişkeni olarak iletin:
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"
Ürün sayfasındaki örnek, profil uç noktası için username, license_key ve cache_timeout parametrelerini gösteriyor. Bir parametreyi diğer uç noktalarda yalnızca belgelerde belirtilmişse kullanın. Gönderi isteği için ilgili uç noktanın güncel parametre adlarını spesifikasyondan alın.
Yanıtları zaman damgalı anlık görüntüler olarak saklayın
Aşağıdaki betik, üretim ortamında çalıştırmaya yönelik bir taslaktır: gönderi uç noktasının URL’si ve parametreleri yapılandırmada bırakılmıştır; bunlar Postman belgelerine göre doldurulmalıdır. İşleyici, özgün JSON’u ve toplama zamanını kaydeder; alanları normalleştirmeyi gerçek yanıtı doğruladıktan sonra ekleyin.
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")
# Uç noktayı ve parametreleri Postman koleksiyonundaki
# GET /v1/user/medias/chunk belgelerine göre doldurun.
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")
Burada bilerek uydurma sayfalama parametreleri veya alan adları kullanılmıyor: bunları ilgili spesifikasyondan alıp API yanıtıyla doğrulamanız gerekir. Zaman aşımı ve raise_for_status() kullanımı, ağ hatalarının sonucun normal veriymiş gibi kaydedilmesinden önce fark edilmesine yardımcı olur. Otomatik çalıştırma için JSON doğrulaması ve hata günlüğü ekleyin.
Zamanlama ve metrikleri ekleyin
Toplamayı cron veya otomasyon planlayıcınız aracılığıyla günde bir kez çalıştırın. Birden fazla hesap için yapılandırma listesini dolaşın, her biri için ayrı bir anlık görüntü kaydedin ve geçici bir hata sonrasında yeniden denemeyi planlayın. Anahtarı ortam değişkeninde veya gizli bilgi deposunda saklayın; API sayfası da anahtarın istemci koduna gömülmemesini öneriyor.
Yanıtı doğruladıktan sonra kayıtları username, media_id, collected_at, içerik türü ve mevcut sayaçlar gibi alanlardan oluşan bir tabloda normalleştirin. Yanıt biçimi değişirse veya bir hesaplamayı doğrulamanız gerekirse işe yarayacağından, özgün JSON’u silmeyin.
Analiz katmanında bir dönem içindeki yeni gönderi sayısını, formata göre mevcut etkileşimlerin medyanını ve aynı gönderinin sayaç değerinin anlık görüntüler arasındaki değişimini hesaplayın. Medyan, tek bir viral gönderinin özeti orantısız biçimde etkilemesini azaltır. Hesapları aynı zaman aralıklarında karşılaştırın ve toplu değerin yanında örneklem büyüklüğünü de gösterin.
Sonuçta ne elde edersiniz?
Ekip, yeniden üretilebilir bir gönderi tablosu ve günlük bir özet elde eder: içerik yayımlama sıklığı, formatlara göre dağılım ve mevcut etkileşimlerin değişimi. Bu bilgiler, akıştan ekran görüntüsü toplamak yerine kendi yayın planınız için varsayımlar geliştirmenize yardımcı olur.
Sonraki adım, normalleştirilmiş kayıtları Google Sheets’e, bir veritabanına veya görselleştirme sistemine göndermek ve metin özetini ayrı bir aşamada oluşturmaktır. Yapay zekâ kullanıyorsanız, ona toplulaştırılmış verileri iletin ve gözlemlenen örüntüleri dönem ile gönderi sayısını belirterek açıklamasını isteyin; strateji kararını editöre bırakın.
Tek bir hesap ve tek bir uç noktayla başlayın: parametreleri ve yanıt yapısını IG Scraper API açıklamasında doğrulayın, ardından bu yapılandırmayı zamanlanmış göreve sabitleyin. Böylece rakip izleme, tek seferlik manuel incelemeden geçmişi saklanan, anlaşılır bir veri akışına dönüşür.