بررسی وضعیت ویرایش برای مکان‌ها و مشخصه‌ها

وقتی اطلاعات کسب‌وکار را ازطریق My Business Business Information API یا میانای کاربری «نمایه کسب‌وکار» به‌روز می‌کنید، ویرایش‌ها قبل‌از اینکه به‌طور زنده در «جستجوی Google» و Maps نشان داده شوند، از یک خط لوله تعدیل و درستی‌سنجی عبور می‌کنند. علاوه‌براین، Google ممکن است جزئیات کسب‌وکار را براساس گزارش‌های کاربر یا منابع داده پروانه‌دار به‌روز کند.

نقاط پایانی v1alpha Edit Status به شما امکان می‌دهد نمای یکپارچه‌ای از مکان یا مشخصه‌های آن را در یک درخواست بازیابی کنید:

  • داده‌های ارائه‌شده توسط فروشنده: مقادیری که آخرین‌بار توسط فروشنده ارسال شده است.
  • داده‌های مشتری‌محور: مقادیر موجود در «جستجوی Google» و Maps.
  • فراداده فیلد گسترده: وضعیت ویرایش هر فیلد یا هر مشخصه، ازجمله مرحله چرخه حیات آخرین ویرایش، منبع اصلی (API یا UI)، مُهر زمان آخرین ویرایش، و هرگونه دلیل نقض خط‌مشی درصورت رد شدن ویرایش.

قبل‌از شروع

پیش‌از استفاده از My Business Business Information API، برنامه‌تان را ثبت کنید و اطلاعات اعتباری OAuth 2.0 را دریافت کنید. برای جزئیات درباره نحوه شروع به کار، راه‌اندازی اولیه را ببینید.

بازیابی داده‌های مکان گسترده

برای بررسی داده‌های مکان ارائه‌شده توسط فروشنده، داده‌های مکان ارائه‌شده به مصرف‌کننده، و وضعیت ویرایش هر فیلد برای یک مکان، locations.getExtended را فراخوانی کنید.

برخلاف locations.get، locations.getExtended به پارامتر readMask نیاز ندارد و منبع کامل ExtendedLocation را برمی‌گرداند.

درخواست

HTTP
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended

پاسخ

پاسخ حاوی سه فیلد سطح بالا است:

  • locationProvidedByMerchant: داده‌های Location که توسط فروشنده مدیریت می‌شود.
  • locationSeenByConsumers: داده‌های Location که برای مصرف‌کنندگان در «جستجوی Google» و Maps قابل‌مشاهده است.
  • extendedFieldData: نقشه‌ای از نام‌های فیلد Location سطح بالا در snake_case (مانند title،‏ phone_numbers،‏ website_uri، storefront_address، یا regular_hours) به اشیاء ExtendedFieldData. کلیدها همیشه نام‌های فیلد سطح بالا و ساده هستند و هرگز فیلدهای فرعی تودرتو نیستند.
{
  "locationProvidedByMerchant": {
    "name": "locations/{locationId}",
    "title": "Example Coffee Roasters - Best Coffee in Sydney",
    "phoneNumbers": {
      "primaryPhone": "02 5550 1234"
    },
    "websiteUri": "https://www.example.com/"
  },
  "locationSeenByConsumers": {
    "name": "locations/{locationId}",
    "title": "Example Coffee Roasters",
    "phoneNumbers": {
      "primaryPhone": "+61 2 5550 1234"
    },
    "websiteUri": "https://www.example.com/"
  },
  "extendedFieldData": {
    "title": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_REJECTED",
      "rejectionReason": "MISREPRESENTATION",
      "updateTime": "2026-09-25T08:00:00Z",
      "source": "SOURCE_API"
    },
    "phone_numbers": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE",
      "updateTime": "2026-09-20T14:15:00Z",
      "source": "SOURCE_UI"
    },
    "website_uri": {
      "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_ACCEPTED",
      "updateTime": "2026-09-15T10:30:00Z",
      "source": "SOURCE_API"
    }
  }
}

بازیابی داده‌های مشخصه‌های گسترده

برای بررسی مقادیر ارائه‌شده توسط فروشنده، مقادیر ارائه‌شده به مصرف‌کننده، و وضعیت ویرایش مشخصه‌های مکان، locations.attributes.getExtended را فراخوانی کنید.

درخواست

HTTP
GET https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}/attributes:getExtended

پاسخ

پاسخ منبع ExtendedAttributes را برمی‌گرداند که حاوی فهرستی از ورودی‌های ExtendedAttribute است. هر ورودی attributeProvidedByMerchant و attributeSeenByConsumers را با یک شیء extendedFieldData برای آن مشخصه جفت می‌کند:

{
  "name": "locations/{locationId}/attributes",
  "extendedAttributes": [
    {
      "attributeProvidedByMerchant": {
        "name": "attributes/has_wheelchair_accessible_entrance",
        "valueType": "BOOL",
        "values": [
          true
        ]
      },
      "attributeSeenByConsumers": {
        "name": "attributes/has_wheelchair_accessible_entrance",
        "valueType": "BOOL",
        "values": [
          true
        ]
      },
      "extendedFieldData": {
        "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_ACCEPTED",
        "updateTime": "2026-09-10T12:00:00Z",
        "source": "SOURCE_API"
      }
    },
    {
      "attributeProvidedByMerchant": {
        "name": "attributes/wi_fi",
        "valueType": "ENUM",
        "values": [
          "free_wi_fi"
        ]
      },
      "attributeSeenByConsumers": {
        "name": "attributes/wi_fi",
        "valueType": "ENUM",
        "values": [
          "paid_wi_fi"
        ]
      },
      "extendedFieldData": {
        "lastEditLifecycleStage": "EDIT_LIFECYCLE_STAGE_PENDING",
        "updateTime": "2026-09-28T16:45:00Z",
        "source": "SOURCE_API"
      }
    }
  ]
}

