Mit Places Insights neue Leads für den Außendienst identifizieren

Bei der herkömmlichen B2B-Lead-Generierung wird das Potenzial eines Gebiets oft durch den Kauf statischer Verzeichnisse oder Branchenlisten definiert. Diese statischen POI-Datasets sind jedoch fast sofort veraltet. Da sie oft keinen aktuellen Betriebsstatus oder keine detaillierte Kategorisierung des Orts haben, riskieren Außendienstteams, wertvolle Zeit mit der Suche nach Unternehmen zu verschwenden, die dauerhaft geschlossen, falsch kategorisiert oder für ihr ideales Kundenprofil irrelevant sind.

In diesem Leitfaden wird ein Workflow beschrieben, mit dem diese Lücke mithilfe von Places Insights und der Places API geschlossen werden kann. Wenn Sie Ihr aktuelles Geschäft auf die Orts-IDs abstimmen, können Sie mit BigQuery jedes operative Unternehmen in einem Gebiet isolieren, das noch nicht in Ihrer CRM-Datenbank (Customer Relationship Management) enthalten ist. In diesem Leitfaden erfahren Sie, wie Sie diese Ausschluss-Engine erstellen, um Ihren Außendienstmitarbeitern eine hochgradig zielgerichtete, überprüfte Liste mit Leads zur Verfügung zu stellen.

Diagramm mit vorhandenen CRM-Daten, die mit der Places API und BigQuery Places Insights verarbeitet werden, um bestätigte neue Leads zu generieren.

Beispielapp

Nehmen wir an, ein Point-of-Sale-Anbieter (POS) plant eine Ausweitung des Außendienstes in New York City. Normalerweise würde die Organisation einen Bericht über die Gesamtzahl der Gastronomiebetriebe pro Postleitzahl erstellen. Bei diesem Ansatz besteht das Risiko, dass Vertriebsmitarbeiter auf veraltete Daten zurückgreifen, z. B. auf dauerhaft geschlossene Standorte oder irrelevante Leads wie eine private Cateringküche ohne Schaufenster. Stellen Sie sich stattdessen einen modernen Ansatz mit Places Insights vor, der die globale Reichweite von Google Maps und aktuelle Daten nutzt, die aus mehreren Quellen stammen. Places Insights unterstützt fast 500 Ortskategorien und über 70 Attribute. So können Sie Ihre potenziellen Kunden anhand bestimmter Unternehmenstypen (z. B. scandinavian_restaurant), Öffnungszeiten und Dienstleistungen (z. B. accepts_credit_cards) sehr genau eingrenzen. Wenn Sie Places Insights mit Ihrem internen CRM abgleichen, können Sie Ihrem Vertriebsteam eine Liste mit potenziellen Neukunden zur Verfügung stellen, die noch nicht kontaktiert wurden.

Lösungsablauf

In dieser Anleitung finden Sie ein technisches Framework zum Erstellen einer dynamischen „Leads-Karte“, in der Ihr aktuelles Geschäft automatisch herausgefiltert wird. So bleiben nur neue, operative Leads übrig, die Ihr Vertriebsteam bearbeiten kann.

Die vierstufige Architektur

  1. Zielorttypen definieren:Ordnen Sie Ihre idealen Kundenprofile den Ortstypen zu.
  2. Bereiche mit hohem Potenzial identifizieren:Führen Sie Places Count-Funktionen in BigQuery aus, um Dichte-Wärmebilder von Unternehmen zu erstellen, die als Ziel für die Kampagne infrage kommen.
  3. CRM-Daten anhand von Orts-IDs normalisieren:Verarbeiten Sie unstrukturierte CRM-Datensätze über eine Datenbereinigungs-Pipeline, in der die Address Validation API, die Geocoding API und die Places API verwendet werden, um die Orts-IDs für Ihre Bestandskunden zu ermitteln.
  4. Leerzeichen ausschließen:Verknüpfen Sie Ihre CRM-Orts-IDs mit Ihren Places-Insights-Daten in BigQuery, um Bestandskunden dynamisch herauszufiltern und eine Liste mit neuen Leads zu erstellen.

