ฟีดจุดที่น่าสนใจ (POI)

สร้างและอัปโหลดฟีดจุดที่น่าสนใจ

เมื่อสร้างและอัปโหลดฟีดจุดที่น่าสนใจ ให้ทำตามวิธีการต่อไปนี้

  • ทำตามข้อกำหนดที่อธิบายไว้ในฟีดจุดที่น่าสนใจ สำหรับไฟล์ข้อมูลจุดที่น่าสนใจ เราขอแนะนำให้ใช้ชื่อไฟล์ข้อมูลจุดที่น่าสนใจที่ไม่ซ้ำกัน สำหรับการอัปโหลดแต่ละครั้ง ใส่การประทับเวลาในชื่อไฟล์ เช่น POI_1633621547.json
  • อัปโหลดฟีดไปยังเซิร์ฟเวอร์ SFTP ของจุดที่น่าสนใจในพื้นที่ ทุกวันเป็นการรีเฟรชแบบเต็ม
  • คุณดูรายละเอียดเซิร์ฟเวอร์ SFTP ได้ในส่วน การกำหนดค่า > ฟีด ของพอร์ทัลพาร์ทเนอร์

การเลือกเซิร์ฟเวอร์ฟีด

ข้อกำหนดฟีด

ข้อกำหนดของฟิลด์

VssPoi

แสดงถึงเอนทิตีจุดที่น่าสนใจ (POI) รายการเดียว เช่น โรงแรมหรือร้านอาหาร

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
poi_idสตริง

ต้องระบุ

ต้องระบุ สตริงที่พาร์ทเนอร์สร้างขึ้นซึ่งระบุจุดที่น่าสนใจ
nameออบเจ็กต์
(Text)

ต้องระบุ

ต้องระบุ ชื่อของจุดที่น่าสนใจ
telephoneสตริง

หมายเลขโทรศัพท์ติดต่อของจุดที่น่าสนใจ รวมถึงรหัสประเทศและ รหัสพื้นที่ เช่น +14567891234
urlสตริง

URL ของเว็บไซต์สาธารณะของจุดที่น่าสนใจ หมายเหตุ: ระบบจะใช้ข้อมูลนี้เพื่อวัตถุประสงค์ในการจับคู่เท่านั้น ไม่ใช่เพื่อการแสดงผล
locationออบเจ็กต์
(GeoCoordinates)

ต้องระบุ

ต้องระบุ สถานที่ตั้งของจุดที่น่าสนใจ
display_addressออบเจ็กต์
(Text)

ที่อยู่ที่แสดงใน UI
imagesอาร์เรย์ของออบเจ็กต์
(Image)

รูปภาพของจุดที่น่าสนใจ จำนวนรูปภาพสูงสุด: 5 รูป
ratingตัวเลข

คะแนนเฉลี่ยของจุดที่น่าสนใจ
num_ratingsตัวเลข

จำนวนการให้คะแนนที่ส่งเข้ามาสำหรับฟิลด์ rating
rating_scaleตัวเลข

สเกลการให้คะแนนที่ใช้สำหรับฟิลด์ rating หากการให้คะแนนสูงสุดคือ 5 แสดงว่า rating_scale คือ 5
categoryenum
(Category)

ต้องระบุ

ต้องระบุ แสดงหมวดหมู่ของจุดที่น่าสนใจ
descriptionออบเจ็กต์
(Text)

คำอธิบายของจุดที่น่าสนใจ
oneOf
(additional_data)

ต้องระบุ

ตั้งค่าได้เพียง 1 ฟิลด์ใน oneOf นี้

ข้อความ

แสดงข้อความที่มีการแปล

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
localizationsอาร์เรย์ของออบเจ็กต์
(LocalizedString)

สตริงที่แปลแล้ว
default_localeสตริง

ภาษาเริ่มต้นที่ใช้ต้องอยู่ใน การแปล

LocalizedString

แสดงสตริงที่แปลแล้ว

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
localeสตริง

แท็กภาษาของข้อความ เช่น "en", "en-US" หรือ "sr-Latn"
textสตริง

ข้อความในภาษาที่ระบุ

GeoCoordinates

ข้อมูลทางภูมิศาสตร์ของสถานที่ ซึ่งรวมถึงละติจูด ลองจิจูด และที่อยู่

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
latitudeตัวเลข

[-90, +90] องศา (รวม) ต้องระบุหากตั้งค่าลองจิจูดไว้ มิเช่นนั้นก็ไม่จำเป็น
longitudeตัวเลข

[-180, +180] องศา (รวม) ต้องระบุหากตั้งค่าละติจูดไว้ หรือไม่เช่นนั้นก็ไม่จำเป็น
oneOf
(addresses)

ต้องระบุ

ตั้งค่าได้เพียง 1 ฟิลด์ใน oneOf นี้

PostalAddress

ที่อยู่ทางไปรษณีย์ของสถานที่

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
countryสตริง

ต้องระบุ

ต้องระบุ ประเทศ โดยใช้รหัสประเทศ ISO 3166-1 alpha-2 เช่น "US"
localityสตริง

