← بازگشت به وبلاگ

چگونه می‌توان موقعیت‌های اپلیکیشن‌ها را در اپ استور و گوگل پلی برای بیش از ۵۰ کشور بدون مسدودیت جمع‌آوری کرد

بررسی می‌کنیم که چرا نظارت ASO بدون IP محلی داده‌های نادرستی ارائه می‌دهد، چه پروکسی‌هایی برای بررسی موقعیت‌ها در کشورهای مختلف نیاز است و چگونه می‌توان جمع‌آوری داده‌ها را بدون مسدودیت تنظیم کرد.

📅۱۱ آبان ۱۴۰۵

اگر شما مسئول ASO هستید و موقعیت برنامه را از دفتر در مسکو یا کی‌یف بررسی می‌کنید، نتایج در App Store و Google Play برای کاربران در ایالات متحده، آلمان یا برزیل متفاوت خواهد بود — و اغلب کاملاً متفاوت از آنچه که شما می‌بینید. بررسی می‌کنیم که چرا این اتفاق می‌افتد، چه پروکسی‌هایی برای نظارت صحیح نیاز است و چگونه می‌توان داده‌ها را از ده‌ها کشور جمع‌آوری کرد، بدون اینکه خطر مسدود شدن حساب کاربری یا کپچا برای هر درخواست وجود داشته باشد.

چرا بدون IP محلی موقعیت‌ها در App Store و Google Play نادرست است

الگوریتم‌های نمایش App Store و Google Play فقط به کلمات کلیدی و رتبه برنامه توجه نمی‌کنند، بلکه به موقعیت جغرافیایی درخواست نیز توجه دارند. نتایج جستجو به طور جداگانه برای هر فروشگاه-منطقه تشکیل می‌شود: اپل 175 ویترین جداگانه فروشگاه دارد، در حالی که گوگل — کاتالوگ‌های محلی برای هر کشور. اگر شما App Store را با IP از روسیه باز کنید و سعی کنید موقعیت برنامه را در نتایج ایالات متحده مشاهده کنید، سیستم یا ویترین روسی را به شما نشان می‌دهد، یا داده‌ها را با تحریف به دلیل شناسایی VPN برمی‌گرداند.

در عمل اینگونه به نظر می‌رسد: متخصص ASO می‌بیند که برنامه در رتبه 3 بر اساس کلمه کلیدی قرار دارد، اما در واقع در کشور هدف — ایالات متحده یا آلمان — در رتبه 15 قرار دارد. تفاوت در رتبه‌بندی به دلیل رقابت محلی، زبان رابط کاربری دستگاه، تاریخچه نصب‌ها در منطقه و حتی زمان روز در منطقه زمانی کشور است. بنابراین برای ردیابی صحیح موقعیت‌ها به یک آدرس IP نیاز است که به طور فیزیکی به کشور مورد نظر متصل باشد، و در ایده‌آل — به یک شهر خاص یا اپراتور.

این موضوع به ویژه برای شرکت‌هایی که به طور همزمان به چندین بازار وارد می‌شوند، بحرانی است: به عنوان مثال، برنامه‌ای را در کشورهای Tier-1 (ایالات متحده، بریتانیا، کانادا) راه‌اندازی می‌کنند و به طور همزمان در حال آزمایش تبلیغات در جنوب شرقی آسیا هستند. بدون پروکسی‌های محلی شما به سادگی نمی‌توانید تصویر واقعی را ببینید و تصمیمات خود را بر اساس داده‌های تحریف‌شده در مورد استراتژی ASO اتخاذ خواهید کرد.

چرا اپل و گوگل بررسی‌های انبوه را مسدود می‌کنند

بررسی دستی موقعیت‌ها در 30-50 کشور از طریق تغییر منطقه در تنظیمات تلفن ساعت‌ها طول می‌کشد و به طور فیزیکی مقیاس‌پذیر نیست. بنابراین تیم‌های ASO از اسکریپت‌های خودکار یا خدماتی استفاده می‌کنند که ده‌ها و صدها درخواست به فروشگاه‌ها ارسال می‌کنند. در اینجا مشکلات آغاز می‌شود: اپل و گوگل الگوی درخواست‌های مکرر از یک IP، User-Agent‌های مختلف از یک آدرس و همچنین رفتار غیرمعمول (تغییر "مکان" به طور آنی بدون جابجایی واقعی دستگاه) را شناسایی می‌کنند.

