خلاصة نقاط الاهتمام

إنشاء خلاصات نقاط الاهتمام وتحميلها

عند إنشاء خلاصات نقاط الاهتمام وتحميلها، اتّبِع التعليمات التالية:

  • اتّبِع المواصفات الموضّحة في خلاصة نقاط الاهتمام لملفات بيانات نقاط الاهتمام. ننصح باستخدام أسماء ملفات بيانات نقاط الاهتمام الفريدة لكل عملية تحميل. أدرِج طابعًا زمنيًا في اسم الملف، على سبيل المثال، POI_1633621547.json.
  • يجب تحميل الخلاصات إلى خادم بروتوكول النقل الآمن للملفات (SFTP) الخاص بنقاط الاهتمام المحلية يوميًا كعمليات إعادة تحميل كاملة.
  • يمكنك العثور على تفاصيل خادم SFTP في قسم الإعدادات > الخلاصات في "بوابة الشركاء".

اختيار خوادم الخلاصة

  • يمكنك الاطّلاع على حالة عرض الخلاصة في قسم العرض > السجلّ في "بوابة الشريك".

إرشادات إنشاء حزمة للملفات

لضمان نجاح عملية الاستيراد، يجب الالتزام بمتطلبات التجميع التالية:

  • أرشيف JSON مجمّع واحد (مطلوب): ادمِج جميع سجلات الكيانات في ملف JSON واحد. ننصحك بضغطه في أرشيف GZIP واحد وتحميله.
  • تحذير بشأن النمط المضاد: لا تستخدِم ملفًا واحدًا لكل جهة أو ملفات متعددة مفصولة حسب البلد في الأرشيف نفسه. هذه الطريقة غير متاحة وستؤدي إلى حدوث أخطاء في الاستخراج.

دعم لغات متعددة

تتيح خلاصة "نقطة الاهتمام" تقديم محتوى مترجَم لحقول معيّنة. الحقول التالية من النوع Text وتتيح إمكانية الترجمة:

  • name
  • description
  • display_address

لتقديم محتوى بلغات متعدّدة، يجب تحديد default_locale في الحقل وتقديم السلاسل المترجَمة في قائمة localizations. يجب تقديم جميع الترجمات لكيان معيّن في إدخال واحد لنقطة الاهتمام. لا تقسّم كيانًا واحدًا بين ملفات JSON متعددة اللغات.

مثال:

"name": {
  "localizations": [
    {
      "locale": "en",
      "text": "Tasty Bites Test Restaurant"
    },
    {
      "locale": "es",
      "text": "Restaurante de prueba Tasty Bites"
    }
  ],
  "default_locale": "en"
}

إرشادات الصور

  • التنسيق: يجب أن يكون JPEG أو PNG أو WebP.
  • الحدّ الأقصى لحجم الملف: أقل من 30 ميغابايت لكل صورة
  • الحد الأقصى للأبعاد: أقل من 75 ميغابكسل إجمالاً (العرض × الارتفاع < 75,000,000).
  • نوع عنوان URL: مسار مباشر إلى مادة عرض الصورة (مثلاً، ينتهي بـ ‎.jpg).
  • الأذونات: تأكَّد من أنّ خادم الاستضافة يسمح لبرنامج Googlebot أو برامج الزحف بالوصول إلى أدلة الصور ومن أنّه لا يتضمّن ملف robots.txt يحظر هذه الأدلة.
  • البحث الآمن: يجب أن تتوافق الصور مع سياسات البحث الآمن في Google.

مواصفات الخلاصة

متطلبات الحقول

VssPoi

تمثّل هذه السمة كيانًا واحدًا لنقطة اهتمام، مثل فندق أو مطعم.

اسم الحقلالنوعالمتطلباتالوصف
poi_idسلسلة

مطلوب

الحقل مطلوب. سلسلة ينشئها الشريك لتحديد نقطة اهتمام
nameobject
(Text)

مطلوب

الحقل مطلوب. اسم نقطة الاهتمام
telephoneسلسلة

رقم هاتف جهة الاتصال لنقطة الاهتمام، بما في ذلك رمز البلد ورمز المنطقة، مثل ‎+14567891234
urlسلسلة

