Skip to main content
Google Business Profile (formerly Google My Business) lets you post updates that appear in Google Search and Maps. It’s not social media in the traditional sense, but it’s great for local businesses.

Location, profile, and Maps data

Besides posts, you can read and update Business Profile data for the team’s selected location (hours, attributes, services, food menus, action links, profile media). These use /api/v1/misc/google-business with the same API key as the rest of the public API. Reviews stay on a separate flow: Google Business Reviews.

Feature availability by category and location

Google Business capabilities are not identical for every profile. Some fields or endpoints can be unavailable depending on category, country/region, and location-level eligibility.
  • Attributes differ by category and region. Build updates from available definitions first.
  • Service list is only available for eligible categories/locations.
  • Food menus are available mostly for restaurant-like categories and can be disabled for a specific location.
  • Place action links and allowed placeActionType values can vary by profile setup and category.
  • Profile media categories and moderation behavior can vary by profile type.
Recommended flow for most integrations: GET/list first, then send PATCH/POST with values confirmed by Google for that exact location.

Supported Content Types

  • Standard Posts: Regular text updates with optional image.
  • Events: Time-bound events with a title and date range.
  • Offers: Promotional offers with coupon codes and terms.
  • Alerts: Special alerts (currently only COVID_19).
  • Reviews & Replies: Import reviews asynchronously, then manage owner replies.

Quirks & Gotchas

Location Selection Required

After connecting your Google account, you must select a business location. This is similar to selecting a Facebook Page or LinkedIn Company Page.

Post Types

Google Business supports different post types via the topicType field:
  • STANDARD: Regular updates (default).
  • EVENT: Time-bound events with a title and date range.
  • OFFER: Promotional offers with coupon codes and terms.
  • ALERT: Special alerts (currently only COVID_19).

Call to Action

You can add a CTA button to your posts:
  • BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL
  • Requires a callToActionUrl for most types.

Media Limits

ConstraintValue
Files0-1 image only (no video)
Image max size5 MB
Image min resolution250x250
TextMax 1,500 characters
See Platform Limits for details.

Text & Field Limits

FieldLimit
textMax 1,500 characters
eventTitleMax 58 characters
offerCouponCodeMax 58 characters
offerTermsConditionsMax 1,500 characters

Google Reviews

Google Reviews run on a separate async flow (similar to Post History Import). You start an import job, poll status, then fetch imported reviews and manage replies.
  • Start import + poll status (PENDING -> FETCHING_REVIEWS -> COMPLETED)
  • Handle temporary pauses with RATE_LIMITED and automatic resume
  • List imported reviews with pagination and capacity info
  • Create/update/delete owner replies via API
Full guide: Google Business Reviews

Post Options

FieldTypeDescription
textstringPost content. Max 1,500 characters.
uploadIdsstring[]Media attachments (images only).
topicTypeenumPost type: STANDARD, EVENT, OFFER, ALERT. Default: STANDARD.
languageCodestringLanguage code (e.g., en, en-US). Default: en.
callToActionTypeenumCTA button: BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL.
callToActionUrlstringURL for the CTA button.

Event-Specific Fields

FieldTypeDescription
eventTitlestringEvent title. Max 58 characters.
eventStartDatedateEvent start date.
eventEndDatedateEvent end date.

Offer-Specific Fields

FieldTypeDescription
offerCouponCodestringCoupon code. Max 58 characters.
offerRedeemOnlineUrlstringURL to redeem the offer online.
offerTermsConditionsstringTerms and conditions. Max 1,500 characters.

Analytics

For general analytics concepts (refresh rates, data retention, what “Returns 0” means), see the Analytics Overview. Google Business provides basic analytics for your business location. Don’t expect Instagram-level data here.

Profile Analytics

Period: Rolling window.
MetricDescriptionNote
impressionsProfile viewsHow many times your profile was viewed
viewsProfile viewsSame as impressions
followers-Returns 0 (not applicable)

Post Analytics

Period: Lifetime.
MetricDescriptionNote
impressionsPost views
viewsPost viewsSame as impressions
likes-Returns 0 (not tracked by Google)
comments-Returns 0 (not tracked by Google)

Examples

Standard Post

await bundle.post.create({
  socialAccountTypes: ["GOOGLE_BUSINESS"],
  data: {
    GOOGLE_BUSINESS: {
      text: "We're open for the holidays! Visit us today.",
      callToActionType: "LEARN_MORE",
      callToActionUrl: "https://example.com/holiday-hours"
    }
  }
});

Event Post

await bundle.post.create({
  socialAccountTypes: ["GOOGLE_BUSINESS"],
  data: {
    GOOGLE_BUSINESS: {
      topicType: "EVENT",
      text: "Join us for our grand opening celebration!",
      eventTitle: "Grand Opening",
      eventStartDate: "2026-02-01T10:00:00Z",
      eventEndDate: "2026-02-01T18:00:00Z",
      callToActionType: "BOOK",
      callToActionUrl: "https://example.com/rsvp"
    }
  }
});

Offer Post

await bundle.post.create({
  socialAccountTypes: ["GOOGLE_BUSINESS"],
  data: {
    GOOGLE_BUSINESS: {
      topicType: "OFFER",
      text: "Get 20% off your first order!",
      offerCouponCode: "WELCOME20",
      offerRedeemOnlineUrl: "https://example.com/shop",
      offerTermsConditions: "Valid for new customers only. Expires Feb 28, 2026."
    }
  }
});