Vorbereitung

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Google Cloud-Projekt:

    • Google Cloud-Projekt mit aktivierter Abrechnungsfunktion.
  • Datenzugriff:

    • Places Insights-Abo in BigQuery.
    • Ihr eigenes CRM-Dataset (z.B. eine BigQuery-Tabelle) mit vorhandenen Unternehmensnamen und Adressen von Kunden, das als Ausschlussliste dient.
  • Google Maps Platform:

  • IAM-Berechtigungen:

    • Ihr Nutzer- oder Dienstkonto muss die folgenden IAM-Rollen haben, um Abfragen auszuführen und Ihr Dataset zu verwalten:
      Rolle ID
      BigQuery-Dateneditor roles/bigquery.dataEditor
      BigQuery-Nutzer roles/bigquery.user
  • Kostenbewusstsein:

    • In dieser Anleitung werden kostenpflichtige Google Cloud-Komponenten verwendet. Beachten Sie die potenziellen Kosten im Zusammenhang mit:
      • BigQuery:Es werden Gebühren für die verwendeten Compute-Slots oder die während der Abfrageausführung verarbeiteten Daten berechnet.
      • Places Insights:Die Abrechnung erfolgt basierend auf der Abfragenutzung.
      • Google Maps Platform:Die Abrechnung erfolgt pro Anfrage für die Address Validation API, die Geocoding API und die Text Search API.

Schritt 1: Zielortstypen definieren

Places Insights unterstützt fast 500 Ortskategorien und über 70 Attribute, z. B. Öffnungszeiten, Zahlungsarten und Betriebsstatus. Das wahllose Abfragen des gesamten Datensatzes ist ineffizient und kostspielig.

Verwenden Sie als grundlegenden Schritt ein LLM wie Gemini, um Ihre internen Kundenprofile in Place Types (Ortsarten) zu übersetzen, die beim Erstellen einer Anfrage für Places Insights verwendet werden. Diese Definition der Makroebene sorgt dafür, dass Ihre nachfolgenden BigQuery-Suchanfragen sehr zielgerichtet sind, wodurch der Rechenaufwand reduziert wird.

Wenn Sie beispielsweise einen Workflow für ein Kassensystem entwerfen, können Sie Gemini die Liste der Ortstypen zur Verfügung stellen und den folgenden Prompt verwenden:

„Fungiere als Marktanalyst. Welche der unterstützten Google Maps-Orts-Typen sind die primären Ziele für einen Anbieter von Kassensystemen? Begründe deine Entscheidung.“

Anhand dieses Prompts analysiert Gemini die Taxonomie und gibt eine gezielte Teilmenge relevanter Ortstypen zurück, die Sie in Ihrem BigQuery-types-Filter verwenden können:

Hauptkategorie Begründung Wichtige Ortstypen
Essen und Trinken Erfordert eine schnelle Transaktionsverarbeitung, Tabellenverwaltung, Bestellungsbearbeitung und Trinkgeldverarbeitung. restaurant, bar, cafe, coffee_shop
Shopping Erfordert eine robuste Bestandsverfolgung, Barcode-Scanning, Retourenbearbeitung und Integrationen für Treuepunkte. clothing_store, grocery_store, supermarket, convenience_store
Dienste und Gesundheit & Wohlbefinden Erfordert integrierte Terminbuchung, Terminplanung, Kundenprofile und Provisions-Tracking. hair_salon, beauty_salon, spa, massage
Unterhaltung, Freizeit und Sport Dies erfordert eine schnelle Bearbeitung von Kundenanstürmen, das Scannen digitaler Tickets und schnelle Konzessionsverkäufe. movie_theater, amusement_park, bowling_alley, stadium

In diesem Leitfaden konzentrieren wir uns auf die vorgeschlagenen Ortstypen für die Kategorie Essen und Trinken.

Schritt 2: Anzahl der Unternehmen extrahieren, um Bereiche mit hohem Potenzial zu ermitteln

Um Möglichkeiten zu ermitteln, benötigen Sie zuerst einen Makroüberblick über die Unternehmensdichte. Dazu können Sie Funktionen für die Anzahl der Orte (z. B. PLACES_COUNT_PER_H3 oder PLACES_COUNT_PER_GEO) in BigQuery ausführen.

