إنشاء Google Business Profile لموقع ليس لديه ملف
أرسل طلب إنشاء Google Business Profile جديد لموقع بحساب Google متصل، وتابع التحقق عبر الموقع وإدراجاته وأحداث webhooks.
لا تعمل المطابقة والربط إلا إذا كان هناك إدراج نشاط تجاري على Google بالفعل. المتجر الجديد ليس لديه إدراج نشاط تجاري، لذا تطلب من واجهة API إنشاء إدراج له ضمن حساب Google متصل. الإنشاء غير متزامن، وتتحقق Google من الملف وفق جدولها الزمني الخاص، لذا يركز معظم هذا الدليل على متابعة النتيجة.
1. تأكد من أن الموقع ليس لديه إدراج نشاط تجاري على Google
اقرأ إدراجات الأنشطة التجارية المميزة الخاصة بالموقع وابحث عن الصف الذي تكون قيمة site.name فيه هي Google Maps. يُظهر الموقع الذي ليس له وجود على Google القيمة REQUIRING_ACTION مع connectedAccountId بقيمة null.
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"{ "site": { "name": "Google Maps", "url": "maps.google.com" }, "syncStatus": "REQUIRING_ACTION", "displayStatus": "Connect your account to sync the listing", "listingUrl": null, "connectedAccountId": null, "verified": false}إذا كان الصف بالفعل في حالة SYNCED، أو كانت قيمة connectedAccountId معيّنة، فإن الموقع لديه إدراج نشاط تجاري على Google ولا ينطبق عليه هذا الدليل. اربط إدراج النشاط التجاري أو حدّثه بدلًا من ذلك.
2. اختر مجلدًا (اختياري)
تنظم Google إدراجات الأنشطة التجارية ضمن الحساب في مجلدات، تُسمى أيضًا مجموعات الحساب. اعرض مجلدات الحساب المتصل ومرّر أحدها في folderId إذا أراد المالك وضع الملف الجديد داخل مجموعة محددة. تجاوز هذه الخطوة لإنشائه في جذر الحساب.
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/folders \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "getFoldersUnderGoogleAccount": [ { "folderId": "accounts/104890024806530350198", "folderName": "Bright Smile Dental", "locationCount": null } ] }}استخدم folderId دون تغيير؛ فهو السلسلة النصية accounts/{id} وليس رقمًا. قد تكون قيمة locationCount هي null عندما لا توفرها Google. نقطة النهاية صالحة فقط لاتصالات GoogleAccount.
3. أنشئ إدراج النشاط التجاري
أرسل id الخاص بالموقع بترميز base64 والحساب، بالإضافة إلى المجلد إذا اخترت واحدًا. تفيد الاستجابة بأن الطلب قد قُبل، ولا تفيد بأكثر من ذلك.
curl -X POST https://listingsapi.com/api/v4/locations/create/gmb-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "folderId": "accounts/104890024806530350198" }}'{ "data": { "createGmbListingForLocation": { "clientMutationId": null, "success": true, "errors": null } }}تعني success: true أن عملية الإنشاء قد بدأت، ولا تعني أن الملف أصبح منشورًا. تراجع Google كل ملف جديد قبل نشره، وقد يستغرق ذلك أيامًا. عندما تكون قيمة success هي false، يوضح errors السبب: يفتقر الموقع إلى حقول مطلوبة، أو لديه بالفعل إدراج نشاط تجاري على Google، أو أنه مؤرشف، أو أن الحساب المتصل لم يعد نشطًا.
4. تابع حالة التحقق من الموقع
تُرجع كل عملية قراءة للموقع googleVerificationStatus متضمنًا status وmessage. اقرأ الموقع مجددًا لمعرفة المرحلة التي وصلت إليها Google في العملية.
curl -G https://listingsapi.com/api/v4/locations-by-ids \--data-urlencode 'ids=["TG9jYXRpb246MTgwMDI4OQ=="]' \-H "Authorization: API $LISTINGSAPI_KEY"{ "id": "TG9jYXRpb246MTgwMDI4OQ==", "databaseId": 1800289, "googleVerificationStatus": { "status": "PENDING_VERIFICATION", "message": null }}تكفي قراءة واحدة يوميًا لعملية تستغرق أيامًا. التزم بـ Retry-After عند تلقي 429 إذا كنت تتحقق من مواقع كثيرة في وقت واحد.
5. تابع صف Google في إدراجات الأنشطة التجارية
يتتبع صف إدراجات الأنشطة التجارية المميزة الوارد في الخطوة 1 التقدم نفسه من جانب إدراج النشاط التجاري. أعد تنفيذ الاستدعاء الوارد في الخطوة 1 واقرأ syncStatus وverified وlistingUrl.
6. استمع إلى أحداث webhooks الخاصة بالتحقق
إذا عُيّن عنوان URL لـ webhook في لوحة التحكم، فهناك حدثان يغطيان الحالات النهائية، لذا لا تحتاج إلى الاستعلام الدوري. يحمل كلاهما location_id ويتضمنان دائمًا data.connected_account_id: null.
{ "event": "connection.google_verification_failed", "timestamp": "2026-08-25T14:52:31Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": null, "failure_type": "rejected", "reason": "This profile is suspended." }}حالات الفشل من نوع transient وحدها تستحق إعادة المحاولة. لا تُطلِق الحالات قيد التنفيذ أي حدث على الإطلاق، لذا فإن غياب الأحداث لا يدل على شيء: أثناء إجراء التحقق، اقرأ googleVerificationStatus كما في الخطوة 4.
الخطوات التالية
- ربط Google واستيراد المواقع: اربط الحساب الذي يعتمد عليه هذا الدليل.
- التحقق من حالة إدراج النشاط التجاري والروابط المنشورة: نظرة أشمل على كل صف خاص بمنصة نشر.
- الاستجابة للأحداث باستخدام webhooks: تلقَّ أحداث التحقق بدلًا من الاستعلام الدوري.
- المرجع: إنشاء إدراج نشاط تجاري على GMB لموقع، عرض قائمة مجلدات GMB، الحصول على إدراجات الأنشطة التجارية المميزة، عرض قائمة المواقع.