การสร้างผู้มีโอกาสเป็นลูกค้าแบบธุรกิจต่อธุรกิจตามธรรมเนียมมักอาศัยการซื้อไดเรกทอรีแบบคงที่หรือรายชื่ออุตสาหกรรมเพื่อกำหนดศักยภาพของเขตแดน อย่างไรก็ตาม ชุดข้อมูลจุดที่น่าสนใจ (POI) แบบคงที่เหล่านี้จะล้าสมัยในทันที เนื่องจากมักไม่มีสถานะการดำเนินงานล่าสุดหรือการจัดหมวดหมู่ประเภทสถานที่แบบละเอียด ทีมขายภาคสนามจึงเสี่ยงต่อการเสียเวลาอันมีค่าไปกับการติดตามธุรกิจที่ปิดถาวร จัดหมวดหมู่ผิด หรือไม่เกี่ยวข้องกับโปรไฟล์ลูกค้าในอุดมคติ
คู่มือนี้จะแสดงเวิร์กโฟลว์ในการลดช่องว่างดังกล่าวโดยใช้ ข้อมูลเชิงลึกของ Places และ Places API การแมปสมุดธุรกิจปัจจุบันกับ รหัสสถานที่ จะช่วยให้คุณใช้ BigQuery เพื่อแยกธุรกิจที่ดำเนินการทั้งหมดในเขตแดนที่ยังไม่ได้อยู่ในฐานข้อมูลการจัดการลูกค้าสัมพันธ์ (CRM) ได้ คู่มือนี้จะแสดงวิธีสร้างเครื่องมือการยกเว้นดังกล่าวเพื่อส่งรายชื่อผู้มีโอกาสเป็นลูกค้าที่ได้รับการยืนยันและกำหนดเป้าหมายอย่างเฉพาะเจาะจงไปยังตัวแทนภาคสนาม