عنوان URL للموقع الإلكتروني العلني الخاص بنقطة الاهتمام ملاحظة: سيتم استخدام هذه المعلومات لأغراض المطابقة فقط، ولن يتم عرضها.
locationobject
(GeoCoordinates)

مطلوب

الحقل مطلوب. تمثّل هذه السمة الموقع الجغرافي لنقطة الاهتمام.
display_addressالكائن
(Text)

العنوان المعروض في واجهة المستخدم
imagesمصفوفة من العناصر
(Image)

صور لنقطة الاهتمام الحدّ الأقصى لعدد الصور: 5
ratingالرقم

متوسط تقييم نقطة الاهتمام
num_ratingsالرقم

عدد التقييمات المساهمة في حقل "rating".
rating_scaleالرقم

مقياس التقييم المستخدَم للحقل rating. إذا كان الحد الأقصى للتقييم هو 5، تكون قيمة rating_scale هي 5.
categoryenum
(Category)

مطلوب

الحقل مطلوب. تمثّل فئة نقطة الاهتمام.
descriptionالكائن
(Text)

وصف لنقطة الاهتمام
oneOf
(additional_data)

مطلوب

يمكن ضبط حقل واحد فقط من الحقول الواردة في oneOf.

نص

يمثّل نصًا مع عمليات أقلمة.

اسم الحقلالنوعالمتطلباتالوصف
localizationsمصفوفة من العناصر
(LocalizedString)

تمثّل هذه السمة السلاسل المعدَّلة بما يناسب السوق المحلية.
default_localeسلسلة

يجب أن يكون الموقع الجغرافي الذي سيتم استخدامه كلغة تلقائية متوفّرًا في عمليات الترجمة.

LocalizedString

تمثّل سلسلة مترجَمة.

اسم الحقلالنوعالمتطلباتالوصف
localeسلسلة

علامة لغة النص، مثل "en" أو "en-US" أو "sr-Latn".
textسلسلة

النص باللغة المحدّدة

GeoCoordinates

بيانات الموقع الجغرافي، بما في ذلك خطوط الطول والعرض والعنوان

اسم الحقلالنوعالمتطلباتالوصف
latitudeالرقم

من ‎-90 إلى ‎+90 درجة (شاملة). هذه السمة مطلوبة إذا تم ضبط خط الطول، وإلا فهي اختيارية.
longitudeالرقم

‫[-180, +180] درجة (شاملة) هذه السمة مطلوبة إذا تم ضبط خط العرض، وإلا فهي اختيارية.
oneOf
(addresses)

مطلوب

يمكن ضبط حقل واحد فقط من الحقول في هذا الحقل.

PostalAddress

العنوان البريدي للموقع الجغرافي

اسم الحقلالنوعالمتطلباتالوصف
countryسلسلة

مطلوب

الحقل مطلوب. تمثّل هذه السمة البلد باستخدام رمز البلد ISO 3166-1 alpha-2، مثل "US".
localityسلسلة

مطلوب

الحقل مطلوب. المنطقة المحلية/المدينة، مثل "ماونتن فيو"
regionسلسلة

المنطقة/الولاية/المقاطعة، مثل "CA" هذا الحقل مطلوب فقط في البلدان التي تشكّل فيها المنطقة جزءًا من العنوان. (اختياري)
postal_codeسلسلة

مطلوب

الحقل مطلوب. الرمز البريدي، مثل "94043"
street_addressسلسلة

مطلوب

الحقل مطلوب. عنوان الشارع، مثل "1600 Amphitheatre Pkwy"

صورة

تمثّل صورة لنقطة الاهتمام.

اسم الحقلالنوعالمتطلباتالوصف
urlسلسلة

تمثِّل هذه السمة عنوان URL الخاص بالصورة. ستزحف Google إلى الوسائط المستضافة على عنوان URL هذا. الحدّ الأقصى للطول: 2000 حرف.
alt_textobject
(Text)

النص البديل الذي سيتم استخدامه لتسهيل الاستخدام.

HotelData

بيانات الخلاصة الخاصة بالفندق

اسم الحقلالنوعالمتطلباتالوصف
hotel_star_classالرقم