واکنش می‌تواند متفاوت باشد: از کپچای موقت و محدودیت سرعت (rate limiting) تا مسدود شدن کامل آدرس IP در سطح CDN فروشگاه‌ها. اگر شما از یک IP مرکز داده برای بررسی موقعیت‌ها در 20 کشور به طور متوالی استفاده کنید، احتمالاً پس از چند ده درخواست، سرویس شروع به ارائه نتایج خالی یا هدایت به صفحه‌ای با بررسی "فعالیت مشکوک" می‌کند. بر خلاف شبکه‌های اجتماعی که حساب کاربری خاصی مسدود می‌شود، در اینجا معمولاً IP یا دامنه IP-Subnet مسدود می‌شود — بنابراین این مشکل شامل همه کسانی می‌شود که از یک مجموعه آدرس‌های مشترک مرکز داده استفاده می‌کنند.

نکته دوم — دقت جغرافیایی. حتی اگر پروکسی مسدود نشده باشد، IP‌های مرکز داده اغلب به عنوان "سروری" شناسایی می‌شوند و نتایج بر اساس آن‌ها ممکن است با نتایج برای کاربران واقعی اینترنت موبایل یا Wi-Fi خانگی متفاوت باشد. برای وظایف ASO که در آن دقت حداکثری داده‌ها مهم است، این موضوع بحرانی است.

چه پروکسی‌هایی برای نظارت بر موقعیت‌های ASO بر اساس کشورها نیاز است

انتخاب نوع پروکسی به مقیاس نظارت و دقت مورد نیاز داده‌ها بستگی دارد. برای تحلیل دستی یک‌باره یک روش مناسب است، برای ردیابی خودکار منظم در ده‌ها کشور — روش دیگری. مقایسه زیر به شما کمک می‌کند تا تصمیم بگیرید.

نوع پروکسی دقت جغرافیایی ریسک مسدود شدن کی استفاده کنیم
پروکسی‌های مرکز داده پایین-متوسط بالا بررسی‌های سریع بدون مقیاس
پروکسی‌های مسکونی بالا پایین نظارت منظم در 20-50 کشور
پروکسی‌های موبایل حداکثر حداقل بررسی نتایج همان‌طور که کاربر واقعی برنامه می‌بیند

برای اکثر تیم‌های ASO، تعادل بهینه قیمت و کیفیت را پروکسی‌های مسکونی با اتصال به شهر می‌دهند: آن‌ها مانند کاربران عادی با اینترنت خانگی به نظر می‌رسند و اجازه می‌دهند موقعیت‌ها را به طور همزمان در ده‌ها جغرافیا جمع‌آوری کنند بدون خطر مسدود شدن انبوه. پروکسی‌های موبایل باید به صورت نقطه‌ای متصل شوند — به عنوان مثال، زمانی که نیاز به بررسی تفاوت نتایج در App Store برای ترافیک موبایل اپراتور در یک کشور خاص است، که به ویژه برای جغرافیاهایی با سهم بالای اینترنت موبایل (هند، اندونزی، برزیل) مهم است.

بررسی دستی از طریق مرورگر ضد شناسایی: تنظیمات مرحله به مرحله

اگر شما نیاز دارید به سرعت موقعیت برنامه را در 5-10 کشور بدون اتصال به خدمات پیچیده بررسی کنید، استفاده از مرورگر ضد شناسایی مانند Dolphin Anty، AdsPower، GoLogin یا Octo Browser راحت است. هر پروفایل مرورگر یک "اثر انگشت دیجیتال" جداگانه با موقعیت جغرافیایی، زبان سیستم و منطقه زمانی مورد نیاز ایجاد می‌کند — این تصویر دقیق‌تری از نتایج ارائه می‌دهد نسبت به تغییر فقط VPN.

تنظیمات به شکل زیر است:

  1. برای هر کشور هدف نظارت یک پروفایل جدید در مرورگر ضد شناسایی ایجاد کنید.
  2. در تنظیمات پروکسی نوع اتصال — HTTP یا SOCKS5 را انتخاب کنید، IP، پورت، نام کاربری و رمز عبور را مشخص کنید.
  3. در پارامترهای پروفایل، منطقه زمانی و زبان سیستم را تعیین کنید که با کشور پروکسی مطابقت داشته باشد (به عنوان مثال، برای ایالات متحده — زبان انگلیسی، منطقه زمانی America/New_York).
  4. App Store را از طریق نسخه وب (apps.apple.com) باز کنید یا Google Play محلی را بر روی پروفایل اندروید شبیه‌سازی شده نصب کنید.
  5. کلمه کلیدی هدف را وارد کنید و موقعیت برنامه را در نتایج ثبت کنید، با گرفتن اسکرین‌شات برای گزارش.
  6. برای هر کشور تکرار کنید، با استفاده از پروفایل جداگانه با پروکسی مربوطه.

این رویکرد برای بررسی‌های یکباره قبل از راه‌اندازی کمپین تبلیغاتی یا قبل از محلی‌سازی برنامه برای بازار جدید مناسب است، اما برای ردیابی منظم 50+ کشور به صورت روزانه به صورت دستی — این کار از نظر زمانی غیرموجه است.