Sie können das Dataset zwar direkt abfragen, aber die Funktionen für die Anzahl der Orte sind vordefinierte, optimierte SQL-Abfragen, für die nicht der standardmäßige Aggregationsschwellenwert von mindestens 5 Orten gilt. Bei direkten Standardabfragen werden Zeilen mit 1–4 Unternehmen ausgelassen. Mit diesen Funktionen können Sie jedoch genau sehen, wo sich auch nur ein potenzieller Kunde befindet. Wichtig: Diese Funktionen geben ein Array mit bis zu 250 Orts-IDs pro geografischem Gebiet zurück, wobei die Spalte sample_place_ids verwendet wird. So erhalten Sie sowohl die statistische Heatmap für Ihre Gebietsplaner als auch die grundlegenden Kennungen, die für die Lead-Generierung erforderlich sind.

In der folgenden Abfrage wird gezeigt, wie Sie ein komplexes Polygon (die gesamte Grenze von New York City) dynamisch aus einem öffentlichen Dataset abrufen und dann an die Funktion „Places Count“ übergeben. Wenn Sie den räumlichen H3-Index mit einer breiteren Auflösung (8) für die gesamte Stadt verwenden, können Sie eine Dichtekarte auf Makroebene erstellen.

Wenn Sie alle Spalten (SELECT *) auswählen, gibt die Funktion außerdem die Spalte geography zurück, ein Polygon, das die H3-Zelle darstellt. So können Sie Ihre BigQuery-Ergebnisse sofort in Business Intelligence-Tools wie Looker Studio importieren, um gefüllte Kartenvisualisierungen zu erstellen, die Markt-Hotspots visuell aufzeigen.

-- 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;

Eine Karte von New York City mit grünen H3-Hexagons unterschiedlicher Deckkraft, die eine hohe Unternehmensdichte in Manhattan zeigen.

Wie in der resultierenden Visualisierung zu sehen ist, gibt es in ganz Manhattan Bereiche mit einer besonders hohen Dichte an Zielunternehmen. Im weiteren Verlauf dieses Dokuments konzentrieren wir uns auf eine dieser Zonen mit hohem Potenzial: die Gegend um den Union Square.

Schritt 3: CRM-Daten für Orts-IDs normalisieren

Wenn Sie eine Ausschlussanalyse durchführen möchten, müssen Sie zuerst Ihre CRM-Datensätze in Orts-IDs umwandeln. Da CRM-Daten oft unstrukturiert sind, führt die Übergabe von Rohtext an Such-APIs zu schlechten Abgleichsraten. Mit dieser zweistufigen Pipeline können Sie Adressen bereinigen, die regionale API-Abdeckung berücksichtigen und dafür sorgen, dass Sie die richtigen Establishment Place-IDs für BigQuery extrahieren.

Angenommen, Sie haben die folgenden fünf Restaurantkunden in Ihrem CRM in New York City:

Name Adresse
Boucherie Union Square 225 Park Ave S, New York, NY 10003, USA
Gramercy Tavern 42 E 20th St, New York, NY 10003, USA
Barn Joo Union Square 35 Union Square W, New York, NY 10003, USA
LOS TACOS No.1 200 Park Ave S, New York, NY 10003, USA
Union Square Cafe 101 E 19th St, New York, NY 10003, USA

Da diese Datensätze aus unstrukturiertem Text bestehen, können Sie sie nicht direkt mit Places Insights-Daten in BigQuery verknüpfen. Verarbeiten Sie stattdessen jede Zeile mit der folgenden Pipeline, um den Text zu standardisieren und die Orts-ID zu extrahieren.

Schritt 3a: Adressbereinigung und direkter Abgleich

Standardisieren Sie zuerst Ihre Adressdaten. Wählen Sie die API basierend auf dem Zielland aus:

Option 1: Address Validation API