ต้องระบุ

ต้องระบุ ย่าน/เมือง เช่น "Mountain View"
regionสตริง

ภูมิภาค/รัฐ/จังหวัด เช่น "CA" ฟิลด์นี้จำเป็นต้องระบุในประเทศที่ภูมิภาคเป็นส่วนหนึ่งของที่อยู่โดยทั่วไปเท่านั้น (ไม่บังคับ)
postal_codeสตริง

ต้องระบุ

ต้องระบุ รหัสไปรษณีย์ เช่น "94043"
street_addressสตริง

ต้องระบุ

ต้องระบุ ที่อยู่ เช่น "1600 Amphitheatre Pkwy"

รูปภาพ

แสดงรูปภาพของจุดที่น่าสนใจ (POI)

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
urlสตริง

URL ของรูปภาพ Google จะทำการ Crawl สื่อที่โฮสต์ใน URL นี้ ความยาวสูงสุด: 2,000
alt_textออบเจ็กต์
(Text)

ข้อความแสดงแทนที่จะใช้เพื่อการช่วยเหลือพิเศษ

HotelData

ข้อมูลฟีดเฉพาะโรงแรม

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
hotel_star_classตัวเลข

ค่าดาวระดับโรงแรมอย่างเป็นทางการ ใช้ในป้ายกำกับ เช่น "โรงแรม 5 ดาว" ได้ ค่านี้ควรเป็นจำนวนเต็มระหว่าง 1 ถึง 5
brand_idsอาร์เรย์ของสตริง

แบรนด์ที่แสดงโรงแรมนี้ได้ หากช่องนี้ว่างเปล่า โรงแรมจะแสดงภายใต้แบรนด์ใดก็ได้ที่เชื่อมโยงกับฟีด

LocalData

ข้อมูลฟีดเฉพาะของสถานประกอบการ

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
business_hoursออบเจ็กต์
(BusinessHours)

เวลาทำการปกติของสถานประกอบการ
price_rangeออบเจ็กต์
(PriceRange)

ช่วงราคาของบริการที่สถานประกอบการเสนอ
establishment_categoryออบเจ็กต์
(Text)

ประเภทของสถานประกอบการ
brand_landing_pagesอาร์เรย์ของออบเจ็กต์
(BrandLandingPages)

หน้า Landing Page ของแบรนด์

BusinessHours

แสดงช่วงเวลาที่สถานที่นี้เปิดทำการ เก็บอินสแตนซ์ของ [TimeRange][madden.vss_poi_feed.TimeRange] ตัวอย่าง: เปิดวันเสาร์ตั้งแต่ 09:00-12:00 น. และ 13:00-17: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 } } ตัวอย่าง: เปิดวันเสาร์ตั้งแต่ 21:00 น. ถึงวันอาทิตย์ 02: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_timeออบเจ็กต์
(TimeOfDay)

เวลาเริ่มต้นของช่วงเวลา
close_dayenum
(DayOfWeek)

วันสิ้นสุดของช่วงเวลา
close_timeออบเจ็กต์
(TimeOfDay)

เวลาปิดของช่วงเวลา

TimeOfDay

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
hoursตัวเลข

ชั่วโมงของวันในรูปแบบ 24 ชั่วโมง ต้องมากกว่าหรือเท่ากับ 0 และโดยปกติแล้วต้องน้อยกว่าหรือเท่ากับ 23 API อาจเลือกอนุญาตค่า "24:00:00" สำหรับสถานการณ์ต่างๆ เช่น เวลาปิดทำการของธุรกิจ
minutesตัวเลข

นาทีในชั่วโมง ต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับ 59
secondsตัวเลข

วินาทีของนาที ต้องมากกว่าหรือเท่ากับ 0 และโดยทั่วไปต้องน้อยกว่าหรือเท่ากับ 59 API อาจอนุญาตค่า 60 หากอนุญาต วินาทีอธิกสุรทิน
nanosตัวเลข

เศษส่วนของวินาทีในหน่วยนาโนวินาที ต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับ 999,999,999

PriceRange

ช่วงราคาของบริการที่จุดที่น่าสนใจนำเสนอ

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
min_priceออบเจ็กต์
(Money)

ราคาต่ำสุดของบริการที่จุดที่น่าสนใจเสนอ
max_priceออบเจ็กต์
(Money)

ราคาสูงสุดของบริการที่จุดที่น่าสนใจเสนอ

เงินทอง

แสดงจำนวนเงินพร้อมประเภทสกุลเงิน

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
currency_codeสตริง

รหัสสกุลเงิน 3 ตัวอักษรที่กำหนดไว้ใน ISO 4217
unitsตัวเลข

หน่วยเต็มของจำนวนเงิน เช่น หาก currencyCode คือ "USD" แสดงว่า 1 หน่วยเท่ากับ 1 ดอลลาร์สหรัฐ
nanosตัวเลข