اتوماسیون از طریق خدمات ASO: AppFollow، Sensor Tower، Mobile Action

برای نظارت سیستماتیک بر موقعیت‌ها، اکثر متخصصان ASO از خدمات آماده استفاده می‌کنند: AppFollow، Sensor Tower، Mobile Action، ASOdesk، App Radar. آن‌ها خودشان بررسی نتایج را از سرورهایی انجام می‌دهند، که به طور فیزیکی در مناطق مورد نیاز قرار دارند و داده‌ها را به صورت داشبورد با تاریخچه تغییرات موقعیت‌ها در روزها ارائه می‌دهند.

نکته مهم: حتی این خدمات گاهی اوقات تأخیر در به‌روزرسانی داده‌ها برای کشورهای کمتر محبوب دارند یا تعداد کلمات کلیدی را در تعرفه محدود می‌کنند. اگر شما به بررسی انعطاف‌پذیر و مکرر نیاز دارید — به عنوان مثال، ردیابی ساعتی موقعیت‌ها در طول آزمایش A/B تبلیغاتی — باید داده‌ها را به صورت خودکار از طریق اسکریپت‌ها با پروکسی جمع‌آوری کنید. در این صورت پروکسی‌های مسکونی با هدف‌گذاری جغرافیایی در سطح کشور یا شهر به عنصر تقریباً الزامی زیرساخت تبدیل می‌شوند، زیرا اجازه می‌دهند کاربران واقعی را بدون وابستگی به محدودیت‌های خدمات خارجی شبیه‌سازی کنند.

رویکرد ترکیبی — زمانی که نظارت پایه از طریق یک سرویس آماده انجام می‌شود و بررسی‌های نقطه‌ای از جغرافیاها و کلمات کلیدی خاص از طریق اسکریپت خود با پروکسی انجام می‌شود — حداکثر انعطاف‌پذیری را با هزینه‌های معقول فراهم می‌کند.

مثال فنی: اسکریپت جمع‌آوری موقعیت‌ها با چرخش پروکسی

برای تیم‌هایی که توسعه‌دهنده یا تحلیل‌گر داده دارند، ساده‌تر است که اسکریپت خود را برای بررسی موقعیت‌ها از طریق جستجوی عمومی App Store و Google Play جمع‌آوری کنند. در زیر یک مثال ساده‌شده به زبان Python با استفاده از کتابخانه requests و چرخش پروکسی بر اساس کشورها آمده است.

import requests

# دیکشنری: کشور -> پروکسی با اتصال به منطقه
proxies_by_country = {
    "us": {"http": "http://user:[email protected]:9000",
           "https": "http://user:[email protected]:9000"},
    "de": {"http": "http://user:[email protected]:9000",
           "https": "http://user:[email protected]:9000"},
    "br": {"http": "http://user:[email protected]:9000",
           "https": "http://user:[email protected]:9000"},
}

def check_app_store_position(keyword, country_code, app_id):
    url = f"https://itunes.apple.com/search"
    params = {
        "term": keyword,
        "country": country_code,
        "entity": "software",
        "limit": 50
    }
    proxies = proxies_by_country.get(country_code)
    response = requests.get(url, params=params, proxies=proxies, timeout=15)
    results = response.json().get("results", [])

    for position, app in enumerate(results, start=1):
        if str(app.get("trackId")) == str(app_id):
            return position
    return None  # برنامه در 50 برتر پیدا نشد

# مثال اجرای بررسی در سه کشور
for country, proxy in proxies_by_country.items():
    pos = check_app_store_position("فیتنس ترکر", country, app_id="123456789")
    print(f"کشور: {country.upper()}, موقعیت: {pos}")

برای Google Play API عمومی رسمی برای جستجو وجود ندارد، بنابراین بررسی معمولاً از طریق تجزیه HTML صفحه نتایج play.google.com/store/search با هدرهای Accept-Language صحیح و پروکسی جغرافیایی انجام می‌شود، یا از طریق کتابخانه‌های غیررسمی طرف سوم. در هر دو مورد، افزودن تأخیر بین درخواست‌ها (2-5 ثانیه) و تغییر User-Agent همراه با تغییر IP بسیار مهم است تا الگوی درخواست‌ها به عنوان اسکنر خودکار به نظر نرسد.

برای نسخه تولیدی چنین اسکریپتی منطقی است که چرخش پروکسی با تغییر خودکار IP درون یک کشور متصل شود — این احتمال مسدود شدن را در تعداد زیاد کلمات کلیدی کاهش می‌دهد و اجازه می‌دهد چندین درخواست را به طور همزمان بدون انتظار برای خنک شدن محدودیت‌ها بررسی کنید.

