🏔️🔍

شخصی‌سازی موتور جستجوی گوگل

گراول — برای رسیدن به قله باید از سنگ‌ریزه عبور کرد.
قرار است یک موتور جستجوی کاملاً از آنِ خودتان بسازید: از ساخت اولیه و اتصال دامنه‌ها، تا فیلترهای حرفه‌ای روی نتایج، و در نهایت لاگ‌گیری و بهینه‌سازیِ علمی و بازگشتی. از صفرِ صفر، بدون هیچ پیش‌نیازی.
⏱️ حدود ۷۵ دقیقه 📈 مبتدی → متوسط → پیشرفته 💻 مناسب مدیر، پژوهشگر و توسعه‌دهنده
i

اول از همه: اصلاً دربارهٔ چه چیزی حرف می‌زنیم؟

گوگل ابزاری دارد به نام موتور جستجوی برنامه‌پذیر (Programmable Search Engine) — که پیش‌تر «موتور جستجوی سفارشی» یا Custom Search Engine نامیده می‌شد. با این ابزار می‌توانید نسخهٔ کوچک و شخصی‌شدهٔ خودتان از گوگل را بسازید: موتوری که فقط در سایت‌هایی که شما تعیین می‌کنید جستجو کند.

یک مثال ملموس: فرض کنید پژوهشگرِ حوزهٔ سلامت هستید و می‌خواهید موتوری داشته باشید که فقط در سایت‌های معتبر پزشکی جستجو کند و بقیهٔ اینترنت را نادیده بگیرد. یا مدیری هستید که می‌خواهید کارمندان فقط داخل چند سایت مرجعِ شرکت جستجو کنند. این دقیقاً همان کاری است که این ابزار می‌کند.

در این آموزش، این مسیر سه‌مرحله‌ای را با هم طی می‌کنیم:

  • مبتدی — موتور را می‌سازیم، دامنه‌ها را وصل می‌کنیم و کلید دسترسی (API Key) می‌گیریم.
  • متوسط — یاد می‌گیریم نتایج را با فیلترهای حرفه‌ای مثل «فقط فایل‌های PDF» یا «فقط مطالب ماه اخیر» دقیق کنیم.
  • پیشرفته — جستجوها را لاگ می‌گیریم، کیفیت نتایج را می‌سنجیم و در یک حلقهٔ بازگشتی، موتور را مدام بهتر می‌کنیم.
⚠️ مهم‌ترین نکتهٔ قبل از شروع — لطفاً کامل بخوانید

بخش «برنامه‌پذیرِ» گوگل که با کد کار می‌کند، یعنی Custom Search JSON API، از سال ۲۰۲۵ برای مشتریان جدید بسته شده است؛ یعنی اگر تا به حال از آن استفاده نکرده‌اید، ممکن است نتوانید کلید تازه‌ای برایش فعال کنید. همچنین گوگل اعلام کرده مشتریان فعلی تا ۱ ژانویهٔ ۲۰۲۷ فرصت دارند به راهکار دیگری کوچ کنند.

پس این آموزش برای شما همچنان کاملاً ارزشمند است، به دو دلیل:

  • ساختِ خودِ موتور جستجو (بخش مبتدی، نسخهٔ ویجت/صفحهٔ آمادهٔ گوگل) هنوز باز و رایگان است و برای همه کار می‌کند.
  • مفاهیم بخش‌های متوسط و پیشرفته (فیلترها، لاگ‌گیری، تحلیل و بهینه‌سازی) مفاهیمی جهانی هستند و عیناً روی جایگزین‌های امروزی مثل Vertex AI Search یا سرویس‌های مشابه هم قابل استفاده‌اند.

ما مسیر را با API رسمی گوگل توضیح می‌دهیم چون استانداردترین و آموزنده‌ترین مرجع است؛ اما هرجا لازم باشد، جایگزین را هم یادآوری می‌کنیم. هیچ‌گاه در گراول واقعیت را از شما پنهان نمی‌کنیم.