قيمة النجوم الرسمية لفئة الفندق يمكن استخدامها في تصنيف مثل "فندق 5 نجوم". من المتوقّع أن تكون هذه القيمة عددًا صحيحًا بين 0 و5. يجب استخدام التقييم 0 في حال عدم توفّر تقييم أو عدم تحديده. عند ضبط القيمة على 0، لن يتم عرض أي فئة نجوم للمستخدمين في واجهة المستخدم.
brand_idsمصفوفة السلاسل النصية

العلامات التجارية التي يمكنها عرض هذا الفندق إذا كان هذا الحقل فارغًا، يمكن عرض الفندق ضمن أيّ من العلامات التجارية المرتبطة بالخلاصة.

LocalData

بيانات الخلاصة الخاصة بالمؤسسة

اسم الحقلالنوعالمتطلباتالوصف
business_hoursobject
(BusinessHours)

تمثّل هذه السمة ساعات العمل العادية للمؤسسة.
price_rangeobject
(PriceRange)

نطاق أسعار الخدمات التي تقدّمها المؤسسة
establishment_categoryالكائن
(Text)

نوع المؤسسة
brand_landing_pagesمصفوفة من العناصر
(BrandLandingPages)

مطلوب

الحقل مطلوب. الصفحات المقصودة للعلامة التجارية يجب توفير قيمة واحدة على الأقل.

BusinessHours

تمثّل هذه السمة الفترات الزمنية التي يكون فيها هذا الموقع الجغرافي مفتوحًا للنشاط التجاري. يحتوي على مجموعة من نُسخ [TimeRange][madden.vss_poi_feed.TimeRange]. مثال: يفتح المكان أيام السبت من الساعة 9:00 صباحًا حتى الساعة 12:00 ظهرًا ومن الساعة 1:00 ظهرًا حتى الساعة 5:00 مساءً: time_ranges { open_day: SATURDAY open_time: { hours: 9, minutes: 0 } close_day: SATURDAY close_time: { hours: 12, minutes: 0 } } time_rages { open_day: SATURDAY open_time: { hours: 13, minutes: 0 } close_day: SATURDAY close_time: { hours: 17, minutes: 0 } } مثال: يفتح المكان أيام السبت من الساعة 9:00 مساءً حتى الساعة 2:00 صباحًا يوم الأحد: time_ranges { open_day: SATURDAY open_time: { hours: 21, minutes: 0 } close_day: SUNDAY close_time: { hours: 2, minutes: 0 } }

اسم الحقلالنوعالمتطلباتالوصف
time_rangesمصفوفة من العناصر
(TimeRange)

مجموعة من الأوقات التي يكون فيها هذا المكان مفتوحًا للنشاط التجاري. وتمثّل كل فترة نطاقًا من الساعات التي تكون فيها نقطة الاهتمام مفتوحة خلال الأسبوع.

TimeRange

تمثّل هذه السمة الفترة الزمنية التي تكون فيها نقطة الاهتمام مفتوحة، بدءًا من اليوم/الوقت المحدّدَين للفتح وحتى اليوم/الوقت المحدّدَين للإغلاق. يجب أن يكون وقت الإغلاق بعد وقت الافتتاح، على سبيل المثال في وقت لاحق من اليوم نفسه أو في يوم لاحق.

اسم الحقلالنوعالمتطلباتالوصف
open_dayenum
(DayOfWeek)

يوم الافتتاح في النطاق الزمني
open_timeobject
(TimeOfDay)

وقت بداية النطاق الزمني
close_dayenum
(DayOfWeek)

يوم الإغلاق في النطاق الزمني
close_timeالكائن
(TimeOfDay)

وقت الإغلاق للنطاق الزمني

TimeOfDay

اسم الحقلالنوعالمتطلباتالوصف
hoursالرقم

ساعات اليوم بتنسيق 24 ساعة يجب أن تكون القيمة أكبر من أو تساوي 0، ويجب أن تكون عادةً أقل من أو تساوي 23. يمكن لواجهة برمجة التطبيقات أن تسمح بالقيمة "24:00:00" في سيناريوهات مثل وقت إغلاق النشاط التجاري.
minutesالرقم