In unterstützten Regionen müssen Sie den verketteten CRM-Unternehmensnamen und die Adresse an die API übergeben. Prüfen Sie das result.geocode.placeTypes-Array der Antwort:

  • Establishment Match:Wenn der Wert establishment oder point_of_interest enthält, wurde das Unternehmen von der API erfolgreich aufgelöst. Hängen Sie diese placeId an Ihren Datensatz an und fahren Sie mit dem nächsten CRM-Datensatz fort. Für diesen Eintrag sind keine weiteren API-Aufrufe erforderlich.
  • Keine Übereinstimmung mit einem Unternehmenstyp:Wenn die API diese Unternehmenstypen nicht enthält, konnte das Unternehmen nicht eindeutig bestätigt werden. Die zurückgegebene Orts-ID steht für ein geografisches Merkmal wie ein Gebäude, eine Straße oder eine Stadt. Verwenden Sie diese Orts-ID nicht für BigQuery, da sonst Ihre Ausschluss-Joins fehlschlagen. Speichern Sie stattdessen die result.address.formattedAddress und fahren Sie mit Schritt 3b fort.

Option 2: Geocoding API

Für Regionen, die von der Address Validation API nicht unterstützt werden, übergeben Sie nur die CRM-Adresse an die Geocoding API. Geben Sie nicht den Unternehmensnamen an, da die Geocoding API möglicherweise unvorhersehbare Ergebnisse zurückgibt. Extrahieren Sie die resultierende formattedAddress und fahren Sie mit Schritt 3b fort.

Erweiterte Architektur: Unstrukturierte Daten mit LLMs verarbeiten

Wenn Ihre CRM-Daten sehr schlecht sind, z. B. Unternehmensnamen und Adressen in einem einzigen Freitextfeld enthalten sind, sollten Sie die Datensätze mit einem LLM wie Gemini vorverarbeiten. Sie können Gemini auffordern, den Unternehmensnamen sauber aus dem Standort zu parsen, bevor Sie ihn in diese Pipeline einfügen.

Schritt 3b: Rechtssubjekt auflösen

Wenn in Schritt 3a nur eine bereinigte Adresse zurückgegeben wird, hängen Sie sie an den ursprünglichen Unternehmensnamen im CRM an und übergeben Sie sie an die Text Search API. Wenn Sie die Adresse zuerst standardisieren, lässt sich die Abgleichsrate deutlich verbessern.

Um Leistung und Kosten zu optimieren, verwenden Sie eine Feldmaske (X-Goog-FieldMask: places.id) und legen Sie "pageSize": 1 fest, damit nur die Orts-ID des besten Treffers zurückgegeben wird.

Beispiel für eine „Text Search“-Anfrage:

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'

Pipelineausgabe

Nachdem Sie Ihre CRM-Datensätze mit dieser zweistufigen Pipeline verarbeitet haben, unabhängig davon, ob die ID in Schritt 3a erfolgreich extrahiert oder in Schritt 3b mit der Textsuche aufgelöst wurde, besteht Ihr endgültiges Ziel darin, Ihrem Dataset eine neue place_id-Spalte hinzuzufügen. Die resultierende Tabelle kann jetzt als Ausschlussliste in BigQuery hochgeladen werden.

Name Adresse Orts-ID
Boucherie Union Square 225 Park Ave S, New York, NY 10003, USA ChIJc1Vf7KFZwokR1YL2Rn9oxi8
Gramercy Tavern 42 E 20th St, New York, NY 10003, USA ChIJvSQIgqFZwokRFYQbJdzceSs
Barn Joo Union Square 35 Union Square W, New York, NY 10003, USA ChIJQ7XpyqNZwokRQpVfvGEViWM
LOS TACOS No.1 200 Park Ave S, New York, NY 10003, USA ChIJFZh0PABZwokRVzoJu0o-mLY
Union Square Cafe 101 E 19th St, New York, NY 10003, USA ChIJxTHke6JZwokRCLWVd99eDBw

Schritt 4: Analyse zum Ausschluss von Leerzeichen in BigQuery durchführen

Wenn Sie Ihre Bestandskunden Orts-IDs zugeordnet haben, können Sie mit den Funktionen für die Anzahl der Orte die neuen Leads ermitteln.

