Bloga geri dön

2026'da Mercado Libre Verilerini Analiz Etmek: Neden Parsel Fiyatları Yanlış Bölgeden Topluyor?

Mercado Libre, teslimat bölgesini belirtmeyen herkese varsayılan bir indeks atar ve bu indeksten fiyat, ücretsiz teslimat ve bay-box kazananını hesaplar. Kamu API uç noktaları 403 PolicyAgent ile yanıt verir, vitrin kendi cihaz kontrolü ile karşılaşır. Mercado Libre'nin yedi vitrini hakkında doğru veri toplamanın yollarını ve bunun için hangi proxy'lerin gerektiğini doğrulanmış gerçeklerle inceliyoruz.

📅12 Eylül 2026
2026'da Mercado Libre Verilerini Analiz Etmek: Neden Parsel Fiyatları Yanlış Bölgeden Topluyor?

40 bin Mercado Libre kartı indirdiniz, Arjantin'deki ortalama fiyatı hesapladınız ve raporu verdiniz. Sorun şu ki, bu Arjantin fiyatları değil. Bu, 1430 posta kodu için fiyatlar - platformun nereye gönderileceğini söylemeyen herkes için varsayılan bölge.

Mercado Libre, Latin Amerika'da 18 ülkede faaliyet göstermektedir, grubun 2025 yılı gelirleri 28,9 milyar dolar olarak gerçekleşmiştir ve şirkette 123.670 çalışan bulunmaktadır. E-ticaret analitiği için bu, bölgede en önemli veri kaynağıdır ve aynı zamanda en az değerlendirilen tuzaktır: platform, sorgunun nereden geldiğine ve oturumun hangi teslimat bölgesini gördüğüne bağlı olarak farklı fiyatlar, farklı teslimatlar ve farklı kazanan bay-box sunmaktadır. Neyin bozulduğunu ve nasıl doğru bir şekilde toplayacağınızı inceleyelim.

2026 yılında ne değişti: API fiilen kapatıldı

Birkaç yıl önce "Mercado Libre'den veri çekme" kamuya açık API ile çözülüyordu: GET api.mercadolibre.com/sites/MLA/search?q=iphone yetkilendirme olmadan sonuç veriyordu. Bugün bu durum böyle değil.

12 Eylül 2026 tarihindeki kontrol, normal bir sunucu IP'si ile, token olmadan:

  • /sites — HTTP 403, gövde {"code":"PA_UNAUTHORIZED_RESULT_FROM_POLICIES","blocked_by":"PolicyAgent","message":"En az bir politika UNAUTHORIZED döndürdü."}
  • /sites/MLA/search?q=iphone&limit=1 — HTTP 403, {"message":"forbidden","error":"forbidden"}
  • /items/{id} — HTTP 403, aynı PolicyAgent

Üstelik sorun sadece token eksikliğinde değil. Satıcılar ve entegratörler, kamuya açık şikayetlerinde geçerli bir access token ile aynı durumu tarif ediyor: /users/me ve siparişler normal yanıt veriyor, ancak katalog ve derecelendirme uç noktaları blocked_by: PolicyAgent döndürüyor. API erişim politikası, uç noktalara göre noktasal olarak sıkılaştırılıyor ve belgeler buna yetişemiyor.

Aynı zamanda platformun, resmi API üzerinde yaşamaya devam edenler için iki teknik son tarihi var:

  • 30 Ağustos 2026 tarihinden itibaren uygulamalar ayrılmalıdır: Mercado Libre için ayrı bir uygulama, Mercado Pago için ayrı bir uygulama. GET applications/$APP_ID ile kontrol ediliyor - eğer kapsamda urn:mp:... türünde haklar kaldıysa, uygulama yeniden düzenlenmelidir, aksi takdirde Mercado Libre API'sine erişimi kaybeder;
  • access token'ın sorgu parametrelerinde iletilmesi güvenli olarak kabul edilmemektedir: bu tür istekler platform tarafından 301 yanıtı ile reddedilecektir. Token yalnızca Authorization: Bearer başlığında gönderilmelidir.