แอปพลิเคชันตัวอย่าง
ลองพิจารณาผู้ให้บริการ ณ จุดขาย (POS) ที่วางแผนการขยายการขายภาคสนามในนิวยอร์กซิตี้ โดยปกติแล้ว องค์กรจะดึงรายงานเกี่ยวกับ
สถานประกอบการด้านอาหารและเครื่องดื่มทั้งหมดต่อรหัสไปรษณีย์ วิธีนี้มีความเสี่ยงที่ตัวแทนฝ่ายขายจะพึ่งพาข้อมูลที่ล้าสมัย เช่น สถานที่ที่ปิดถาวร หรือโอกาสในการขายที่ไม่เกี่ยวข้อง เช่น ครัวจัดเลี้ยงส่วนตัวที่ไม่มีหน้าร้าน
ลองนึกถึงแนวทางที่ทันสมัยกว่าโดยใช้ข้อมูลเชิงลึกเกี่ยวกับสถานที่ ซึ่งใช้ประโยชน์จากขนาดระดับโลกและข้อมูลล่าสุดของ Google Maps ที่ได้รับการตรวจสอบจากแหล่งข้อมูลหลายแห่ง
ข้อมูลเชิงลึกเกี่ยวกับสถานที่รองรับหมวดหมู่สถานที่เกือบ 500 หมวดหมู่และแอตทริบิวต์กว่า 70 รายการ
ซึ่งช่วยให้คุณปรับแต่งผู้มีโอกาสเป็นลูกค้าได้อย่างแม่นยำสูงตาม
ประเภทธุรกิจที่เฉพาะเจาะจง (เช่น scandinavian_restaurant) เวลาทำการ และข้อเสนอ
บริการ (เช่น accepts_credit_cards) การอ้างอิงข้อมูลเชิงลึกเกี่ยวกับสถานที่
กับ CRM ภายในจะช่วยให้คุณมอบรายชื่อผู้มีโอกาสเป็นลูกค้าที่มีศักยภาพสูงซึ่งยังไม่ได้ติดต่อ
ให้แก่ทีมขายได้
เวิร์กโฟลว์ของโซลูชัน
คู่มือนี้มีกรอบเทคนิคในการสร้าง "แผนที่โอกาสในการขาย" แบบไดนามิกที่กรองโอกาสในการขายปัจจุบันของคุณออกโดยอัตโนมัติ เหลือเพียงโอกาสในการขายใหม่สุทธิที่ใช้ในการดำเนินงานเพื่อให้ทีมขายติดตาม
สถาปัตยกรรม 4 ขั้นตอน
- กำหนดประเภทสถานที่เป้าหมาย: แมปโปรไฟล์ลูกค้าในอุดมคติกับ ประเภทสถานที่
- ระบุพื้นที่ที่มีศักยภาพสูง: เรียกใช้ฟังก์ชันการนับสถานที่ใน BigQuery เพื่อสร้างฮีตแมปความหนาแน่นของธุรกิจเป้าหมายในการดำเนินงาน
- แปลงข้อมูล CRM เป็นรหัสสถานที่: ประมวลผลระเบียน CRM ที่ไม่มีโครงสร้าง ผ่านไปป์ไลน์การล้างข้อมูล โดยใช้ Address Validation, Geocoding และ Places API เพื่อหารหัสสถานที่สำหรับลูกค้าเดิม
- ยกเว้นช่องว่าง: ผนวกรหัสสถานที่ของ CRM กับข้อมูลเชิงลึกเกี่ยวกับสถานที่ใน BigQuery เพื่อกรองลูกค้าเดิมออกแบบไดนามิก และแสดงผลรายชื่อผู้มีโอกาสเป็นลูกค้าใหม่
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้
โปรเจ็กต์ Google Cloud:
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
การเข้าถึงข้อมูล:
- การสมัครใช้บริการข้อมูลเชิงลึกเกี่ยวกับสถานที่ ใน BigQuery
- ชุดข้อมูล CRM ของคุณเอง (เช่น ตาราง BigQuery) ที่มีชื่อและที่อยู่ธุรกิจของลูกค้าที่มีอยู่ เพื่อใช้เป็นรายการการยกเว้น
Google Maps Platform:
- คีย์ API
- API ต่อไปนี้เปิดใช้สำหรับคีย์ของคุณ
สิทธิ์ IAM:
- ตรวจสอบว่าบัญชีผู้ใช้หรือบัญชีบริการมีบทบาท IAM ต่อไปนี้เพื่อเรียกใช้
คําค้นหาและจัดการชุดข้อมูล
บทบาท รหัส ผู้แก้ไขข้อมูล BigQuery roles/bigquery.dataEditorผู้ใช้ BigQuery roles/bigquery.user
- ตรวจสอบว่าบัญชีผู้ใช้หรือบัญชีบริการมีบทบาท IAM ต่อไปนี้เพื่อเรียกใช้
คําค้นหาและจัดการชุดข้อมูล
การรับรู้ต้นทุน:
- บทแนะนำนี้ใช้คอมโพเนนต์ Google Cloud ที่เรียกเก็บเงินได้ โปรดทราบว่า
ค่าใช้จ่ายที่อาจเกิดขึ้นเกี่ยวข้องกับสิ่งต่อไปนี้
- BigQuery: เรียกเก็บเงินสำหรับสล็อตการประมวลผลที่ใช้หรือข้อมูลที่ประมวลผล ระหว่างการดำเนินการค้นหา
- ข้อมูลเชิงลึกเกี่ยวกับสถานที่: เรียกเก็บเงินตามการใช้งานการค้นหา
- Google Maps Platform: เรียกเก็บเงินต่อคำขอสำหรับ Address Validation API, Geocoding API และ การค้นหาข้อความ API
- บทแนะนำนี้ใช้คอมโพเนนต์ Google Cloud ที่เรียกเก็บเงินได้ โปรดทราบว่า
ค่าใช้จ่ายที่อาจเกิดขึ้นเกี่ยวข้องกับสิ่งต่อไปนี้
ขั้นตอนที่ 1: กำหนดประเภทสถานที่เป้าหมาย
ข้อมูลเชิงลึกเกี่ยวกับสถานที่รองรับหมวดหมู่สถานที่เกือบ 500 หมวดหมู่และแอตทริบิวต์กว่า 70 รายการ (เช่น เวลาทำการของร้านค้า ประเภทการชำระเงิน และสถานะการดำเนินงาน) การค้นหา ทั้งชุดข้อมูลโดยไม่เลือกจะไม่มีประสิทธิภาพและมีค่าใช้จ่ายสูง
ในขั้นตอนพื้นฐาน ให้ใช้ LLM เช่น Gemini เพื่อแปลโปรไฟล์ลูกค้าภายในเป็นประเภทสถานที่ ซึ่งใช้เมื่อสร้างคําค้นหาสำหรับข้อมูลเชิงลึกเกี่ยวกับสถานที่ คำจำกัดความของอนุกรมวิธานระดับมหภาคนี้ ช่วยให้มั่นใจได้ว่าการค้นหา BigQuery ในภายหลังจะกำหนดเป้าหมายได้สูง ซึ่งจะช่วยลดค่าใช้จ่ายในการประมวลผลการคำนวณ
ตัวอย่างเช่น หากคุณกำลังออกแบบเวิร์กโฟลว์สำหรับระบบจุดขาย คุณสามารถระบุรายการประเภทสถานที่ให้ Gemini และใช้พรอมต์ต่อไปนี้
"สมมติว่าคุณเป็นนักวิเคราะห์ตลาด จากประเภทสถานที่ของ Google Maps ที่รองรับ ผู้ให้บริการระบบจุดขายควรให้ความสำคัญกับประเภทใดเป็นหลัก ให้เหตุผลในการตัดสินใจของคุณ"
จากพรอมต์นี้ Gemini จะวิเคราะห์อนุกรมวิธานและแสดงผลชุดย่อยที่กำหนดเป้าหมายของประเภทสถานที่ที่เกี่ยวข้องเพื่อใช้ในตัวกรอง BigQuery types ดังนี้
| หมวดหมู่หลัก | เหตุผลรองรับ | ประเภทสถานที่สำคัญ |
|---|---|---|
| อาหารและเครื่องดื่ม | ต้องมีการประมวลผลธุรกรรมที่รวดเร็ว การจัดการโต๊ะ การออกตั๋วคำสั่งซื้อ และการจัดการทิป | restaurant, bar, cafe, coffee_shop |
| Shopping | ต้องมีการติดตามสินค้าคงคลัง การสแกนบาร์โค้ด การประมวลผลการคืนสินค้า และการผสานรวมโปรแกรมสะสมคะแนนที่มีประสิทธิภาพ | clothing_store, grocery_store, supermarket, convenience_store |
| บริการและสุขภาพและความเป็นอยู่ที่ดี | ต้องมีการจองการนัดหมาย การกำหนดเวลา โปรไฟล์ลูกค้า และการติดตามค่าคอมมิชชันแบบผสานรวม | hair_salon, beauty_salon, spa, massage |
| ความบันเทิง สันทนาการ และกีฬา | ต้องจัดการกับลูกค้าที่เข้ามาอย่างรวดเร็ว สแกนตั๋วดิจิทัล และขายอาหารและเครื่องดื่มได้อย่างรวดเร็ว | movie_theater, amusement_park, bowling_alley, stadium |
ในคู่มือนี้ เราจะมุ่งเน้นไปที่ประเภทสถานที่ที่แนะนำสำหรับหมวดหมู่อาหารและเครื่องดื่ม
ขั้นตอนที่ 2: แยกจำนวนธุรกิจเพื่อระบุพื้นที่ที่มีศักยภาพสูง
หากต้องการระบุพื้นที่ที่มีโอกาส คุณต้องมีมุมมองระดับมหภาคเกี่ยวกับความหนาแน่นของธุรกิจก่อน
คุณทำได้โดยการเรียกใช้ฟังก์ชัน Places Count
(เช่น
PLACES_COUNT_PER_H3
หรือ
PLACES_COUNT_PER_GEO)
ใน BigQuery
แม้ว่าคุณจะค้นหาชุดข้อมูลได้โดยตรง แต่ฟังก์ชัน Places Count เป็นคำค้นหา SQL ที่กำหนดไว้ล่วงหน้า ซึ่งได้รับการเพิ่มประสิทธิภาพและไม่ได้บังคับใช้เกณฑ์ขั้นต่ำของการรวมข้อมูลมาตรฐานของสถานที่ขั้นต่ำ 5 แห่ง (การค้นหาโดยตรงแบบมาตรฐานจะละเว้นแถวที่มีธุรกิจ 1-4 ราย อย่างไรก็ตาม ฟังก์ชันเหล่านี้จะช่วยให้คุณเห็นได้อย่างชัดเจนว่าแม้แต่ผู้มีโอกาสเป็นลูกค้าเพียงรายเดียวก็มีอยู่) ที่สำคัญ ฟังก์ชันเหล่านี้จะแสดงผลอาร์เรย์ที่มีรหัสสถานที่ได้สูงสุด 250 รายการต่อ
พื้นที่ทางภูมิศาสตร์โดยใช้คอลัมน์ sample_place_ids ซึ่งจะให้ทั้ง
แผนที่ความหนาแน่นเชิงสถิติสำหรับนักวางแผนเขตแดนและ
ตัวระบุพื้นฐานที่จำเป็นสำหรับการสร้างโอกาสในการขาย
การค้นหาต่อไปนี้แสดงวิธีดึงรูปหลายเหลี่ยมที่ซับซ้อนแบบไดนามิก
(ขอบเขตทั้งหมดของนิวยอร์กซิตี้) โดยใช้ชุดข้อมูลสาธารณะ แล้วส่ง
ข้อมูลทางภูมิศาสตร์นั้นไปยังฟังก์ชัน Places Count การใช้ดัชนีเชิงพื้นที่ H3 ที่ความละเอียดที่กว้างขึ้น (8) ทั่วทั้งเมืองจะช่วยให้คุณสร้างแผนที่ความหนาแน่นระดับมหภาคได้
นอกจากนี้ การเลือกคอลัมน์ทั้งหมด (SELECT *) จะทำให้ฟังก์ชันแสดงผลคอลัมน์ geography ซึ่งเป็นรูปหลายเหลี่ยมที่แสดงถึงเซลล์ H3 ซึ่งจะช่วยให้คุณนำเข้าผลลัพธ์ BigQuery ไปยังเครื่องมือ Business Intelligence (เช่น Looker Studio) ได้ทันทีเพื่อสร้างการแสดงข้อมูลผ่านภาพแผนที่แบบแบ่งตามสี ซึ่งแสดงจุดที่ได้รับความนิยมในตลาด
-- Illustrative logic: Extracting target business counts per H3 cell across New York City
DECLARE geo GEOGRAPHY;
-- Get the geography for New York City using the Overture Maps public dataset
SET geo = (SELECT geometry FROM `bigquery-public-data.overture_maps.division_area`
WHERE country = 'US' AND subtype = 'locality' AND names.primary = 'New York' LIMIT 1);
SELECT *
FROM `YOUR_PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`(
JSON_OBJECT(
'geography', geo,
'h3_resolution', 8,
'types',['restaurant', 'bar', 'cafe', 'coffee_shop'],
'business_status', ['OPERATIONAL']
)
)
ORDER BY count DESC;