الدقائق في الساعة يجب أن تكون القيمة أكبر من أو تساوي 0 وأقل من أو تساوي 59.
secondsالرقم

ثوانٍ من الدقيقة يجب أن تكون القيمة أكبر من أو تساوي 0، ويجب أن تكون عادةً أقل من أو تساوي 59. قد تسمح واجهة برمجة التطبيقات بالقيمة 60 إذا كانت تسمح بالثواني الكبيسة.
nanosالرقم

أجزاء من الثانية، بالنانو ثانية يجب أن تكون القيمة أكبر من أو تساوي 0 وأقل من أو تساوي 999,999,999.

PriceRange

نطاق أسعار الخدمات التي تقدّمها نقطة الاهتمام

اسم الحقلالنوعالمتطلباتالوصف
min_priceالكائن
(Money)

الحدّ الأدنى لسعر الخدمات التي تقدّمها نقطة الاهتمام
max_priceالكائن
(Money)

الحدّ الأقصى لسعر الخدمات التي تقدّمها نقطة الاهتمام

المال

تمثّل هذه السمة مبلغًا ماليًا مع نوع العملة.

اسم الحقلالنوعالمتطلباتالوصف
currency_codeسلسلة

تمثّل هذه السمة رمز العملة المكوّن من ثلاثة أحرف والمحدّد في معيار ISO 4217.
unitsالرقم

الوحدات الكاملة للمبلغ على سبيل المثال، إذا كانت قيمة currencyCode هي "USD"، تكون الوحدة الواحدة هي دولار أمريكي واحد.
nanosالرقم

عدد وحدات النانو (10^-9) من المبلغ يجب أن تتراوح القيمة بين -999,999,999 و+999,999,999 (بما يشمل هذين الرقمَين). إذا كانت قيمة units موجبة، يجب أن تكون قيمة nanos موجبة أو صفرًا. إذا كانت قيمة units صفرًا، يمكن أن تكون قيمة nanos موجبة أو صفرًا أو سالبة. إذا كانت قيمة units سالبة، يجب أن تكون قيمة nanos سالبة أو صفرًا. على سبيل المثال، يتم تمثيل ‎ $-1.75 على النحو التالي: units=-1 وnanos=-750,000,000.

BrandLandingPages

الصفحات المقصودة المترجَمة للعلامة التجارية لنقطة اهتمام واحدة

اسم الحقلالنوعالمتطلباتالوصف
brand_idسلسلة

مطلوب

الحقل مطلوب. العلامة التجارية التي ينطبق عليها هذا الإعداد
localized_landing_pagesمصفوفة من العناصر
(LocalizedLandingPage)

الصفحات المقصودة المتوافقة مع اللغة المحلية يجب أن تكون قيم حقول "url" و"locales" فريدة في جميع الصفحات المقصودة المترجَمة.
default_urlسلسلة

مطلوب

الحقل مطلوب. عنوان URL التلقائي للصفحة المقصودة الذي سيتم استخدامه عندما لا تتطابق أي من الصفحات المقصودة المترجمة مع لغة المستخدم.

LocalizedLandingPage

الصفحة المقصودة المترجَمة لنقطة الاهتمام (POI)

اسم الحقلالنوعالمتطلباتالوصف
urlسلسلة

عنوان URL للصفحة المقصودة الحدّ الأقصى للطول: 2000 حرف.
localesمصفوفة السلاسل النصية

يقتصر الوصول إلى هذه الصفحة على المستخدمين الذين ضبطوا اللغة المفضّلة المحدّدة. يجب أن يحتوي على علامات لغة، مثل "en" أو "en-US" أو "sr-Latn".

الفئة

تمثّل فئة نقطة الاهتمام. يجب أن يتطابق مع حقل additional_data oneof أدناه.

الاسمالوصف
UNKNOWN_CATEGORY
HOTEL
LOCAL

DayOfWeek

تمثّل هذه السمة يومًا من أيام الأسبوع.

الاسمالوصف
DAY_OF_WEEK_UNSPECIFIEDيوم الأسبوع غير محدّد.
MONDAYالاثنين
TUESDAYالثلاثاء
WEDNESDAYالأربعاء
THURSDAYالخميس
FRIDAYالجمعة
SATURDAYالسبت
SUNDAYالأحد