آشنایی با فراداده فیلد گسترده

هر شیء ExtendedFieldData حاوی فیلدهای زیر است:

فیلد نوع شرح
lastEditLifecycleStage EditLifecycleStage وضعیت تعدیل یا ارائه جدیدترین ویرایش این فیلد یا مشخصه.
rejectionReason PolicyViolation مورد نقض خط‌مشی که باعث رد شدن ویرایش شده است. وقتی lastEditLifecycleStage EDIT_LIFECYCLE_STAGE_REJECTED باشد، درج می‌شود.
updateTime ‫string‏ (Timestamp) مُهر زمان مربوط به آخرین ویرایش ارسال‌شده برای این فیلد یا مشخصه (قالب RFC 3339).
source Source سطح مبدأ که فروشنده ویرایش را در آن ارسال کرده است (SOURCE_API یا SOURCE_UI).

ویرایش مراحل چرخه حیات

EditLifecycleStage enum نشان می‌دهد که ویرایش در کجای چرخه حیات خود قرار دارد:

مقدار شرح اقدام توصیه‌شده
EDIT_LIFECYCLE_STAGE_ACCEPTED ویرایش فروشنده تأیید شده است و واجدشرایط ارائه است. هیچ‌کدام لازم نیست.
EDIT_LIFECYCLE_STAGE_PENDING ویرایش فروشنده درحال بازبینی است و در فهرستگان مشتری اعمال نشده است. منتظر بمانید تا بازبینی تکمیل شود. وقتی ویرایشی درانتظار است، ویرایش‌های یکسان را مکرراً ارسال نکنید.
EDIT_LIFECYCLE_STAGE_REJECTED ویرایش فروشنده پذیرفته نشد. rejectionReason را برای مقدار PolicyViolation خاص بررسی کنید. نقض خط‌مشی زمینه‌ای را اصلاح کنید و بااستفاده از locations.patch یا locations.updateAttributes به‌روزرسانی جدیدی ارسال کنید.
EDIT_LIFECYCLE_STAGE_UPDATED_BY_GOOGLE مقدار مشتری‌نما توسط Google به‌روز شده است (برای مثال، از گزارش‌های کاربر یا منابع خارجی) و با مقدار ارائه‌شده توسط فروشنده متفاوت است. مقدار locationSeenByConsumers یا attributeSeenByConsumers را بازبینی کنید و آن را بپذیرید یا لغو کنید. مدیریت به‌روزرسانی‌های Google را ببینید.
EDIT_LIFECYCLE_STAGE_DRAFT ویرایش به‌عنوان پیش‌نویس ذخیره شده است (برای مثال، در مکان تأییدنشده) و در «جستجوی Google» و Maps فعال نیست. درستی‌سنجی مکان را تکمیل کنید تا فهرستگان بتواند فعال شود.
EDIT_LIFECYCLE_STAGE_UNSPECIFIED مرحله چرخه حیات ویرایش نامشخص یا نامعلوم است. هیچ‌کدام.

ویرایش منابع

Source enum کانالی را که فروشنده ازطریق آن ویرایش را ارسال کرده است شناسایی می‌کند:

  • SOURCE_API: ویرایش ازطریق My Business Business Information API ارسال شده است.
  • SOURCE_UI: ویرایش ازطریق واسط کاربر وب «نمایه کسب‌وکار» یا برنامه تلفن همراه ارسال شده است.
  • ‫SOURCE_UNSPECIFIED: منبع ویرایش مشخص نشده است.

موارد نقض خط‌مشی

وقتی lastEditLifecycleStage برابر با EDIT_LIFECYCLE_STAGE_REJECTED باشد، فیلد rejectionReason مقدار شمارشی PolicyViolation را ارائه می‌دهد که توضیح می‌دهد چرا ویرایش رد شده است. دلایل رد شدن شامل موارد زیر است (نمونه‌ها):

  • وضعیت نمایه و حساب: ACCOUNT_RESTRICTED_AND_SUSPENDED، ACCOUNT_RESTRICTED_AND_EDIT_REJECTED، ASSOCIATED_ACCOUNT_SUSPENDED، BUSINESS_INELIGIBLE، LOCATION_SUSPENDED، LOCATION_VERIFICATION_REQUIRED، OWNERSHIP_REVOKED، PO_BOX.
  • محدودیت‌های ویرایش: EDITING_RESTRICTION، ILLEGAL_BUSINESS_HOURS_EDIT، IDENTITY_CHANGE، GEOGRAPHIC_LOCATION_CHANGE.
  • خط‌مشی‌های محتوا: MISREPRESENTATION، OFF_TOPIC، PERSONAL_INFO، GIBBERISH_AND_REPETITIVE، OBSCENITY_AND_PROFANITY، GENERIC_QUALITY.

برای فهرست کامل مقادیر و توضیحات enum، به PolicyViolation سند مرجع مراجعه کنید.