Pratik sonuç basit: 2026 yılında resmi API, kendi hesabıyla çalışan bir satıcı için bir kanal, piyasa analitiği aracı değil. Eğer görev, rakipleri ve bölgedeki fiyatları izlemekse, kamu vitrinini kullanıyorsunuz. Belirli bir görev için neyi seçmeniz gerektiğini, resmi API, hazır veri seti veya kendi parser'ınız konulu makalede ele almıştık.

Bir web sitesi yerine yedi vitrin

Mercado Libre, tek bir ülke filtresi ile bir katalog değil, kendi alan adları, para birimleri ve ürün teklifleri olan bağımsız platformlar setidir. API'de bunlar site_id olarak adlandırılır:

  • MLA — Arjantin (mercadolibre.com.ar, ARS)
  • MLB — Brezilya (mercadolivre.com.br, BRL)
  • MLM — Meksika (mercadolibre.com.mx, MXN)
  • MLC — Şili, MCO — Kolombiya, MLU — Uruguay, MPE — Peru, MLV — Venezuela

Aynı ürün MLA ve MLB'de iki farklı kart, iki farklı satıcı, iki farklı lojistik şemadır. Onları "doğrudan" karşılaştırmak anlamsızdır: para birimi ve teslimat koşullarında normalizasyon gereklidir. Bu arada, para birimi hakkında - platform, HTML'de biçimlendirme kurallarını kendisi verir: Arjantin için bu "currency_id":"ARS", "decimal_separator":",", "thousands_separator":".", "time_zone":"GMT-03:00". Fiyatı nokta ile kesen parser'lar, Latin Amerika vitrinlerinde bin kat hata yapar.

Önemli olan: fiyat ve teslimat alıcının bölgesine göre hesaplanır

İşte, adres olmadan sorgu yapıldığında listado.mercadolibre.com.ar sonuç sayfasına gömülü bir parça:

"location_info":{"zipcode":"1430","inferred_zipcode":false,"default_zipcode":true,"user_zone":"X19"}

Bunu şöyle okumak gerekir: 1430 kodu, IP'nizden çıkarılmamış (inferred_zipcode: false), varsayılan (default_zipcode: true). Üst kısımda "Enviar a Capital Federal" yazıyor - yani platform sessizce sizin Buenos Aires metropolitan bölgesinde olduğunuzu varsayıyor ve her şeyi bunun için hesaplıyor.

Ve çok şey hesaplıyor. Aynı HTML'de, bölgeye bağlı teslimat etiketleri var: same_day_free_shipping "Llega gratis hoy" metni ile, simge vpp_full_icon - "Enviado por FULL" (ürün platformun deposundan). "iphone" sorgusu için bir sonuç sayfasında bu tür ücretsiz teslimat referansları 96 kez bulundu. Bölgeye bağlı olarak buy_box bloğu ile "Otra opción de compra": hangi satıcının kartı kazanacağı, kimin daha ucuz ve hızlı bir şekilde belirli bir koda ulaştıracağına bağlıdır.

Sonuç: bir kez bile teslimat bölgesini sormayan bir parser, "Arjantin pazarı" değil, tek bir şehir kesiti toplar. Başkentten bin kilometre uzaktaki milyonluk şehirler için ülke raporu bu, kendini hiç göstermeyen bir hata; rakamlar makul görünüyor, sadece yanlış soruya yanıt veriyorlar.

Girişte engel: /gz/account-verification

İkinci sürpriz, ulaşım seviyesinde bekliyor. listado.mercadolibre.com.ar/iphone sorgusu hemen sonuç vermez: HTTP 302 /gz/account-verification?go=...&tid=... - kendi cihaz kontrol sayfasına gelir. Bu Cloudflare değil ve DataDome değil: engel kodunda ne reCAPTCHA, ne Turnstile, ne de üçüncü taraf anti-bot işaretleri var, ancak bir dizi cihaz mekanizmasıyla ilgili çağrı var. Sayfa yaklaşık 41 KB ağırlığında, JavaScript ile oluşturuluyor ve onsuz hiçbir şey göstermiyor.