ดังที่เห็นในภาพที่ได้ มีพื้นที่ที่มีความหนาแน่นสูงอย่างชัดเจน ของธุรกิจเป้าหมายทั่วทั้งแมนฮัตตัน ในส่วนที่เหลือของเอกสารนี้ เราจะเจาะลึกและมุ่งเน้นความพยายามในการสร้างผู้มีโอกาสเป็นลูกค้าในโซนที่มีศักยภาพสูงอย่างใดอย่างหนึ่งต่อไปนี้ ซึ่งก็คือพื้นที่ใกล้กับUnion Square
ขั้นตอนที่ 3: ทำให้ข้อมูล CRM เป็นมาตรฐานสำหรับรหัสสถานที่
หากต้องการวิเคราะห์การยกเว้น คุณต้องแปลงระเบียน CRM เป็น Place ID ก่อน เนื่องจากข้อมูล CRM มักไม่มีโครงสร้าง การส่งข้อความดิบไปยัง Search API จึงทำให้ อัตราการจับคู่ต่ำ ใช้ไปป์ไลน์ 2 ขั้นตอนนี้เพื่อล้างข้อมูลที่อยู่ พิจารณาความครอบคลุมของ API ในภูมิภาค และรับประกันว่าคุณจะดึงรหัสสถานที่ประกอบธุรกิจที่ถูกต้องสำหรับ BigQuery
สมมติว่าคุณมีลูกค้าร้านอาหาร 5 รายต่อไปนี้ใน CRM ซึ่งอยู่ในนิวยอร์กซิตี้
| ชื่อสถานที่ | ที่อยู่ |
|---|---|
| Boucherie Union Square | 225 Park Ave S, New York, NY 10003, United States |
| Gramercy Tavern | 42 E 20th St, New York, NY 10003, United States |
| Barn Joo Union Square | 35 Union Square W, New York, NY 10003, United States |
| LOS TACOS No.1 | 200 Park Ave S, New York, NY 10003, United States |
| Union Square Cafe | 101 E 19th St, New York, NY 10003, United States |
เนื่องจากระเบียนเหล่านี้ประกอบด้วยข้อความที่ไม่มีโครงสร้าง คุณจึงไม่สามารถรวมระเบียนเหล่านี้กับข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่ใน BigQuery ได้โดยตรง แต่ให้ประมวลผลแต่ละแถว ผ่านไปป์ไลน์ต่อไปนี้เพื่อจัดรูปแบบข้อความให้เป็นมาตรฐานและดึงรหัสสถานที่
ขั้นตอนที่ 3ก: การล้างข้อมูลที่อยู่และการจับคู่โดยตรง
สร้างมาตรฐานให้กับข้อมูลที่อยู่ก่อน เลือก API ตามประเทศเป้าหมาย
ตัวเลือกที่ 1: Address Validation API
สำหรับภูมิภาคที่รองรับ
ให้ส่งชื่อและที่อยู่ธุรกิจ CRM ที่ต่อกันไปยัง API ตรวจสอบอาร์เรย์ result.geocode.placeTypes ของ
การตอบกลับ:
- การจับคู่สถานประกอบการ: หากมี
establishmentหรือpoint_of_interestแสดงว่า API แก้ไขธุรกิจสำเร็จแล้ว ผนวกข้อความนี้placeIdลงในชุดข้อมูล แล้วไปที่ระเบียน CRM ถัดไป ไม่จำเป็นต้องเรียก API เพิ่มเติมสำหรับรายการนี้ - ไม่ตรงกับสถานประกอบการ: หากไม่มีธุรกิจประเภทดังกล่าว API จะยืนยันองค์กรธุรกิจอย่างชัดเจนไม่ได้ รหัสสถานที่ที่แสดงผลจะแสดงถึงลักษณะทางภูมิศาสตร์ (เช่น อาคาร ถนน หรือเมือง) อย่าใช้รหัสสถานที่นี้กับ BigQuery เนื่องจากจะทำให้การรวมการยกเว้นล้มเหลว
ให้บันทึก
result.address.formattedAddressแล้วไปที่ ขั้นตอนที่ 3b แทน
ตัวเลือกที่ 2: Geocoding API
สำหรับภูมิภาคที่ Address Validation ไม่รองรับ ให้ส่งเฉพาะที่อยู่ CRM ไปยัง Geocoding API อย่าใส่ชื่อธุรกิจ เนื่องจาก Geocoding API อาจ
แสดงผลลัพธ์ที่คาดเดาไม่ได้ แตกไฟล์ formattedAddress ที่ได้และ
ไปยังขั้นตอนที่ 3b
สถาปัตยกรรมขั้นสูง: การจัดการข้อมูลที่ไม่มีโครงสร้างด้วย LLM
หากข้อมูล CRM มีคุณภาพต่ำมาก เช่น ชื่อธุรกิจและที่อยู่ปะปนกัน ในช่องหมายเหตุแบบข้อความอิสระเดียว ให้ประมวลผลระเบียนล่วงหน้าด้วย LLM เช่น Gemini คุณสามารถป้อนพรอมต์ให้ Gemini แยกวิเคราะห์ชื่อธุรกิจจากสถานที่ตั้งอย่างชัดเจน ก่อนที่จะป้อนลงในไปป์ไลน์นี้
ขั้นตอนที่ 3ข: แก้ไขนิติบุคคล
หากขั้นตอนที่ 3กแสดงเฉพาะที่อยู่ที่ทำความสะอาดแล้ว ให้ต่อท้ายด้วยชื่อธุรกิจ CRM เดิม แล้วส่งไปยัง Text Search API การกำหนดที่อยู่ให้เป็นมาตรฐานก่อนจะช่วยเพิ่มอัตราการจับคู่ได้อย่างมาก
ใช้ Field Mask (X-Goog-FieldMask:
places.id) และตั้งค่า "pageSize": 1 เพื่อให้ระบบแสดงเฉพาะรหัสสถานที่ที่ตรงกันมากที่สุด เพื่อเพิ่มประสิทธิภาพและลดต้นทุน
ตัวอย่างคำขอค้นหาข้อความ:
curl -X POST -d '{
"textQuery" : "Gramercy Tavern 42 E 20th St, New York, NY 10003-1324, USA",
"pageSize": 1
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'
เอาต์พุตของไปป์ไลน์
หลังจากประมวลผลระเบียน CRM ผ่านไปป์ไลน์ 2 ขั้นตอนนี้แล้ว ไม่ว่าจะดึงข้อมูลรหัส
ได้สำเร็จในขั้นตอนที่ 3ก หรือแก้ไขโดยใช้การค้นหาข้อความในขั้นตอนที่ 3ข
เป้าหมายสุดท้ายคือการต่อท้ายคอลัมน์ place_id ใหม่ลงในชุดข้อมูล ตอนนี้ตารางผลลัพธ์พร้อมให้อัปโหลดลงใน BigQuery เป็นรายการยกเว้นแล้ว
| ชื่อสถานที่ | ที่อยู่ | รหัสสถานที่ |
|---|---|---|
| Boucherie Union Square | 225 Park Ave S, New York, NY 10003, United States | ChIJc1Vf7KFZwokR1YL2Rn9oxi8 |
| Gramercy Tavern | 42 E 20th St, New York, NY 10003, United States | ChIJvSQIgqFZwokRFYQbJdzceSs |
| Barn Joo Union Square | 35 Union Square W, New York, NY 10003, United States | ChIJQ7XpyqNZwokRQpVfvGEViWM |
| LOS TACOS No.1 | 200 Park Ave S, New York, NY 10003, United States | ChIJFZh0PABZwokRVzoJu0o-mLY |
| Union Square Cafe | 101 E 19th St, New York, NY 10003, United States | ChIJxTHke6JZwokRCLWVd99eDBw |
ขั้นตอนที่ 4: ดําเนินการวิเคราะห์การยกเว้นช่องว่างใน BigQuery
เมื่อแมปลูกค้าเดิมกับรหัสสถานที่แล้ว ให้ใช้ฟังก์ชันจำนวนสถานที่ เพื่อค้นหาผู้มีโอกาสเป็นลูกค้าใหม่
ในตัวอย่างนี้ เราจะค้นหาธุรกิจเป้าหมายที่ดำเนินการอยู่ (ร้านอาหาร บาร์ คาเฟ่ และร้านกาแฟ) ภายในรัศมี 850 เมตรจาก Union Square
(40.73595, -73.99043) เราจะเพิ่มฟังก์ชัน PLACES_COUNT_PER_H3 เป็นความละเอียด 10 เพื่อให้ได้มุมมองที่ละเอียดยิ่งขึ้นสำหรับการกำหนดเส้นทางระดับถนน
เนื่องจากฟังก์ชันจะแสดงรหัสสถานที่เป็นอาร์เรย์ในsample_place_idsคอลัมน์ เราจึงต้องUNNESTอาร์เรย์เพื่อใส่ธุรกิจที่คาดหวังแต่ละรายในแถวของตัวเอง
จากนั้นเราจะดำเนินการ LEFT JOIN กับรหัสสถานที่ของลูกค้าที่เรารู้จัก
การค้นหาด้านล่างใช้คำสั่ง CASE เพื่อแจ้งผลลัพธ์แทนที่จะกรองออกทั้งหมด เพื่อพิสูจน์ว่าตรรกะการยกเว้นใช้ได้สำหรับการสาธิตนี้
นอกจากนี้ ยังจัดเรียงลูกค้าเดิมไว้ที่ด้านบนสุดของตารางผลลัพธ์อย่างชัดเจน
เพื่อให้คุณยืนยันได้ว่าระบบจับคู่ลูกค้าเดิมได้สำเร็จ
การค้นหา SQL
WITH existing_customers AS (
-- 1. Simulate the uploaded CRM table
SELECT * FROM UNNEST([
'ChIJc1Vf7KFZwokR1YL2Rn9oxi8', -- Boucherie Union Square
'ChIJvSQIgqFZwokRFYQbJdzceSs', -- Gramercy Tavern
'ChIJQ7XpyqNZwokRQpVfvGEViWM', -- Barn Joo Union Square
'ChIJFZh0PABZwokRVzoJu0o-mLY', -- LOS TACOS No.1
'ChIJxTHke6JZwokRCLWVd99eDBw' -- Union Square Cafe
]) AS place_id
),
target_area_businesses AS (
-- 2. Query Places Insights for target businesses in the radius
SELECT
h3_cell_index,
place_id
FROM `places_insights___us.PLACES_COUNT_PER_H3`(
JSON_OBJECT(
'geography', ST_GEOGPOINT(-73.99043, 40.73595),
'geography_radius', 850,
'h3_resolution', 10,
'types',['restaurant', 'bar', 'cafe', 'coffee_shop'],
'business_status', ['OPERATIONAL']
)
),
UNNEST(sample_place_ids) AS place_id
)
-- 3. The "Proof" Output: Flag them instead of filtering them out
SELECT
t.h3_cell_index,
t.place_id,
-- Flag whether the LEFT JOIN found a match in the CRM table
CASE
WHEN e.place_id IS NOT NULL THEN 'Existing Customer (To Be Excluded)'
ELSE 'Net-New Lead'
END AS lead_status,
CONCAT('https://www.google.com/maps/search/?api=1&query=Place&query_place_id=', t.place_id) AS actionable_maps_url
FROM target_area_businesses t
LEFT JOIN existing_customers e
ON t.place_id = e.place_id
ORDER BY
-- Explicitly sort the existing customers to the top (0 comes before 1)
CASE WHEN e.place_id IS NOT NULL THEN 0 ELSE 1 END ASC;
ผลการค้นหา
ต่อไปนี้คือตัวอย่างเอาต์พุตของคําค้นหา ซึ่งแสดงวิธีระบุลูกค้าเดิมสําเร็จและแยกออกจากผู้มีโอกาสเป็นลูกค้าใหม่ภายในเซลล์ H3 แบบละเอียดเดียวกัน
โปรดสังเกตว่าคําค้นหาใช้คําสั่ง CONCAT เพื่อสร้างURL ของ Maps แบบข้ามแพลตฟอร์มโดยใช้
place_id ซึ่งจะสร้างคอลัมน์ actionable_maps_url โดยอัตโนมัติ เพื่อให้ฝ่ายขายมีลิงก์ที่คลิกได้ทันทีเพื่อโหลดธุรกิจที่แน่นอน ในแอป Google Maps บนมือถือ หรือเบราว์เซอร์
h3_cell_index |
place_id |
lead_status |
actionable_maps_url |
|---|---|---|---|
| 8a2a100d2767fff | ChIJQ7XpyqNZwokRQpVfvGEViWM | ลูกค้าเดิม (ไม่รวม) | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJQ7XpyqNZwokRQpVfvGEViWM |
| 8a2a100d20effff | ChIJvSQIgqFZwokRFYQbJdzceSs | ลูกค้าเดิม (ไม่รวม) | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJvSQIgqFZwokRFYQbJdzceSs |
| 8a2a100d2397fff | ChIJc1Vf7KFZwokR1YL2Rn9oxi8 | ลูกค้าเดิม (ไม่รวม) | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJc1Vf7KFZwokR1YL2Rn9oxi8 |
| 8a2a100d2397fff | ChIJFZh0PABZwokRVzoJu0o-mLY | ลูกค้าเดิม (ไม่รวม) | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJFZh0PABZwokRVzoJu0o-mLY |
| 8a2a100d23b7fff | ChIJxTHke6JZwokRCLWVd99eDBw | ลูกค้าเดิม (ไม่รวม) | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJxTHke6JZwokRCLWVd99eDBw |
| 8a2a1072c96ffff | ChIJ6atD-WRZwokRULgcZ4TWin8 | ผู้มีโอกาสเป็นลูกค้าใหม่ | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJ6atD-WRZwokRULgcZ4TWin8 |
| 8a2a1072c96ffff | ChIJ09yg-llZwokRKAgp0jg6TCU | ผู้มีโอกาสเป็นลูกค้าใหม่ | https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJ09yg-llZwokRKAgp0jg6TCU |
แสดงภาพโอกาสในการขายด้วย Places UI Kit
คุณสามารถส่ง place_ids ไปยัง
Places UI Kit
เพื่อสร้างแดชบอร์ดการสร้างผู้มีโอกาสเป็นลูกค้าภายในที่สมบูรณ์สำหรับฝ่ายขาย แทนที่จะระบุ URL ของ Maps แบบดิบ
คุณสามารถวางคอมโพเนนต์ที่สร้างไว้ล่วงหน้าสำหรับ
เว็บ
Android
และ
iOS ได้ในทุกแพลตฟอร์ม
คอมโพเนนต์เหล่านี้จะแสดงข้อมูลจุดที่น่าสนใจที่สมบูรณ์โดยอัตโนมัติ เช่น รูปภาพ คะแนน และเวลาทำการ โดยที่คุณไม่ต้องเขียนโค้ด UI ของส่วนหน้าหรือจัดการการตอบกลับของ API ด้วยตนเอง
ขีดจำกัดข้อมูล
ฟังก์ชัน Places Count จะแสดงผลรหัสสถานที่สูงสุด 250 รายการต่อเซลล์ทางภูมิศาสตร์
ในอาร์เรย์ sample_place_ids หากพื้นที่หนาแน่นมาก ระบบจะจำกัดรายชื่อผู้มีโอกาสเป็นลูกค้าที่สร้างขึ้นสำหรับเซลล์นั้นๆ ไว้ที่ 250 ราย หากต้องการให้ได้ลูกค้าเป้าหมายทั้งหมดในตลาดที่มีการแข่งขันสูง ให้ลองใช้กลยุทธ์ต่อไปนี้
- ใช้ตัวกรองการค้นหาที่เฉพาะเจาะจง: แทนที่จะจัดกลุ่มหลายประเภทไว้ในการค้นหาเดียว (เช่น ตัวอย่างด้านบน) ให้เรียกใช้การค้นหาแยกกันสำหรับสถานที่แต่ละประเภท
- ลดขอบเขตเชิงพื้นที่: ลดพื้นที่การค้นหาโดยรวมโดยใช้
geography_radiusที่เล็กลง หรือแบ่งพื้นที่ออกเป็นกลุ่มย่อยๆ ที่ละเอียดยิ่งขึ้นโดยเพิ่มความละเอียดของ H3 (สูงสุดที่ความละเอียด 11) - การปรับความละเอียดตามความหนาแน่น: เมื่อวิเคราะห์เขตแดนที่มีความหนาแน่นของประชากรแตกต่างกัน ให้ปรับขนาดการค้นหาแบบไดนามิกเพื่อหลีกเลี่ยงการเกินขีดจำกัดรหัสสถานที่ 250 รายการ
ใช้ความละเอียด H3 ที่กว้างขึ้น (เช่น 6 หรือ 7) หรือ
geography_radiusที่ใหญ่ขึ้นในพื้นที่ชนบทซึ่งธุรกิจกระจายตัวอยู่ ในทางกลับกัน ให้ใช้ความละเอียดที่ละเอียดมาก (เช่น 10 หรือ 11) ในพื้นที่เขตเมืองที่มีความหนาแน่นสูงเพื่อให้มั่นใจว่าคุณจะดึงดูดผู้มีโอกาสเป็นลูกค้าทุกรายโดยไม่ตัดรายชื่อ
คำค้นหาการผลิต
เมื่อยืนยันว่าระบบระบุลูกค้าเดิมได้สำเร็จแล้ว คุณจะ
เปลี่ยนกลับไปใช้เวอร์ชันการนำไปใช้งานจริงของคำค้นหาได้ แทนที่บล็อก SELECT สุดท้าย
ด้วยWHEREข้อความต่อไปนี้เพื่อกรองสมุดลูกค้าที่มีอยู่
ออกอย่างถาวร
SELECT
t.h3_cell_index,
t.place_id,
CONCAT('https://www.google.com/maps/search/?api=1&query=Place&query_place_id=', t.place_id) AS actionable_maps_url
FROM target_area_businesses t
LEFT JOIN existing_customers e
ON t.place_id = e.place_id
WHERE e.place_id IS NULL; -- Filters out the CRM matches
การกำกับดูแลและการปฏิบัติตามข้อกำหนดด้านสถาปัตยกรรม
หากต้องการรักษาระบบให้มีประสิทธิภาพสูงขึ้นและเป็นไปตามข้อกำหนด ให้ปฏิบัติตามมาตรฐานต่อไปนี้
- รหัสสถานที่เป็นตัวระบุแบบถาวร: นอกเหนือจากรหัสสถานที่แล้ว ข้อกำหนดในการให้บริการของ Google Maps ยังห้ามจัดเก็บหรือแคชข้อมูล POI แต่ละรายการที่ได้จาก Places API (เช่น หมายเลขโทรศัพท์และรายละเอียดการติดต่อ) ใช้รหัสสถานที่เป็น ตัวระบุแบบถาวรสำหรับการวิเคราะห์พื้นที่ว่างที่เกิดซ้ำ
- ตรวจสอบความใหม่ของแอตทริบิวต์ด้วยการเรียก API แบบเรียลไทม์: ใช้รหัสสถานที่เพื่อทำการเรียก "ทันที" ไปยัง Place Details API เพื่อให้แน่ใจว่าพนักงานขายมีข้อมูลธุรกิจและข้อมูลติดต่อที่เป็นปัจจุบันที่สุดสำหรับสถานที่นั้นๆ หรือคุณจะสร้าง URL ของ Google Maps แบบไดนามิกเพื่อให้ทีมขายมีลิงก์โดยตรงไปยัง Business Profile ใน Google Maps ก็ได้ ดังที่แสดงในเอาต์พุตการค้นหา
บทสรุป
การใช้รหัสสถานที่เป็นคีย์หลักจะช่วยให้คุณเชื่อมช่องว่างระหว่างการวิเคราะห์ตลาดระดับสูงกับการปฏิบัติการขายระดับพื้นดินที่นำไปใช้ได้จริง สถาปัตยกรรมนี้หลีกเลี่ยงความไม่ถูกต้องของการกำหนดเป้าหมายตามประชากรทั่วไป ใช้คลังข้อมูลแบบ Serverless สำหรับการรวมข้อมูลที่ต้องใช้การคำนวณจำนวนมาก และปฏิบัติตามแนวทางปฏิบัติแนะนำด้านการจัดการต้นทุนและการปฏิบัติตามข้อกำหนดอย่างเคร่งครัดที่เลเยอร์ API
การดำเนินการถัดไป
- ขอสิทธิ์เข้าถึงตัวอย่าง ชุดข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่
- สมัครใช้ชุดข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่โดยใช้ข้อมูล BigQuery การแลกเปลี่ยนข้อมูลเพื่อเข้าถึงข้อมูลตัวอย่างหรือข้อมูลประเทศแบบเต็ม
- อ่านข้อมูลอ้างอิงพารามิเตอร์ตัวกรองเพื่อปรับแต่งคำค้นหา BigQuery SQL ตามแอตทริบิวต์และประเภทธุรกิจ
- ใช้การค้นหาแบบไดนามิกของ Places API ใน CRM หรือแอปพลิเคชันการกำหนดเส้นทางการขาย เพื่อแสดงข้อมูลติดต่อที่เป็นปัจจุบันและเป็นไปตามข้อกำหนดสำหรับผู้มีโอกาสเป็นลูกค้าใหม่ที่สร้างขึ้น
ผู้ร่วมให้ข้อมูล
- Henrik Valve | วิศวกร DevX