فیدهای POI را ایجاد و بارگذاری کنید
هنگام ایجاد و آپلود فیدهای POI، این دستورالعملها را دنبال کنید:
- برای فایلهای داده POI، مشخصات شرح داده شده در فید POI را دنبال کنید. توصیه میکنیم برای هر آپلود از نامهای منحصر به فرد برای فایلهای داده POI استفاده کنید. یک مهر زمانی در نام فایل قرار دهید، به عنوان مثال،
POI_1633621547.json. - فیدها را روزانه و با بهروزرسانی کامل، به سرور محلی POI SFTP آپلود کنید.
- میتوانید جزئیات سرور SFTP را در بخش پیکربندی > فیدها در پورتال شرکا پیدا کنید.

- وضعیت مصرف خوراک را در بخش مصرف > تاریخچه در پورتال شرکا مشاهده کنید.
مشخصات خوراک
الزامات میدانی
وِسپوی
نشان دهنده یک موجودیت نقطه مورد علاقه (POI) است، مثلاً یک هتل یا رستوران.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
poi_id | رشته | مورد نیاز | الزامی. رشتهای که توسط شریک تولید میشود و یک POI را مشخص میکند. |
name | شیء(Text) | مورد نیاز | الزامی. نام نقطه مورد نظر. |
telephone | رشته | شماره تلفن تماس با نقطه مورد نظر شامل کد کشور و منطقه، مثلاً +14567891234 | |
url | رشته | آدرس وبسایت عمومی نقطه مورد نظر. توجه: این آدرس فقط برای تطبیق استفاده میشود، نه برای نمایش. | |
location | شیء(GeoCoordinates) | مورد نیاز | الزامی. محل نقطه مورد نظر. |
display_address | شیء(Text) | آدرسی که در رابط کاربری نمایش داده میشود. | |
images | آرایه ای از اشیاء(Image) | تصاویر از نقطه مورد نظر. حداکثر تعداد تصاویر: ۵. | |
rating | شماره | امتیاز متوسط برای POI. | |
num_ratings | شماره | تعداد رتبهبندیهای مشارکتکننده برای فیلد rating . | |
rating_scale | شماره | مقیاس رتبهبندی مورد استفاده برای فیلد rating . اگر حداکثر رتبهبندی ۵ باشد، rating_scale برابر با ۵ خواهد بود. | |
category | شمارشی(Category) | مورد نیاز | الزامی. نشاندهندهی دستهبندی نقطه مورد نظر است. |
description | شیء(Text) | شرحی از POI. | |
| یکی از(additional_data) | مورد نیاز | فقط یکی از فیلدهای این oneOf قابل تنظیم است. |
متن
یک متن را با محلیسازیها نشان میدهد.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
localizations | آرایه ای از اشیاء(LocalizedString) | رشتههای محلیشده. | |
default_locale | رشته | زبان محلی که قرار است به عنوان زبان پیشفرض استفاده شود، باید در محلیسازیها موجود باشد. |
رشته محلی
یک رشته محلی شده را نشان میدهد.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
locale | رشته | برچسب زبان متن، مانند "en"، "en-US" یا "sr-Latn". | |
text | رشته | متن در زبان مشخص شده. |
مختصات جغرافیایی
دادههای جغرافیایی یک مکان، شامل عرض جغرافیایی، طول جغرافیایی و آدرس.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
latitude | شماره | [-۹۰، +۹۰] درجه (شامل). در صورت تنظیم طول جغرافیایی الزامی است، در غیر این صورت بهتر است تنظیم شود. | |
longitude | شماره | [-۱۸۰، +۱۸۰] درجه (شامل). در صورت تنظیم عرض جغرافیایی الزامی است، در غیر این صورت بهتر است تنظیم شود. | |
| یکی از(addresses) | مورد نیاز | فقط یکی از فیلدهای این oneOf قابل تنظیم است. |
آدرس پستی
آدرس پستی مربوط به محل.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
country | رشته | مورد نیاز | الزامی. کشور، با استفاده از کد کشور ISO 3166-1 alpha-2، مثلاً "US". |
locality | رشته | مورد نیاز | الزامی. محل/شهر، مثلاً "Mountain View". |
region | رشته | منطقه/ایالت/استان، مثلاً "CA". این فیلد فقط در کشورهایی که منطقه معمولاً بخشی از آدرس است، الزامی است. (اختیاری) | |
postal_code | رشته | مورد نیاز | الزامی. کد پستی، مثلاً "94043". |
street_address | رشته | مورد نیاز | الزامی. آدرس خیابان، مثلاً «۱۶۰۰ Amphitheatre Pkwy». |
تصویر
تصویری از نقطه مورد نظر (POI) را نشان میدهد.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
url | رشته | آدرس اینترنتی تصویر. گوگل رسانههای میزبانی شده در این آدرس اینترنتی را بررسی خواهد کرد. حداکثر طول: ۲۰۰۰. | |
alt_text | شیء(Text) | متن جایگزین مورد استفاده برای دسترسیپذیری. |
هتل دیتا
دادههای فید مخصوص هتل.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
hotel_star_class | شماره | مقدار رسمی ستاره درجه هتل. میتواند در برچسبی مانند "هتل ۵ ستاره" استفاده شود. انتظار میرود این مقدار یک عدد صحیح بین ۱ تا ۵ باشد. | |
brand_ids | آرایهای از رشته | برندهایی که میتوانند این هتل را نمایش دهند. اگر این فیلد خالی باشد، هتل میتواند تحت هر یک از برندهای مرتبط با فید نمایش داده شود. |
دادههای محلی
دادههای خوراک مخصوص تأسیس.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
business_hours | شیء(BusinessHours) | ساعات کاری معمول موسسه. | |
price_range | شیء(PriceRange) | محدوده قیمت خدمات ارائه شده توسط موسسه. | |
establishment_category | شیء(Text) | نوع مؤسسه. | |
brand_landing_pages | آرایه ای از اشیاء(BrandLandingPages) | صفحات فرود برند. |
ساعات کاری
دورههای زمانی که این مکان برای کسب و کار باز است را نشان میدهد. مجموعهای از نمونههای [TimeRange][madden.vss_poi_feed.TimeRange] را در خود جای داده است. مثال: شنبهها از ساعت ۰۹:۰۰ تا ۱۲:۰۰ و ۱۳:۰۰ تا ۱۷:۰۰ باز است: 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 } } مثال: شنبهها از ساعت ۲۱:۰۰ تا یکشنبه ۰۲:۰۰ باز است: time_ranges { open_day: SATURDAY open_time: { hours: 21, minutes: 0 } close_day: SUNDAY close_time: { hours: 2, minutes: 0 } }
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
time_ranges | آرایه ای از اشیاء(TimeRange) | مجموعهای از زمانهایی که این POI برای کسب و کار باز است. هر دوره نشان دهنده طیف وسیعی از ساعاتی است که POI در طول هفته باز است. |
محدوده زمانی
نشان دهنده بازه زمانی است که POI باز است، که از روز/زمان باز بودن مشخص شده شروع میشود و در روز/زمان بسته شدن مشخص شده بسته میشود. زمان بسته شدن باید بعد از زمان باز شدن باشد، به عنوان مثال بعداً در همان روز یا در روز بعد.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
open_day | شمارشی(DayOfWeek) | روز باز محدوده زمانی. | |
open_time | شیء(TimeOfDay) | زمان باز بودن محدوده زمانی. | |
close_day | شمارشی(DayOfWeek) | روز پایانی محدوده زمانی. | |
close_time | شیء(TimeOfDay) | زمان بسته شدن محدوده زمانی. |
زمان روز
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
hours | شماره | ساعات یک روز در قالب ۲۴ ساعته. باید بزرگتر یا مساوی ۰ و معمولاً کوچکتر یا مساوی ۲۳ باشد. یک API ممکن است برای سناریوهایی مانند زمان تعطیلی کسب و کار، مقدار "۲۴:۰۰:۰۰" را مجاز بداند. | |
minutes | شماره | دقیقههای یک ساعت. باید بزرگتر یا مساوی ۰ و کوچکتر یا مساوی ۵۹ باشد. | |
seconds | شماره | ثانیههای یک دقیقه. باید بزرگتر یا مساوی ۰ و معمولاً کوچکتر یا مساوی ۵۹ باشد. یک API در صورت امکان ثانیه کبیسه، ممکن است مقدار ۶۰ را نیز مجاز بداند. | |
nanos | شماره | کسری از ثانیه، بر حسب نانوثانیه. باید بزرگتر یا مساوی ۰ و کوچکتر یا مساوی ۹۹۹,۹۹۹,۹۹۹ باشد. |
محدوده قیمت
محدوده قیمت خدمات ارائه شده توسط POI.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
min_price | شیء(Money) | حداقل قیمت خدمات ارائه شده توسط POI. | |
max_price | شیء(Money) | حداکثر قیمت خدمات ارائه شده توسط POI. |
پول
نشان دهنده مقدار پول به همراه نوع ارز آن است.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
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 نمایش داده میشود. |
صفحات فرود برند
صفحات فرود برند بومیسازیشده برای یک نقطه مورد توجه (POI).
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
brand_id | رشته | برندی که این پیکربندی برای آن اعمال میشود. | |
localized_landing_pages | آرایه ای از اشیاء(LocalizedLandingPage) | صفحات فرود محلیسازی شده. مقادیر فیلدهای url و locales باید در تمام صفحات فرود محلیسازی شده منحصر به فرد باشند. | |
default_url | رشته | آدرس اینترنتی پیشفرض صفحه فرود که زمانی استفاده میشود که هیچ یک از صفحات فرود بومیسازیشده با زبان کاربر مطابقت نداشته باشند. |
صفحه فرود محلی
صفحه فرود محلی برای نقطه مورد نظر (POI).
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
url | رشته | آدرس اینترنتی صفحه فرود. حداکثر طول: ۲۰۰۰. | |
locales | آرایهای از رشته | این صفحه را به کاربرانی با ترجیح زبان مشخصشده محدود میکند. باید شامل برچسبهای زبان، مانند "en"، "en-US" یا "sr-Latn" باشد. |
دسته بندی
نشان دهنده دسته بندی POI است. باید با فیلد additional_data oneof در زیر مطابقت داشته باشد.
| نام | توضیحات |
|---|---|
UNKNOWN_CATEGORY | |
HOTEL | |
LOCAL |
روز هفته
نشان دهنده یک روز از هفته است.
| نام | توضیحات |
|---|---|
DAY_OF_WEEK_UNSPECIFIED | روز هفته مشخص نشده است. |
MONDAY | دوشنبه |
TUESDAY | سهشنبه |
WEDNESDAY | چهارشنبه |
THURSDAY | پنجشنبه |
FRIDAY | جمعه |
SATURDAY | شنبه |
SUNDAY | یکشنبه |
دادههای_اضافی
الزامی. فیلدهای مخصوص دستهبندی. باید با فیلد category بالا مطابقت داشته باشد.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
hotel_data | شیء(HotelData) | با | فیلدهای خاص هتل |
local_data | شیء(LocalData) | منحصر به فرد با | زمینههای خاص محلی. |
آدرسها
الزامی. آدرس مکان.
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
address | شیء(PostalAddress) | آدرس پستی محل. |
- فرمت: باید JPEG، PNG یا WebP باشد.
- حداکثر حجم فایل: کمتر از ۳۰ مگابایت برای هر تصویر.
- حداکثر ابعاد: مجموعاً کمتر از ۷۵ مگاپیکسل (عرض × ارتفاع < ۷۵,۰۰۰,۰۰۰).
- نوع URL: مسیر مستقیم به تصویر (مثلاً با پسوند .jpg تمام شود).
- مجوزها: مطمئن شوید که سرور میزبان به رباتهای گوگل یا خزندهها اجازه دسترسی میدهد و هیچ فایل 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; }
تعریف مختصات جغرافیایی
// 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; } }
تعریف آدرس پستی
// 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" } ] } } ] }
فید POI چند زبانه
نام فایل: 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" } ] } } ] }