In diesem Beispiel suchen wir nach Unternehmen mit Betriebsziel (Restaurants, Bars, Cafés und Coffee Shops) im Umkreis von 850 Metern um den Union Square (40.73595, -73.99043). Um eine detailliertere Ansicht für das Routing auf Straßenebene zu erhalten, erhöhen wir die Auflösung der PLACES_COUNT_PER_H3-Funktion auf 10.

Da die Funktion die Orts-IDs als Array in der Spalte sample_place_ids zurückgibt, müssen wir das Array UNNEST, damit jedes potenzielle Unternehmen in einer eigenen Zeile steht. Anschließend führen wir einen LEFT JOIN für unsere bekannten Kunden-Orts-IDs durch.

Um zu beweisen, dass die Ausschlusslogik für diese Demonstration funktioniert, wird in der folgenden Abfrage eine CASE-Anweisung verwendet, um die Ergebnisse zu kennzeichnen, anstatt sie vollständig herauszufiltern. Außerdem werden die Bestandskunden explizit ganz oben in der Ergebnistabelle sortiert, damit Sie überprüfen können, ob sie erfolgreich abgeglichen wurden.

Die SQL-Abfrage

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;

Abfrageergebnisse

Hier sehen Sie einen Auszug der Abfrageausgabe, der zeigt, wie die Bestandskunden erfolgreich identifiziert und von den neuen Leads in denselben granularen H3-Zellen getrennt werden.

Beachten Sie, dass in der Abfrage mit einer CONCAT-Anweisung eine plattformübergreifende Maps-URL mit dem place_id erstellt wird. Dadurch wird automatisch die Spalte actionable_maps_url generiert, die Ihrem Vertriebsteam einen sofortigen, klickbaren Link zum Laden des jeweiligen Unternehmens in der Google Maps App oder in einem Browser zur Verfügung stellt.

h3_cell_index place_id lead_status actionable_maps_url
8a2a100d2767fff ChIJQ7XpyqNZwokRQpVfvGEViWM Bestandskunde (auszuschließen) https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJQ7XpyqNZwokRQpVfvGEViWM
8a2a100d20effff ChIJvSQIgqFZwokRFYQbJdzceSs Bestandskunde (auszuschließen) https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJvSQIgqFZwokRFYQbJdzceSs
8a2a100d2397fff ChIJc1Vf7KFZwokR1YL2Rn9oxi8 Bestandskunde (auszuschließen) https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJc1Vf7KFZwokR1YL2Rn9oxi8
8a2a100d2397fff ChIJFZh0PABZwokRVzoJu0o-mLY Bestandskunde (auszuschließen) https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJFZh0PABZwokRVzoJu0o-mLY
8a2a100d23b7fff ChIJxTHke6JZwokRCLWVd99eDBw Bestandskunde (auszuschließen) https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJxTHke6JZwokRCLWVd99eDBw
8a2a1072c96ffff ChIJ6atD-WRZwokRULgcZ4TWin8 Netto-Neukunde https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJ6atD-WRZwokRULgcZ4TWin8
8a2a1072c96ffff ChIJ09yg-llZwokRKAgp0jg6TCU Netto-Neukunde https://www.google.com/maps/search/?api=1&query=Place&query_place_id=ChIJ09yg-llZwokRKAgp0jg6TCU

Leads mit dem Places UI Kit visualisieren

Anstatt eine reine Maps-URL anzugeben, können Sie die place_ids direkt an das Places UI Kit übergeben, um ein umfassendes internes Dashboard zur Lead-Generierung für Ihr Vertriebsteam zu erstellen. Die vorgefertigten Komponenten sind plattformübergreifend verfügbar und können für Web, Android und iOS verwendet werden. In diesen Komponenten werden automatisch umfangreiche POI-Daten wie Fotos, Bewertungen und Öffnungszeiten angezeigt, ohne dass Sie Frontend-UI-Code schreiben oder API-Antworten manuell verarbeiten müssen.

Datenlimits