۱
سطح مبتدی

ساخت موتور، تنظیم دامنه‌ها و گرفتن کلید API

🎒 پیش‌نیازها (همین و بس) یک حساب گوگل (همان حساب Gmail) و یک مرورگر (مثل کروم یا فایرفاکس). نیازی به نصب هیچ نرم‌افزاری نیست. اگر حساب گوگل ندارید، اول یک حساب رایگان بسازید و بعد برگردید.
۱

وارد کنترل‌پنل موتور جستجو شوید

۳ دقیقه

در مرورگر این نشانی را باز کنید و با حساب گوگلتان وارد شوید:

https://programmablesearchengine.google.com/controlpanel/all

روی دکمهٔ افزودن / ساخت (Add / Create) کلیک کنید تا فرم ساخت موتور جدید باز شود.

💡 نکته اگر نشانی بالا کمی تغییر کرد، کافی است در گوگل عبارت Programmable Search Engine control panel را جستجو کنید؛ اولین نتیجهٔ رسمی گوگل همان کنترل‌پنل است.
۲

به موتورتان یک نام بدهید

۱ دقیقه

در فیلد نام موتور جستجو یک اسم گویا بنویسید؛ مثلاً «جستجوگر منابع پزشکی». این نام را هر زمان می‌توانید عوض کنید.

⚠️ مواظب باش از کلمهٔ «Google» در نام موتورتان استفاده نکنید؛ این خلاف قوانین برندِ گوگل است.
۳

دامنه‌ها را تعیین کنید (قلب کار)

۴ دقیقه