additional_data

الحقل مطلوب. الحقول الخاصة بالفئة يجب أن يتطابق مع حقل category أعلاه.

اسم الحقلالنوعالمتطلباتالوصف
hotel_dataobject
(HotelData)

لا يمكن استخدامها مع local_data

حقول خاصة بالفندق
local_dataobject
(LocalData)

لا يمكن استخدامها مع hotel_data

الحقول الخاصة بالمنتجات المحلية

عناوين

الحقل مطلوب. عنوان لموقع جغرافي

اسم الحقلالنوعالمتطلباتالوصف
addressالكائن
(PostalAddress)

العنوان البريدي للموقع الجغرافي

التعريفات

تعريف VssPoiFeed

// Represents a Point of Interest (POI) data feed provided by a partner.
export message VssPoiFeed {
  // The POIs in the feed.
  repeated VssPoi data = 1;
}

تعريف VssPoi

// Represents a single Point of Interest (POI) entity e.g. a hotel or
// restaurant.
export message VssPoi {
  // Required. A string generated by the partner that identifies a POI.
  string poi_id = 1;

  // The entity name, telephone, url and location are used to support
  // matching partner inventory with entities already present on Google.

  // Required. The name of the POI.
  Text name = 2;

  // The contact telephone number of the POI including its country and
  // area codes, e.g. +14567891234.
  string telephone = 3 [(datapol.semantic_type) = ST_PHONE_NUMBER];

  // The url of the POI's public website.
  // Note: This will be used just for matching purposes, not for display.
  string url = 4;

  // Required. The location of the POI.
  GeoCoordinates location = 5;

  // The address displayed on the UI.
  Text display_address = 17;

  // Images of the POI.
  // Max number of images: 5.
  repeated Image images = 6;

  // Average rating for the POI.
  float rating = 12;

  // The number of contributing ratings for the `rating` field.
  int64 num_ratings = 13;

  // The rating scale used for the `rating` field. If max rating is 5, then
  // rating_scale is 5.
  int32 rating_scale = 14;

  // Represents the category of the POI.
  // It should match the `additional_data` oneof field below.
  export enum Category {


    LOCAL = 4;
  }

  // Required. Represents the category of the POI.
  Category category = 9;

  // A description of the POI.
  Text description = 16;

  // Required. Category specific fields.
  // It should match the `category` field above.
  oneof additional_data {


    // Local specific fields.
    LocalData local_data = 15;
  }

}

تعريف النص

// Represents a text with localizations.
message Text {
  // Represents a localized string.
  message LocalizedString {
    // The text's language tag, such as "en", "en-US" or "sr-Latn".
    string locale = 1;

    // The text in the specified locale.
    string text = 2;
  }

  // The localized strings.
  repeated LocalizedString localizations = 1;

  // The locale to use as the default language it must be present in the
  // localizations.
  string default_locale = 2;
}

تعريف GeoCoordinates

// The Geo data of a location, including latitude, longitude, and address.
message GeoCoordinates {
  option (datapol.msg_semantic_type) = ST_LOCATION;

  // [-90, +90] degrees (inclusive).
  // Required if longitude is set, otherwise nice to have.
  double latitude = 1;

  // [-180, +180] degrees (inclusive).
  // Required if latitude is set, otherwise nice to have.
  double longitude = 2;

  // Required. Address for a location.
  oneof addresses {
    // Postal address of the location.
    PostalAddress address = 3;

  }
}

تعريف PostalAddress

// The postal address for the location.
message PostalAddress {
  option (datapol.msg_semantic_type) = ST_LOCATION;

  // Required. The country, using ISO 3166-1 alpha-2 country code, e.g. "US".
  string country = 1;

  // Required. The locality/city, e.g. "Mountain View".
  string locality = 2;

  // The region/state/province, e.g. "CA". This field is only required in
  // countries where region is commonly a part of the address. (optional)
  string region = 3;

  // Required. The postal code, e.g. "94043".
  string postal_code = 4;

  // Required. The street address, e.g. "1600 Amphitheatre Pkwy".
  string street_address = 5;
}