Die Funktionen für die Anzahl der Orte geben maximal 250 Orts-IDs pro geografischer Zelle im sample_place_ids-Array zurück. Wenn ein Gebiet sehr dicht besiedelt ist, wird die generierte Liste mit potenziellen Kunden für diese Zelle auf 250 Einträge begrenzt. Mit den folgenden Strategien können Sie dafür sorgen, dass Sie alle Leads in Märkten mit hoher Dichte erfassen:

  • Spezifische Abfragefilter verwenden:Anstatt mehrere Typen in einer Abfrage zu gruppieren (wie im Beispiel oben), sollten Sie separate Abfragen für jeden einzelnen Ortstyp ausführen.
  • Räumlichen Umfang reduzieren:Verkleinern Sie den gesamten Suchbereich mit einem kleineren geography_radius oder teilen Sie den Bereich in kleinere, detailliertere Abschnitte auf, indem Sie die H3-Auflösung erhöhen (bis zu Auflösung 11).
  • Auflösung nach Bevölkerungsdichte anpassen:Wenn Sie Gebiete mit unterschiedlicher Bevölkerungsdichte analysieren, passen Sie die Suchgröße dynamisch an, um das Limit von 250 Orts-IDs nicht zu überschreiten. Verwenden Sie eine höhere H3-Auflösung (z.B. 6 oder 7) oder einen größeren geography_radius in ländlichen Gebieten, in denen Unternehmen weit voneinander entfernt sind. Verwenden Sie in dicht besiedelten städtischen Gebieten eine sehr feine Auflösung (z.B. 10 oder 11), um alle potenziellen Leads zu erfassen, ohne die Liste zu kürzen.

Produktionsanfrage

Sobald Sie bestätigt haben, dass die Bestandskunden erfolgreich identifiziert wurden, können Sie zur Produktionsversion der Abfrage zurückkehren. Ersetzen Sie den letzten SELECT-Block durch die folgende WHERE-Klausel, um Ihr bestehendes Geschäft dauerhaft herauszufiltern:

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

Architektur-Governance und Compliance

Um ein leistungsstarkes und konformes System zu erhalten, sollten Sie diese Standards einhalten:

  1. Orts‑IDs als dauerhafte Kennung:Abgesehen von Orts‑IDs ist es gemäß den Nutzungsbedingungen für Google Maps untersagt, die einzelnen POI‑Daten, die von der Places API zurückgegeben werden (z. B. Telefonnummern und Kontaktdaten), zu speichern oder im Cache zu speichern. Verwenden Sie Orts‑IDs als dauerhafte Kennung für wiederkehrende Analysen von Lücken.
  2. Attribute mit Echtzeit-API-Aufrufen auf dem neuesten Stand halten:Verwenden Sie Orts-IDs, um „Just-in-Time“-Aufrufe an die Place Details API zu senden. So stellen Sie sicher, dass Ihr Vertriebsmitarbeiter die aktuellsten Geschäfts- und Kontaktinformationen für den Ort hat. Alternativ können Sie, wie in der Ausgabe der Abfrage gezeigt, Google Maps-URLs dynamisch erstellen, um Ihrem Vertriebsteam direkte Links zu den Unternehmensprofilen auf Google Maps zur Verfügung zu stellen.

Fazit

Durch die Standardisierung der Orts-ID als Primärschlüssel konnte die Lücke zwischen der Marktanalyse auf hoher Ebene und den umsetzbaren Vertriebsaktivitäten vor Ort geschlossen werden. Bei dieser Architektur werden die Ungenauigkeiten des herkömmlichen bevölkerungsbasierten Targetings umgangen. Außerdem wird serverloses Data Warehousing für rechenintensive Joins verwendet und die Best Practices für Kostenmanagement und Compliance auf der API-Ebene werden strikt eingehalten.

Nächste Aktionen

  • Fordern Sie Zugriff auf das Beispieldataset für Places Insights an.
  • Abonnieren Sie das Places Insights-Dataset über BigQuery Data Exchange-Einträge, um auf die Beispiel- oder vollständigen Länderdaten zuzugreifen.
  • In der Referenz zu Filterparametern finden Sie Informationen zum Optimieren Ihrer BigQuery-SQL-Abfragen anhand von Geschäftsattributen und ‑typen.
  • Implementieren Sie dynamische Places API-Suchvorgänge in Ihrem CRM oder Ihrer Anwendung für die Weiterleitung von Verkäufen, um aktuelle, konforme Kontaktdaten für die generierten neuen Leads zu erhalten.

Beitragende