จำนวนหน่วยนาโน (10^-9) ของจำนวนเงิน ค่าต้องอยู่ระหว่าง -999,999,999 ถึง +999,999,999 รวมสองค่านี้ด้วย หาก units เป็นค่าบวก nanos ต้องเป็นค่าบวกหรือ 0 หาก units เป็น 0 nanos จะเป็นค่าบวก 0 หรือค่าลบก็ได้ หาก units เป็นค่าลบ nanos ต้องเป็นค่าลบหรือ 0 เช่น $-1.75 จะแสดงเป็น units=-1 และ nanos=-750,000,000

BrandLandingPages

หน้า Landing Page ของแบรนด์ที่แปลเป็นภาษาท้องถิ่นสำหรับจุดที่น่าสนใจ (POI) แห่งเดียว

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
brand_idสตริง

แบรนด์ที่การกำหนดค่านี้มีผล
localized_landing_pagesอาร์เรย์ของออบเจ็กต์
(LocalizedLandingPage)

หน้า Landing Page ที่แปลแล้ว ค่าของฟิลด์ URL และภาษาต้องไม่ซ้ำกันในหน้า Landing Page ที่แปลทั้งหมด
default_urlสตริง

URL ของหน้า Landing Page เริ่มต้นที่จะใช้เมื่อไม่มีหน้า Landing Page ที่แปลแล้วตรงกับภาษาของผู้ใช้

LocalizedLandingPage

หน้า Landing Page ที่แปลเป็นภาษาท้องถิ่นสำหรับจุดที่น่าสนใจ (POI)

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
urlสตริง

URL ของหน้า Landing Page ความยาวสูงสุด: 2,000
localesอาร์เรย์ของสตริง

จำกัดหน้านี้ไว้สำหรับผู้ใช้ที่มีค่ากำหนดภาษาที่ระบุ ต้องมีแท็กภาษา เช่น "en", "en-US" หรือ "sr-Latn"

หมวดหมู่

แสดงหมวดหมู่ของจุดที่น่าสนใจ โดยควรตรงกับฟิลด์ additional_data oneof ด้านล่าง

ชื่อคำอธิบาย
UNKNOWN_CATEGORY
HOTEL
LOCAL

วันของสัปดาห์

แสดงวันของสัปดาห์

ชื่อคำอธิบาย
DAY_OF_WEEK_UNSPECIFIEDไม่ได้ระบุวันของสัปดาห์
MONDAYวันจันทร์
TUESDAYอังคาร
WEDNESDAYพุธ
THURSDAYพฤหัสบดี
FRIDAYศุกร์
SATURDAYเสาร์
SUNDAYวันอาทิตย์

additional_data

ต้องระบุ ฟิลด์เฉพาะหมวดหมู่ โดยควรตรงกับช่อง category ด้านบน

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
hotel_dataออบเจ็กต์
(HotelData)

ใช้ร่วมกับ local_data ไม่ได้

ฟิลด์เฉพาะของโรงแรม
local_dataออบเจ็กต์
(LocalData)

ใช้ร่วมกับ hotel_data ไม่ได้

ฟิลด์เฉพาะของท้องถิ่น

ที่อยู่

ต้องระบุ ที่อยู่ของสถานที่

ชื่อช่องประเภทข้อกำหนดคำอธิบาย
addressออบเจ็กต์
(PostalAddress)

ที่อยู่ทางไปรษณีย์ของสถานที่
  • รูปแบบ: ต้องเป็น JPEG, PNG หรือ WebP
  • ขนาดไฟล์สูงสุด: ไม่เกิน 30 MB ต่อรูปภาพ
  • ขนาดสูงสุด: รวมไม่เกิน 75 เมกะพิกเซล (ความกว้าง x ความสูง < 75,000,000)
  • ประเภท URL: เส้นทางโดยตรงไปยังชิ้นงานรูปภาพ (เช่น ลงท้ายด้วย .jpg)
  • สิทธิ์: ตรวจสอบว่าเซิร์ฟเวอร์โฮสติ้งอนุญาตให้เข้าถึง Googlebot หรือ Crawler และไม่มี robots.txt ที่บล็อกไดเรกทอรีรูปภาพ

คำจำกัดความ

คำจำกัดความของ 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;

  // The brand landing pages.
  repeated BrandLandingPages brand_landing_pages = 4;
}

คำจำกัดความของ BrandLandingPages

// The Localized brand landing pages for a single Point of Interest (POI).
message BrandLandingPages {
  // 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;

  // 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"
          },
          {
            "brand_id": "delicious_eats_brand",
            "localized_landing_pages": [
              {
                "url": "https://www.deliciouseats.com/en",
                "locales": ["en-US", "en-GB"]
              }
            ],
            "default_url": "https://www.deliciouseats.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"
          },
          {
            "brand_id": "delicious_eats_brand",
            "localized_landing_pages": [
              {
                "url": "https://www.deliciouseats.com/fr",
                "locales": ["fr-FR", "fr-CA"]
              },
              {
                "url": "https://www.deliciouseats.com/en",
                "locales": ["en-US", "en-GB"]
              }
            ],
            "default_url": "https://www.deliciouseats.com"
          }
        ]
      }
    }
  ]
}