تعريف الصورة

// Represents an image of the Point of Interest (POI).
export message Image {
  // The url of the image. Google will crawl the media hosted at this URL.
  // Max length: 2000.
  string url = 1;

  // The alternative text to be used for accessibility.
  Text alt_text = 2;
}

تعريف LocalData

// Establishment specific feed data.
message LocalData {
  // The regular business hours of the establishment.
  BusinessHours business_hours = 1;

  // Price range of the services offered by the establishment.
  PriceRange price_range = 2;

  // The type of establishment.
  Text establishment_category = 3;

  // Required. The brand landing pages. At least one must be provided.
  repeated BrandLandingPages brand_landing_pages = 4;
}

تعريف BrandLandingPages

// The Localized brand landing pages for a single Point of Interest (POI).
message BrandLandingPages {
  // Required. The brand this configuration applies to.
  string brand_id = 1 [(datapol.semantic_type) = ST_PARTNER_ID];

  // Localized landing page for the Point of Interest (POI).
  message LocalizedLandingPage {

    // The url of the landing page.
    // Max length: 2000.
    string url = 1;

    // Restricts this page to users with the specified language preference.
    // Must contain language tags, such as "en", "en-US" or "sr-Latn".
    repeated string locales = 3;
  }

  // The localized landing pages.
  // The url and locales fields values must be unique across all the localized
  // landing pages.
  repeated LocalizedLandingPage localized_landing_pages = 2;

  // Required. The default landing page url to be used when none of the
  // localized landing pages matches the user's language.
  string default_url = 3;
}

نماذج

خلاصة نقاط الاهتمام

اسم الملف: poi_1707240000.json

{
  "data": [
    {
      "poi_id": "test_restaurant_1",
      "name": {
        "localizations": [
          {
            "locale": "en",
            "text": "Tasty Bites Test Restaurant"
          }
        ],
        "default_locale": "en"
      },
      "telephone": "+1234567890",
      "url": "https://www.tastybitestest.com",
      "location": {
        "latitude": 37.422,
        "longitude": -122.084,
        "address": {
          "country": "US",
          "locality": "Mountain View",
          "postal_code": "94043",
          "street_address": "1600 Amphitheatre Pkwy"
        }
      },
      "display_address": {
        "localizations": [
          {
            "locale": "en",
            "text": "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
          }
        ],
        "default_locale": "en"
      },
      "images": [
        {
          "url": "https://www.tastybitestest.com/images/interior.jpg",
          "alt_text": {
            "localizations": [
              {
                "locale": "en",
                "text": "Cozy dining area of Tasty Bites"
              }
            ],
            "default_locale": "en"
          }
        }
      ],
      "rating": 4.7,
      "num_ratings": 150,
      "rating_scale": 5,
      "category": "LOCAL",
      "description": {
        "localizations": [
          {
            "locale": "en",
            "text": "A mock restaurant for testing the POI feed ingestion."
          }
        ],
        "default_locale": "en"
      },
      "local_data": {
        "establishment_category": {
           "localizations": [
             {
               "locale": "en",
               "text": "Restaurant"
             }
           ],
           "default_locale": "en"
        },
        "price_range": {
          "min_price": {
            "currency_code": "USD",
            "units": 15,
            "nanos": 0
          },
          "max_price": {
            "currency_code": "USD",
            "units": 45,
            "nanos": 0
          }
        },
        "business_hours": {
          "time_ranges": [
            {
              "open_day": "MONDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "MONDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "TUESDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "TUESDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "WEDNESDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "WEDNESDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "THURSDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "THURSDAY",
              "close_time": { "hours": 22, "minutes": 0 }
            },
            {
              "open_day": "FRIDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "FRIDAY",
              "close_time": { "hours": 23, "minutes": 0 }
            },
            {
              "open_day": "SATURDAY",
              "open_time": { "hours": 10, "minutes": 0 },
              "close_day": "SATURDAY",
              "close_time": { "hours": 23, "minutes": 0 }
            },
            {
              "open_day": "SUNDAY",
              "open_time": { "hours": 10, "minutes": 0 },
              "close_day": "SUNDAY",
              "close_time": { "hours": 20, "minutes": 0 }
            }
          ]
        },
        "brand_landing_pages": [
          {
            "brand_id": "tasty_bites_brand",
            "localized_landing_pages": [
              {
                "url": "https://www.tastybitestest.com/en",
                "locales": ["en-US", "en-GB"]
              }
            ],
            "default_url": "https://www.tastybitestest.com"
          }
        ]
      }
    }
  ]
}