Kontrol sırasında davranış gösterici oldu. Temiz bir sunucu IP'si ile ilk istek engeli geçti: 2.425.906 baytlık gerçek bir sonuç geldi - 50 ui-search-layout bloğu ve 120 fiyat düğümü andes-money-amount__fraction, her şey sunucuda çizildi. Aynı adresten tekrar eden istekler artık /gz/account-verification ile karşılaştı ve daha ileri geçemediler. Bu IP ile Brezilya ve Meksika vitrinleri tamamen engellendi.

Bu tipik bir "itibar" mekanizmasıdır: adres, küçük bir güven kredisi alır, birkaç istekte bunu harcar ve kapanır. Burada tek bir test hiçbir şey kanıtlamaz - önemli olan, veri merkezi havuzundan sürekli erişimin olmaması ve davranışın ülkeden ülkeye değişmesidir.

Yanıt başlıklarından bir başka detay: platform _d2id (bir yıl süreli cihaz kimliği, x-request-device-id içinde de kopyalanır) ve _mldataSessionId ile Max-Age=1800 koyar. Otuz dakika - bu, IP'nin tutulması gereken doğal oturum uzunluğudur.

robots.txt ne diyor

Toplama işlemine başlamadan önce, platformun kurallarını okumak önemlidir. Hem Arjantin hem de Brezilya vitrinlerinde robots.txt üst bloğu aynı ve oldukça net:

  • AI tarayıcıları için tam yasak (Disallow: /): Amazonbot, GPTBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Perplexity-User;
  • önizleme botlarına izin verilir: FacebookExternalHit, FacebookBot, Twitterbot, LinkedInBot;
  • Bingbot için — Crawl-delay: 5 ve kapalı bölümlerin uzun bir listesi: /gz/cart/, /gz/checkout/, /perfil/vendedor/, /perfil/comprador/, /navigation/, /noindex/ ve diğerleri.

Bundan iki pratik sonuç çıkar. Birincisi: sepet, ödeme ve kullanıcı profilleri açıkça kapalıdır - oraya teknik veya hukuki olarak girmemek gerekir. İkincisi: Crawl-delay: 5 arama botu için, platformun otomasyondan beklediği hız için dürüst bir referanstır. Tek bir adresten beş saniye isteği, makul bir başlangıç noktasıdır, havadan bir rakam değildir.

Doğru toplama nasıl yapılır: adım adım

  1. Toplama matrisini sabitleyin. "Mercado Libre" değil, "ülke × teslimat bölgesi" çiftleri listesi. Arjantin için bu, örneğin, Capital Federal, Córdoba, Rosario, Mendoza; Brezilya için — São Paulo, Rio, Belo Horizonte, Recife. Bölge belirtilmeden fiyatın bir anlamı yoktur ve bu karar kodun ilk satırından önce alınmalıdır.
  2. Gerekli ülkenin yerel IP'sini alın. Brezilya ve Meksika vitrinlerindeki sunucu adresleri hiç engeli geçemedi, Arjantin vitrininde ise ilk istekte tükendi. Yerel bir konut adresi, hem erişim hem de güvenilirlik sorununu çözer: platform, size başlangıçta yerel bir alıcıya göstereceği şeyi gösterir.
  3. IP'yi oturum boyunca tutun. Oturum çerezi 30 dakika yaşar - her istekte döngü, hem onu hem de seçilen bölgeyi sıfırlar ve yeniden varsayılan kodu alırsınız. 10-30 dakika boyunca bir bölgeye yapışkan oturum, sonra değişim. Pencere uzunluğunu nasıl seçeceğimizi, yapışkan oturumlar kılavuzunda ele almıştık.
  4. Ham HTTP istemcisi yerine tarayıcı motoru kullanın. /gz/account-verification sayfası tamamen JavaScript ile oluşturulmuştur: scriptlerin çalıştırılması olmadan engelde kalırsınız. Playwright veya adımlar arasında durumu koruyan bir benzeri.
  5. Teslimat bölgesini açıkça belirtin. Bağlantı /addresses/v3/navigation/hub'a yönlendirir; adres ayarlandıktan sonra durum oturum çerezi içinde yaşar. Bu prosedürü oturum başına bir kez çalıştırın, her kart için değil.
  6. location_info'yu kontrol toplamı olarak yapın. Her kaydedilen sayfada, zipcode'nin hedefle eşleşip eşleşmediğini ve default_zipcode'nin false olup olmadığını kontrol edin. Eğer bayrak true kaldıysa - veritabanına bu satırı yazmıyoruz, çünkü o bölge için toplanmamıştır. Bu kontrol, sessiz hataların çoğunu elemek için yeterlidir.
  7. Fiyatları sunucu HTML'sinden alın. Fiyat ve teslimat etiketleri zaten sunucuda çizilmiştir - iç JSON uç noktalarını takip etmenize gerek yok. Fiyatın yanına zipcode, user_zone, currency_id ve zaman damgasını ekleyin: bunlar olmadan rakam doğrulanamaz.
  8. Hızı koruyun. Platformdan gelen referans - bir adresten istekler arasında beş saniye. Hız gerekiyorsa, adres havuzunu genişletin, tek bir IP'den sıklığı artırmayın: tam olarak bir adresten gelen patlama engeli kapatır.