اشتباهات رایج و نشانه‌های مسدود شدن

در عمل، تیم‌های ASO با مشکلات مشابهی در تنظیم نظارت بر موقعیت‌ها مواجه می‌شوند. در اینجا اصلی‌ترین اشتباهات آورده شده است:

  • یک IP برای همه کشورها. استفاده از یک پروکسی واحد برای بررسی 30 کشور به طور همزمان منجر به نتایج متناقض می‌شود — فروشگاه‌ها "حرکت‌های" ناگهانی را مشاهده می‌کنند و شروع به ارائه صفحات حفاظتی می‌کنند.
  • درخواست‌های بسیار مکرر بدون تأخیر. ارسال 50+ درخواست در دقیقه از یک IP — راه مستقیم به مسدود شدن موقت در سطح CDN است.
  • عدم تطابق زبان و منطقه زمانی با جغرافیای پروکسی. اگر IP آمریکایی باشد، اما زبان سیستم روسی باشد، نتایج ممکن است مخلوط و غیرقابل اعتماد باشد.
  • استفاده از پروکسی‌های مشترک (shared) مرکز داده بدون چرخش. چنین IP‌ها اغلب قبلاً "مشهور" شده‌اند و قبل از اینکه شما شروع به استفاده از آن‌ها کنید، تحت مسدودیت قرار می‌گیرند.
  • نادیده گرفتن نشانه‌های کپچا. اگر به جای داده‌ها، صفحه HTML با بررسی "لطفاً تأیید کنید که شما ربات نیستید" دریافت می‌شود — این سیگنالی است برای کاهش فرکانس درخواست‌ها یا تغییر IP، نه تکرار فوری درخواست.

نشانه‌هایی که نشان می‌دهد پروکسی یا روش جمع‌آوری داده‌ها قبلاً "سوخته" است: کاهش ناگهانی تعداد پاسخ‌های موفق، نتایج خالی یکسان برای کلمات کلیدی مختلف، هدایت به صفحات تأیید سن یا منطقه به جای نتایج جستجوی معمولی.

چک‌لیست راه‌اندازی نظارت بر اساس کشورها

قبل از راه‌اندازی ردیابی منظم موقعیت‌ها، از این لیست عبور کنید:

  • لیست کشورها و کلمات کلیدی اولویت‌دار برای نظارت تهیه شده است.
  • برای هر کشور پروکسی با اتصال جغرافیایی دقیق (مسکونی یا موبایل) انتخاب شده است.
  • تأخیر بین درخواست‌ها (از 2 تا 5 ثانیه) و چرخش User-Agent تنظیم شده است.
  • زبان رابط و منطقه زمانی پروفایل/درخواست با کشور پروکسی مطابقت دارد.
  • لاگ‌گیری خطاها و کپچا برای واکنش سریع تنظیم شده است.
  • فاصله زمانی بررسی تعیین شده است: روزانه برای 10 بازار برتر، هر چند روز یکبار برای بقیه.
  • نتایج در یک جدول یا داشبورد واحد برای پیگیری تغییرات موقعیت‌ها ذخیره می‌شود.

نتیجه‌گیری

نظارت صحیح بر موقعیت‌ها در App Store و Google Play بر اساس کشورها بدون آدرس‌های IP محلی ممکن نیست — این یک نیاز اساسی است که اعتبار همه سایر راه‌حل‌های ASO را تعیین می‌کند. یک پروکسی عمومی یا VPN برای همه کشورها تصویر تحریف‌شده‌ای ارائه می‌دهد و به سرعت به مسدود شدن‌ها در هنگام مقیاس‌گذاری بررسی منجر می‌شود. بررسی دستی از طریق مرورگر ضد شناسایی برای بررسی‌های یکباره مناسب است، خدمات خودکار — برای ردیابی منظم پایه، و اسکریپت خود با چرخش پروکسی — برای کنترل انعطاف‌پذیر بر فرکانس و عمق بررسی بازارهای خاص.

اگر شما قصد دارید نظارت منظم بر موقعیت‌ها در ده‌ها کشور بدون خطر مسدود شدن را راه‌اندازی کنید، توصیه می‌کنیم با پروکسی‌های مسکونی با اتصال به شهرهای خاص شروع کنید — آن‌ها دقت جغرافیایی بیشتری ارائه می‌دهند و خطر مسدود شدن را در بررسی‌های مکرر به حداقل می‌رسانند. برای سناریوهایی که در آن مهم است نتایج را دقیقاً همان‌طور که کاربر موبایل برنامه می‌بیند مشاهده کنید، باید پروکسی‌های موبایل اپراتور خاصی در کشور هدف را در نظر بگیرید.