id: princetondg name: Princeton Digital Group domain: princetondg.com kind: operator mode: hybrid priority: 2 license: "Publicly accessible operator pages; factual data only; © Princeton Digital Group" attribution: "Princeton Digital Group" homepage: https://princetondg.com/locations/ notes: "Country pages /locations// contain one section per campus ('Tokyo - TY1', Colocation Area m², Capacity MW). Newsroom via sitemaps.xml. /locations/singapore/ returns 404; the SG-Johor-Batam page lives at /locations/singapore-2/ (→ singapore-plus)." coverage: { operators: ["Princeton Digital Group"], countries: ["SG", "MY", "ID", "JP", "IN", "CN", "KR"] } fetch: { level: 1, maxLevel: 2, rpm: 15, concurrency: 2, respectRobots: true, maxCreditsPerRun: 20 } discovery: sitemap: ["https://princetondg.com/sitemaps.xml"] seeds: [{ url: "/locations/singapore-2/", group: facility_pages, pageType: facility_page }, { url: "/locations/japan/", group: facility_pages, pageType: facility_page }, { url: "/locations/india/", group: facility_pages, pageType: facility_page }, { url: "/locations/indonesia/", group: facility_pages, pageType: facility_page }, { url: "/locations/china/", group: facility_pages, pageType: facility_page }, { url: "/locations/malaysia/", group: facility_pages, pageType: facility_page }, { url: "/locations/south-korea/", group: facility_pages, pageType: facility_page }] include: ["princetondg\\.com/locations/[a-z-]+/$", "princetondg\\.com/newsroom/[a-z0-9-]+/$"] exclude: ["\\?", "#", "lang="] classify: - { pattern: "/locations/[a-z-]+/$", group: facility_pages, pageType: facility_page, priority: 60 } - { pattern: "/newsroom/.", group: newsroom, pageType: press_release, priority: 50 } schedule: { facility_pages: weekly, newsroom: daily, sitemap: weekly } extractors: facility: { match: ["/locations/[a-z-]+/$"], kind: facility, parser: pdg_facility_v1 } defaults: { operatorName: Princeton Digital Group, facilityType: hyperscale }