در بخش چه چیزی جستجو شود؟ (What to search?) سایت‌هایی را که می‌خواهید موتور فقط داخل آن‌ها بگردد، یکی‌یکی وارد کرده و روی افزودن بزنید. می‌توانید:

  • کل یک سایت را اضافه کنید: example.com
  • فقط یک بخش را اضافه کنید: example.com/blog/*
  • چند سایت مختلف را کنار هم بگذارید.
⚠️ محدودیت مهم دامنه‌ها از ژانویهٔ ۲۰۲۶، هر موتور جستجوی سفارشی می‌تواند حداکثر روی ۵۰ دامنه جستجو کند. برای بیشترِ کاربردها این عدد بیش از کافی است، اما اگر پروژهٔ بزرگی دارید همین ابتدا آن را در نظر بگیرید.
📖 دامنه یعنی چه؟ «دامنه» همان نشانی اصلی یک سایت است؛ مثل wikipedia.org. وقتی دامنه‌ای را اضافه می‌کنید، یعنی «فقط داخل این خانه بگرد».
۴

تنظیمات نهایی و ساخت

۲ دقیقه

اگر خواستید، گزینه‌های جستجوی تصویر (Image search) و فیلتر محتوای امن (SafeSearch) را روشن کنید. سپس تیک «من ربات نیستم» را بزنید و روی ساخت (Create) کلیک کنید. تبریک — موتورتان ساخته شد!

✅ ایست بازرسی الان باید یک صفحهٔ تأیید ببینید که می‌گوید موتور جستجویتان آماده است و چند دکمه مثل «برو به کنترل‌پنل» یا «کد را بگیر» نشان می‌دهد. اگر این صفحه را می‌بینید، عالی است. اگر نه، به بخش رفع اشکال بروید.
۵

شناسهٔ موتور (cx) را بردارید

۳ دقیقه

وارد کنترل‌پنل موتورتان شوید. در بخش نمای کلی یا پایه‌ای (Overview / Basics) عبارتی می‌بینید به نام Search engine ID. این یک رشتهٔ حروف و عدد است؛ آن را کپی کنید و جایی امن نگه دارید.

📖 این cx چیست؟ شناسهٔ موتور جستجوی شماست — مثل «شمارهٔ پلاک» موتورتان. هر وقت با کد بخواهید از این موتور استفاده کنید، باید همین شناسه را بفرستید تا گوگل بداند کدام موتور را صدا می‌زنید. در کدها معمولاً با نام cx ظاهر می‌شود.
💡 اگر فقط می‌خواهید یک موتور جستجوی آمادهٔ رایگان داشته باشید همین‌جا کارتان تمام است! گوگل یک «صفحهٔ عمومی» (Public URL) در همان بخش نمای کلی به شما می‌دهد. آن لینک را باز کنید یا برای دیگران بفرستید — یک موتور جستجوی کامل و کارآمد در دسترستان است، بدون نیاز به هیچ کدی. مراحل بعدی فقط برای کسانی است که می‌خواهند با کد و API کار کنند.
۶

کلید دسترسی (API Key) بگیرید

۵ دقیقه
📖 API و API Key یعنی چه؟ API یک «درِ رسمی» است که به برنامهٔ شما اجازه می‌دهد مستقیم با سرویس گوگل حرف بزند و نتیجه بگیرد. API Key هم مثل «کلید همان در» است؛ رشته‌ای مخفی که به گوگل می‌گوید «این درخواست از طرف من است». این کلید را مثل رمز عبور، هرگز جایی عمومی منتشر نکنید.

برای گرفتن کلید:

  1. به Google Cloud Console بروید و یک پروژه بسازید (یا پروژهٔ موجود را انتخاب کنید).
  2. سرویس Custom Search API را برای آن پروژه فعال کنید.
  3. به بخش Credentials (اعتبارنامه‌ها) بروید و یک API Key بسازید.
💡 میان‌بر در صفحهٔ رسمی مستندات گوگل با عنوان Custom Search JSON API یک دکمهٔ «Get a Key» وجود دارد که همین مراحل را با چند کلیک برایتان انجام می‌دهد.
⚠️ یادآوری صادقانه همان‌طور که در ابتدا گفتیم، این API برای مشتریان جدید بسته شده است. اگر در این مرحله اجازهٔ فعال‌سازی نگرفتید، غافلگیر نشوید؛ به بخش پایانیِ آموزش برای جایگزین‌ها نگاه کنید. مفاهیم بعدی همچنان کاملاً برایتان مفیدند.
۷

اولین جستجوی واقعی‌تان

۴ دقیقه

حالا دو چیز دارید: کلید (API Key) و شناسهٔ موتور (cx). این نشانی را بسازید و در مرورگر باز کنید (جاهای بزرگ‌نوشته را با مقادیر خودتان جایگزین کنید):

# © Mehdi Rezghi — اولین درخواست جستجو
https://www.googleapis.com/customsearch/v1?key=YOUR_API_KEY&cx=YOUR_CX_ID&q=هوش+مصنوعی

اگر همه‌چیز درست باشد، مرورگر یک متنِ ساختاریافته به نام JSON نشانتان می‌دهد که پر از نتایج جستجوست.

📖 JSON چیست؟ یک قالب متنی ساده و منظم که ماشین‌ها به‌راحتی می‌خوانند. مثل یک فرم پرشده با برچسب و مقدار؛ مثلاً «عنوان: …»، «لینک: …». نگران نباشید، لازم نیست دستی بخوانیدش؛ برنامه‌ها آن را می‌فهمند.
✅ ایست بازرسی اگر در مرورگر متنی دیدید که شامل کلیدواژه‌هایی مثل "items"، "title" و "link" است، یعنی موتور و کلیدتان کار می‌کنند. 🎉 سطح مبتدی تمام شد.
۲
سطح متوسط

فیلترهای پیشرفته: نتایجِ دقیق به‌جای نتایجِ زیاد

🎯 هدف این سطح یک موتور خام همه‌چیز را برمی‌گرداند. یک حرفه‌ای، دقیقاً همان چیزی را می‌گیرد که می‌خواهد. اینجا یاد می‌گیریم با افزودن چند «پارامتر» به نشانی جستجو، نتایج را مثل یک جراح فیلتر کنیم.
۱

آناتومی یک درخواست را بشناسید

۴ دقیقه

هر درخواست جستجو از چند تکه ساخته می‌شود که با & به هم می‌چسبند:

https://www.googleapis.com/customsearch/v1
   ?key=API_KEY      # کلید شما
   &cx=CX_ID       # شناسهٔ موتور شما
   &q=SEARCH_TEXT  # عبارت جستجو
   &PARAM=VALUE   # هر فیلتری که اضافه کنیم اینجا می‌آید
📖 پارامتر یعنی چه؟ یک «دستور اضافه» که به جستجو می‌چسبانید تا رفتارش را تغییر دهید. مثل وقتی در رستوران می‌گویید «قهوه، ولی بدون شکر»: «بدون شکر» همان پارامتر است.
۲

فیلتر زمان: dateRestrict

۵ دقیقه

با این پارامتر می‌گویید «فقط نتایج تازه را بده». مقدارش یک حرف (بازهٔ زمانی) به‌علاوهٔ یک عدد است:

مقدارمعنیمثال
d[عدد]این تعداد روزِ اخیرdateRestrict=d7 → ۷ روز اخیر
w[عدد]این تعداد هفتهٔ اخیرdateRestrict=w2 → ۲ هفتهٔ اخیر
m[عدد]این تعداد ماهِ اخیرdateRestrict=m1 → ۱ ماه اخیر
y[عدد]این تعداد سالِ اخیرdateRestrict=y1 → ۱ سال اخیر

مثال حرفه‌ای: «اخبار هوش مصنوعیِ فقط یک ماه اخیر»:

.../customsearch/v1?key=KEY&cx=CX&q=AI+news&dateRestrict=m1
۳

فیلتر نوع فایل: fileType

۵ دقیقه

می‌خواهید فقط فایل‌های خاصی برگردند؟ مثلاً فقط PDF یا فقط پاورپوینت؟ از این پارامتر استفاده کنید:

# فقط فایل‌های PDF دربارهٔ «انرژی خورشیدی»
.../customsearch/v1?key=KEY&cx=CX&q=solar+energy&fileType=pdf

مقادیر پرکاربرد: pdf، doc، docx، ppt، xls، csv.

💡 ترکیب فیلترها = قدرت واقعی فیلترها را می‌توانید با هم به کار ببرید. مثلاً «فقط فایل‌های PDFِ منتشرشده در یک سال اخیر»: کافی است هم fileType=pdf و هم dateRestrict=y1 را کنار هم بگذارید.
۴

تمرکز روی یک سایت: siteSearch

۴ دقیقه

گاهی می‌خواهید فقط داخل یک سایت خاص بگردید (یا برعکس، یک سایت را حذف کنید). دو پارامتر با هم کار می‌کنند:

پارامترکار
siteSearchنام همان سایت؛ مثلاً siteSearch=who.int
siteSearchFilteri یعنی «فقط این سایت» — e یعنی «همه‌جا جز این سایت»
# فقط نتایجِ داخل سایت who.int
&siteSearch=who.int&siteSearchFilter=i
۵

مرتب‌سازی و صفحه‌بندی

۵ دقیقه
پارامترکارنکته
sort=dateنتایج را از تازه‌ترین مرتب می‌کندپیش‌فرض، مرتب‌سازی بر اساس ربط است
numتعداد نتایج هر صفحهحداکثر ۱۰ — بیشتر ممکن نیست
startاز کدام نتیجه شروع شودبرای صفحهٔ بعد: start=11
⚠️ سقف نتایج این API در کل حداکثر ۱۰۰ نتیجه برمی‌گرداند (یعنی start نمی‌تواند از حدود ۹۱ بیشتر شود). اگر بیشتر می‌خواهید، باید عبارت جستجو را دقیق‌تر کنید، نه اینکه صفحه‌ها را بیشتر ورق بزنید.
۶

فیلترهای کلمه‌ای دقیق

۴ دقیقه
پارامترکار
exactTermsاین عبارت حتماً در نتیجه باشد
excludeTermsاین کلمه در نتیجه نباشد
orTermsدست‌کم یکی از این کلمه‌ها باشد
lr=lang_faفقط نتایج فارسی

مثال حرفه‌ای ترکیبی — «مقالهٔ PDF فارسیِ یک سال اخیر دربارهٔ یادگیری ماشین، ولی بدون کلمهٔ تبلیغاتی»:

.../customsearch/v1?key=KEY&cx=CX
   &q=یادگیری+ماشین
   &fileType=pdf
   &dateRestrict=y1
   &lr=lang_fa
   &excludeTerms=تبلیغ
✅ ایست بازرسی اگر می‌توانید در ذهنتان یک نیاز واقعی (مثلاً «فقط اسلایدهای پاورپوینتِ ماه اخیر») را به ترکیب درستی از این پارامترها ترجمه کنید، سطح متوسط را کامل بلد شده‌اید.
۳
سطح پیشرفته

لاگ‌گیری، تحلیل نتایج و بهینه‌سازی بازگشتی

🧠 فلسفهٔ این سطح تا اینجا «جستجو کردیم». حالا می‌خواهیم یاد بگیریم کدام جستجوها خوب کار می‌کنند و کدام نه — و بر اساس داده، موتور را قدم‌به‌قدم بهتر کنیم. این همان چیزی است که کار یک حرفه‌ای را از یک مبتدی جدا می‌کند.
۱

پیش‌نیاز کوچک: پایتون و کتابخانهٔ درخواست

۴ دقیقه

برای لاگ‌گیری خودکار، یک برنامهٔ کوچک پایتون می‌نویسیم. اگر پایتون ندارید، آموزش نصب پایتون در گراول موجود است. سپس این کتابخانه را نصب کنید:

# © Mehdi Rezghi — نصب کتابخانهٔ درخواست‌های وب
pip install requests
📖 کتابخانه requests چیست؟ ابزاری آمادهٔ پایتون که کار «صدا زدن یک نشانی اینترنتی و گرفتن پاسخ» را برایمان ساده می‌کند. به‌جای کدهای پیچیده، فقط یک خط می‌نویسیم.
۲

یک جستجوگرِ لاگ‌گیر بسازید

۸ دقیقه

این برنامه هر جستجو را انجام می‌دهد و نتیجه‌اش را در یک فایل CSV ذخیره می‌کند تا بعداً بتوانیم تحلیلش کنیم:

# © 2026 Mehdi Rezghi — https://t.me/Mehdirezghi
# جستجوگر لاگ‌گیر گراول
import requests, csv, time
from datetime import datetime

API_KEY = "YOUR_API_KEY"
CX_ID   = "YOUR_CX_ID"
ENDPOINT = "https://www.googleapis.com/customsearch/v1"

def search(query, **filters):
    params = {"key": API_KEY, "cx": CX_ID, "q": query}
    params.update(filters)          # مثلاً fileType="pdf", dateRestrict="m1"
    r = requests.get(ENDPOINT, params=params, timeout=15)
    r.raise_for_status()
    return r.json()

def log_search(query, **filters):
    data  = search(query, **filters)
    total = data.get("searchInformation", {}).get("totalResults", "0")
    items = data.get("items", [])
    top3  = " | ".join(i.get("link", "") for i in items[:3])

    with open("search_log.csv", "a", newline="", encoding="utf-8") as f:
        w = csv.writer(f)
        w.writerow([
            datetime.now().isoformat(timespec="seconds"),
            query, str(filters), total, len(items), top3
        ])
    print(f"✔ '{query}' → کل نتایج: {total} | برگشتی: {len(items)}")

if __name__ == "__main__":
    log_search("یادگیری ماشین", fileType="pdf", dateRestrict="y1")
✅ ایست بازرسی بعد از اجرا، باید کنار برنامه یک فایل به نام search_log.csv بسازد و در ترمینال خطی مثل «✔ 'یادگیری ماشین' → کل نتایج: ...» چاپ شود.
۳

چه چیزهایی را باید لاگ بگیریم؟

۴ دقیقه

یک لاگ خوب باید بعداً به پرسش‌هایمان جواب بدهد. برای هر جستجو دست‌کم این‌ها را نگه دارید:

ستونچرا مهم است؟
زمانببینیم کیفیت نتایج در طول زمان بهتر یا بدتر شده
عبارت جستجو + فیلترهابفهمیم کدام ترکیب‌ها بهترند
تعداد کل نتایجخیلی کم = عبارت بیش‌ازحد تنگ؛ خیلی زیاد = بیش‌ازحد گشاد
سه نتیجهٔ اولمعیار سریعِ اینکه نتایج «مرتبط» بوده‌اند یا نه
۴

تحلیل: یک نتیجه چقدر «خوب» است؟

۶ دقیقه

برای سنجش کیفیت، دو معیار سادهٔ حرفه‌ای کافی است:

  • دقت (Precision): از ده نتیجهٔ اول، چند تا واقعاً به کار آمدند؟ اگر ۸ تا مفید بود، دقت شما ۸۰٪ است.
  • نرخ نتیجهٔ خالی: چند درصد جستجوها هیچ نتیجه‌ای برنگرداندند؟ این‌ها را باید بازطراحی کنید.
📖 دقت (Precision) به زبان ساده: «از چیزهایی که موتور به من داد، چند درصدش واقعاً همانی بود که می‌خواستم؟» هرچه این عدد بالاتر، موتور شما هوشمندتر است.
💡 یک ترفند عملی در فایل CSV یک ستون دستیِ «مفید بود؟» اضافه کنید و برای هر ردیف نمرهٔ ۰ تا ۱۰ بدهید. همین جدولِ ساده، بعد از ۲۰ جستجو، الگوهای واضحی نشانتان می‌دهد.
۵

حلقهٔ بهینه‌سازی بازگشتی

۶ دقیقه

«بهینه‌سازی بازگشتی» یعنی یک چرخهٔ تکرارشونده که هر دور، موتور را کمی بهتر می‌کند:

۱. جستجو + لاگ ۲. سنجش دقت ۳. یافتن ضعف ۴. اصلاح فیلتر/دامنه

و بعد دوباره از قدم ۱ شروع می‌کنید. چند نمونه از «اصلاح» در قدم ۴:

اگر دیدید…این اصلاح را انجام دهید
نتایج نامرتبط زیادندبا exactTerms یا excludeTerms عبارت را تنگ‌تر کنید
نتایج قدیمی‌اندdateRestrict را سخت‌گیرانه‌تر کنید (مثلاً از y1 به m3)
یک سایت مدام زباله می‌دهدآن دامنه را از موتور حذف کنید
نتایج خیلی کم‌اندیک فیلتر را بردارید یا دامنه‌های مرتبط بیشتری اضافه کنید
✅ ایست بازرسی اگر بتوانید یک بار این حلقه را کامل بچرخانید — جستجو، سنجش، پیدا کردن یک ضعف، و یک اصلاح مشخص — یعنی روش کار را یاد گرفته‌اید. بقیه‌اش فقط تکرار و تجربه است.
۶

پایش سهمیه و مدیریت خطای فشار

۵ دقیقه
📖 سهمیه (Quota) چیست؟ سقفِ تعداد جستجوهایی که در روز اجازه دارید. نسخهٔ رایگان این API روزانه ۱۰۰ جستجو می‌دهد؛ فراتر از آن هزینه دارد (حدود ۵ دلار برای هر ۱۰۰۰ جستجو، تا سقف ۱۰٬۰۰۰ در روز). سهمیه هر شب به وقت اقیانوس آرام صفر می‌شود.

پایش: در Google Cloud Console به بخش API Dashboard بروید تا مصرف روزانه‌تان را ببینید. برای پایش دقیق‌تر می‌توانید در Cloud Operations روی سرویس customsearch.googleapis.com هشدار (Alert) تنظیم کنید.

خطای فشار (Rate limit): اگر زیادی سریع درخواست بفرستید، گوگل خطای 429 می‌دهد. راه درست، «عقب‌نشینی نمایی» است: کمی صبر کن، اگر باز خطا داد صبر را دو برابر کن.

# © Mehdi Rezghi — عقب‌نشینی نمایی هنگام خطای فشار
import time, requests

def safe_search(query, **filters):
    delay = 1
    for attempt in range(5):
        try:
            return search(query, **filters)
        except requests.HTTPError as e:
            if e.response.status_code == 429:
                print(f"⏳ فشار زیاد؛ {delay} ثانیه صبر…")
                time.sleep(delay)
                delay *= 2        # 1 → 2 → 4 → 8 …
            else:
                raise
    raise RuntimeError("بعد از چند تلاش، همچنان خطای فشار.")
📖 عقب‌نشینی نمایی (Exponential Backoff): یعنی بین تلاش‌های ناموفق، زمان انتظار را هربار دو برابر کنیم (۱ ثانیه، ۲، ۴، ۸…). این‌طور هم به سرور فشار نمی‌آوریم و هم شانس موفقیت بالا می‌رود.

🔧 رفع اشکالات رایج

❌ خطای API key not valid کلید را اشتباه کپی کرده‌اید یا سرویس Custom Search API را برای پروژه فعال نکرده‌اید. کلید را دوباره از Cloud Console بردارید و مطمئن شوید سرویس روشن است.
❌ خطای Invalid Value برای cx شناسهٔ موتور را ناقص گذاشته‌اید. آن را از بخش Overview/Basics کنترل‌پنل دوباره و کامل کپی کنید.
❌ هیچ items در پاسخ نیست یعنی جستجو نتیجه‌ای نداشت. عبارت را گشادتر کنید، یک فیلتر را بردارید، یا مطمئن شوید دامنه‌های موتور محتوای مرتبط دارند.
❌ خطای 429 / quota exceeded به سقف ۱۰۰ جستجوی رایگانِ روزانه رسیده‌اید. تا فردا (نیمه‌شب به وقت اقیانوس آرام) صبر کنید یا از کد «عقب‌نشینی نمایی» استفاده کنید.
❌ اصلاً اجازهٔ ساخت کلید جدید را ندارم کاملاً طبیعی است — این API برای مشتریان جدید بسته شده. برای پروژهٔ تازه به سراغ جایگزین‌ها بروید (بخش بعد).

🎉 تمام شد! حالا شما بلدید…

  • یک موتور جستجوی سفارشی بسازید و دامنه‌هایش را تنظیم کنید.
  • شناسهٔ موتور (cx) و کلید (API Key) بگیرید و اولین جستجو را بزنید.
  • نتایج را با فیلترهای حرفه‌ای مثل dateRestrict، fileType و siteSearch دقیق کنید.
  • جستجوها را لاگ بگیرید، دقتشان را بسنجید و در یک حلقهٔ بازگشتی، موتور را مدام بهتر کنید.
  • سهمیه را پایش کنید و خطای فشار را حرفه‌ای مدیریت کنید.
🧭 اگر مشتری جدید هستید و به جایگزین نیاز دارید چون API رسمی گوگل برای ثبت‌نام‌های تازه بسته شده، برای پروژهٔ جدید می‌توانید سراغ گزینه‌هایی مثل Vertex AI Search گوگل (برای جستجوی تا ۵۰ دامنه) یا سرویس‌های مشابهِ جستجوی وب بروید. خبر خوب این است که همهٔ مفاهیمی که اینجا یاد گرفتید — فیلتر، لاگ، سنجش دقت و بهینه‌سازی بازگشتی — عیناً روی آن سرویس‌ها هم به کار می‌آیند.