خلاصة نقاط الاهتمام المتعددة اللغات

اسم الملف: poi_multilingual.json

{
  "data": [
    {
      "poi_id": "test_restaurant_1",
      "name": {
        "localizations": [
          {
            "locale": "en",
            "text": "Tasty Bites Test Restaurant"
          },
          {
            "locale": "fr",
            "text": "Restaurant de test Tasty Bites"
          }
        ],
        "default_locale": "en"
      },
      "telephone": "+1234567890",
      "url": "https://www.tastybitestest.com",
      "location": {
        "latitude": 37.422,
        "longitude": -122.084,
        "address": {
          "country": "US",
          "locality": "Mountain View",
          "postal_code": "94043",
          "street_address": "1600 Amphitheatre Pkwy"
        }
      },
      "display_address": {
        "localizations": [
          {
            "locale": "en",
            "text": "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
          },
          {
            "locale": "fr",
            "text": "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
          }
        ],
        "default_locale": "en"
      },
      "images": [
        {
          "url": "https://www.tastybitestest.com/images/interior.jpg",
          "alt_text": {
            "localizations": [
              {
                "locale": "en",
                "text": "Cozy dining area of Tasty Bites"
              },
              {
                "locale": "fr",
                "text": "Espace salle à manger accueillant de Tasty Bites"
              }
            ],
            "default_locale": "en"
          }
        }
      ],
      "rating": 4.7,
      "num_ratings": 150,
      "rating_scale": 5,
      "category": "LOCAL",
      "description": {
        "localizations": [
          {
            "locale": "en",
            "text": "A mock restaurant for testing the POI feed ingestion."
          },
          {
            "locale": "fr",
            "text": "Un faux restaurant pour tester l'ingestion de flux de points d'intérêt."
          }
        ],
        "default_locale": "en"
      },
      "local_data": {
        "establishment_category": {
           "localizations": [
             {
               "locale": "en",
               "text": "Restaurant"
             },
             {
               "locale": "fr",
               "text": "Restaurant"
             }
           ],
           "default_locale": "en"
        },
        "price_range": {
          "min_price": {
            "currency_code": "USD",
            "units": 15,
            "nanos": 0
          },
          "max_price": {
            "currency_code": "USD",
            "units": 45,
            "nanos": 0
          }
        },
        "business_hours": {
          "time_ranges": [
            {
              "open_day": "MONDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "MONDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "TUESDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "TUESDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "WEDNESDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "WEDNESDAY",
              "close_time": { "hours": 21, "minutes": 0 }
            },
            {
              "open_day": "THURSDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "THURSDAY",
              "close_time": { "hours": 22, "minutes": 0 }
            },
            {
              "open_day": "FRIDAY",
              "open_time": { "hours": 11, "minutes": 0 },
              "close_day": "FRIDAY",
              "close_time": { "hours": 23, "minutes": 0 }
            },
            {
              "open_day": "SATURDAY",
              "open_time": { "hours": 10, "minutes": 0 },
              "close_day": "SATURDAY",
              "close_time": { "hours": 23, "minutes": 0 }
            },
            {
              "open_day": "SUNDAY",
              "open_time": { "hours": 10, "minutes": 0 },
              "close_day": "SUNDAY",
              "close_time": { "hours": 20, "minutes": 0 }
            }
          ]
        },
        "brand_landing_pages": [
          {
            "brand_id": "tasty_bites_brand",
            "localized_landing_pages": [
              {
                "url": "https://www.tastybitestest.com/fr",
                "locales": ["fr-FR", "fr-CA"]
              },
              {
                "url": "https://www.tastybitestest.com/en",
                "locales": ["en-US", "en-GB"]
              }
            ],
            "default_url": "https://www.tastybitestest.com"
          }
        ]
      }
    }
  ]
}