Geç öğrenilen tuzaklar

Varsayılan bölgedeki sessiz hata. En pahalı hata, bir istisna ile düşmez. Veriler toplanır, rapor oluşturulur, fiyatlandırma kararı alınır - ve sadece bir çeyrek sonra, tüm analitiğin São Paulo'nun bir bölgesini tanımladığı ortaya çıkar.

Sayfa ağırlığı. Bir sonuç sayfası - 2,4 MB. Günde dört ülkede ve dört bölgede bin sayfa - bu, ayda onlarca gigabayt trafik demektir. Yerel tarifede gigabayt başına ödeme ile bu ana maliyet kalemidir, bu nedenle hemen tarayıcı motorunda görüntü ve yazı tiplerinin yüklenmesini kapatmak mantıklıdır: fiyatlar HTML'de, parser için resimler - saf israf.

Normalizasyon olmadan ülkeleri karşılaştırma. ARS, BRL, MXN ve farklı ayrımcılar. Toplama tarihindeki kura göre tek bir para birimine getirin ve orijinal fiyatı ve para birimini ayrı saklayın, aksi takdirde geriye dönük olarak yeniden hesaplamak mümkün olmayacaktır.

Resmi API'ye güvenme. Eğer entegrasyon hala API üzerindeyse, 30 Ağustos 2026'dan itibaren ayrı uygulama gereksinimini ve token'ın sorgudan başlığa geçişini aklınızda bulundurun. API'ye erişimin sessiz kaybı, kodunuzda bir hata gibi görünmektedir.

Bu görev için hangi proxy'ler gerekli

Yerel — fiyat ve teslimat toplamak için çalışan bir seçenek. Aldığınız vitrin için o ülkenin adresine ve mümkünse kontrol ettiğiniz teslimat bölgesine ihtiyacınız var: böylece veriler elde edilir ve güvenilir kalır. Yerel proxy'ler oturum tutma ile her iki gereksinimi de aynı anda kapatır.

Mobil — engelin özellikle inatçı olduğu yerlerde. Latin Amerika, yüksek mobil trafik payına sahip bir bölgedir ve bir mobil operatör adresi platform için son derece sıradan görünmektedir. Dar, ancak kritik kesitlerde haklıdır, toplu veri indirmelerinde değil.

Veri merkezi — keşif ve hizmet görevleri için: robots.txt okumak, sayfa yapısını almak, alan adının erişilebilirliğini kontrol etmek. Düzenli fiyat toplama için, kontrol gösterdiği gibi, kaynak yetersiz kalmaktadır.

Kısa

Mercado Libre, 2026 yılında verileri anonim olarak sunmamaktadır. Resmi API, PolicyAgent politikaları ile kapandı, vitrin kendi cihaz kontrolü ile karşılaşıyor ve ana rakam - fiyat ve teslimat - alıcının bölgesine göre hesaplanıyor; platform, belirtilmediği takdirde varsayılan olarak bunu atar. Doğru bir parser burada yanlış olandan, aşma hileleri ile değil, disiplinle ayrılır: ülke, bölge, para birimi ve location_info her satırın yanında. Geri kalan her şey, isteklerinizin nereden geldiği meselesidir.