> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# GetBudgetSuggestions

# Package: googleAds

# Namespace: SuggestionsService

# Method link: https://dev.wix.com/docs/api-reference/business-management/marketing/ads/google-ads/google-suggestion-v1/get-budget-suggestions.md

## Permission Scopes:
View google ads campaigns: SCOPE.PROMOTE.VIEW-GOOGLE-ADS

## Introduction

Retrieves three budget tiers (low, recommended, high) with estimated daily click ranges.
Calls the Google Ads API directly.

---

## REST API

### Schema

```
 Method: getBudgetSuggestions
 Description: Retrieves three budget tiers (low, recommended, high) with estimated daily click ranges. Calls the Google Ads API directly.
 URL: https://www.wixapis.com/_serverless/pa-google/v1/budget-suggestions
 Method: POST
 Method parameters:
   param name: campaignId | type: campaignId | description: GUID of an existing campaign when requesting budget suggestions in edit mode. Omit when creating a new campaign.  | validation: format GUID
   param name: suggestionInfo | type: SuggestionInfo    
    - ONE-OF: 
     - name: geoTargets | type: GeoTargets | description: Named geographic targets (countries, regions, cities) to include in campaign targeting.  
        - name: geoTargets | type: array<GeoTarget> | description: Geographic targets suggested for the campaign.  | validation: maxItems 1000
           - name: id | type: string | description: Google Ads internal GUID for this geographic target.  | validation: maxLength 1000
           - name: displayName | type: string | description: Human-readable name for the geographic target, suitable for display in a UI.  | validation: maxLength 1000
           - name: countryCode | type: string | description: ISO 3166-1 alpha-2 country code for this geo target. Output only.  | validation: maxLength 1000
     - name: proximityAddress | type: ProximityAddress | description: Radius-based proximity address for local targeting.  
        - name: address | type: Address | description: Full address. The address is a description of the geo point that does not affect ad serving.  
           - name: postalCode | type: string | description: Postal code.  
           - name: provinceCode | type: string | description: Province or state code.  
           - name: countryCode | type: string | description: Country code.  
           - name: provinceName | type: string | description: Province or state name.  
           - name: streetAddress | type: string | description: Street address line 1.  
           - name: streetAddress2 | type: string | description: Street address line 2.  
           - name: cityName | type: string | description: Name of the city.  
        - name: radiusUnits | type: RadiusUnits | description: The unit of measurement of the radius.  
             - enum: MILES, KILOMETERS
        - name: radius | type: integer | description: The radius of the proximity.  | validation: format int32
        - name: liveSiteUrl | type: string | description: Public URL of the site. Google uses this to analyze business content and generate relevant suggestions.  | validation: format WEB_URL
        - name: languageCode | type: string | description: BCP-47 language code specifying the language for the campaign and its suggestions.  | validation: maxLength 1000
        - name: keywordThemes | type: KeywordThemes | description: Optional seed keyword themes used to guide the suggestion results.  
           - name: keywordThemes | type: array<KeywordTheme> | description: Keyword themes suggested for the campaign.  | validation: maxItems 10
              - name: id | type: string | description: Google Ads internal GUID for this keyword theme.  | validation: maxLength 1000
              - name: displayName | type: string | description: Human-readable label for the keyword theme, suitable for display in a UI.  | validation: maxLength 1000
        - name: businessName | type: string | description: Optional override for the business name detected from the site URL.  | validation: maxLength 1000
        - name: adSchedule | type: WeeklyAdSchedule | description: Weekly schedule controlling which days and times ads are eligible to show.  
           - name: adShowAnytime | type: boolean | description: Whether ads show at any time during the day. When `true`, the daily schedules below are ignored.  
           - name: sunday | type: DailyAdSchedule | description: Sunday ad show range.  
              - name: startTime | type: AdTime | description: The start time of showing an ad in a specific day.  
                 - name: hour | type: integer | description: Starting hour in 24 hour time. This field must be between 0 and 23, inclusive.  | validation: format int32
                 - name: minute | type: MinuteOfHour | description: Minutes after the start hour at which this schedule starts.  
                         - enum:
                         -     ZERO: Zero minutes past the hour.
                         -     FIFTEEN: Fifteen minutes past the hour.
                         -     THIRTY: Thirty minutes past the hour.
                         -     FORTY_FIVE: Forty-five minutes past the hour.
              - name: endTime | type: AdTime | description: Stop showing the ad at this time in a specific day.  
           - name: monday | type: DailyAdSchedule | description: Monday ad show range.  
           - name: tuesday | type: DailyAdSchedule | description: Tuesday ad show range.  
           - name: wednesday | type: DailyAdSchedule | description: Wednesday ad show range.  
           - name: thursday | type: DailyAdSchedule | description: Thursday ad show range.  
           - name: friday | type: DailyAdSchedule | description: Friday ad show range.  
           - name: saturday | type: DailyAdSchedule | description: Saturday ad show range.  
 Return type: GetBudgetSuggestionsResponse
  - name: googleSuggestion | type: GoogleSuggestion | description: Budget suggestions containing low, recommended, and high tiers with estimated daily clicks.  
     - ONE-OF: 
        - name: keywordThemes | type: KeywordThemes | description: Keyword theme suggestions for a Smart campaign.  
           - name: keywordThemes | type: array<KeywordTheme> | description: Keyword themes suggested for the campaign.  | validation: maxItems 10
              - name: id | type: string | description: Google Ads internal GUID for this keyword theme.  | validation: maxLength 1000
              - name: displayName | type: string | description: Human-readable label for the keyword theme, suitable for display in a UI.  | validation: maxLength 1000
        - name: geoTargetsSuggestions | type: GeoTargets | description: Geographic target suggestions for a campaign.  
           - name: geoTargets | type: array<GeoTarget> | description: Geographic targets suggested for the campaign.  | validation: maxItems 1000
              - name: id | type: string | description: Google Ads internal GUID for this geographic target.  | validation: maxLength 1000
              - name: displayName | type: string | description: Human-readable name for the geographic target, suitable for display in a UI.  | validation: maxLength 1000
              - name: countryCode | type: string | description: ISO 3166-1 alpha-2 country code for this geo target. Output only.  | validation: maxLength 1000
        - name: adContent | type: SmartCampaignAd | description: Headline and description suggestions for a Smart campaign ad.  
           - name: resourceName | type: string | description: Actual ad resource name. customers/{customerId}/adGroupAds/{adGroupId}~{ad_id}  
           - name: headlines | type: array<string> | description: Headlines of the ad.  | validation: minItems 3, maxItems 3, maxLength 30
           - name: descriptions | type: array<string> | description: Descriptions of the ad.  | validation: minItems 2, maxItems 2, maxLength 90
        - name: budget | type: Budget | description: Low, recommended, and high budget suggestions with estimated click ranges.  
           - name: low | type: BudgetSuggestion | description: Conservative budget option with the lowest daily spend.  
              - name: dailyBudget | type: string | description: Suggested daily budget in micros (1,000,000 micros = 1 currency unit).  
              - name: minEstimatedClicks | type: string | description: Estimated minimum number of clicks per day at this budget level.  
              - name: maxEstimatedClicks | type: string | description: Estimated maximum number of clicks per day at this budget level.  
           - name: high | type: BudgetSuggestion | description: Aggressive budget option with the highest daily spend.  
           - name: recommended | type: BudgetSuggestion | description: Balanced budget option recommended by Google Ads.  


```

### Examples

### Get Budget Suggestions
```curl
curl -X POST \
  'https://www.wixapis.com/google-ads/v1/budget-suggestions' \
  -H 'Authorization: <AUTH>' \
  -H 'Content-Type: application/json' \
  -d '{
    "suggestionInfo": {
      "liveSiteUrl": "https://www.example.com",
      "languageCode": "en"
    }
  }'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.promoteGoogleAds.suggestions.getBudgetSuggestions(options)
 Description: Retrieves three budget tiers (low, recommended, high) with estimated daily click ranges. Calls the Google Ads API directly.
 Method parameters:
   param name: options | type: GetBudgetSuggestionsOptions  none  
        - name: suggestionInfo | type: SuggestionInfo | description: Site and campaign context used to generate budget suggestions.  
           - ONE-OF: 
              - name: geoTargets | type: GeoTargets | description: Named geographic targets (countries, regions, cities) to include in campaign targeting.  
                 - name: geoTargets | type: array<GeoTarget> | description: Geographic targets suggested for the campaign.  | validation: maxItems 1000
                    - name: _id | type: string | description: Google Ads internal GUID for this geographic target.  | validation: maxLength 1000
                    - name: displayName | type: string | description: Human-readable name for the geographic target, suitable for display in a UI.  | validation: maxLength 1000
                    - name: countryCode | type: string | description: ISO 3166-1 alpha-2 country code for this geo target. Output only.  | validation: maxLength 1000
              - name: proximityAddress | type: ProximityAddress | description: Radius-based proximity address for local targeting.  
                 - name: address | type: Address | description: Full address. The address is a description of the geo point that does not affect ad serving.  
                    - name: postalCode | type: string | description: Postal code.  
                    - name: provinceCode | type: string | description: Province or state code.  
                    - name: countryCode | type: string | description: Country code.  
                    - name: provinceName | type: string | description: Province or state name.  
                    - name: streetAddress | type: string | description: Street address line 1.  
                    - name: streetAddress2 | type: string | description: Street address line 2.  
                    - name: cityName | type: string | description: Name of the city.  
                 - name: radiusUnits | type: RadiusUnits | description: The unit of measurement of the radius.  
                         - enum: MILES, KILOMETERS
                 - name: radius | type: integer | description: The radius of the proximity.  | validation: format int32
           - name: liveSiteUrl | type: string | description: Public URL of the site. Google uses this to analyze business content and generate relevant suggestions.  | validation: format WEB_URL
           - name: languageCode | type: string | description: BCP-47 language code specifying the language for the campaign and its suggestions.  | validation: maxLength 1000
           - name: keywordThemes | type: KeywordThemes | description: Optional seed keyword themes used to guide the suggestion results.  
              - name: keywordThemes | type: array<KeywordTheme> | description: Keyword themes suggested for the campaign.  | validation: maxItems 10
                 - name: _id | type: string | description: Google Ads internal GUID for this keyword theme.  | validation: maxLength 1000
                 - name: displayName | type: string | description: Human-readable label for the keyword theme, suitable for display in a UI.  | validation: maxLength 1000
           - name: businessName | type: string | description: Optional override for the business name detected from the site URL.  | validation: maxLength 1000
           - name: adSchedule | type: WeeklyAdSchedule | description: Weekly schedule controlling which days and times ads are eligible to show.  
              - name: adShowAnytime | type: boolean | description: Whether ads show at any time during the day. When `true`, the daily schedules below are ignored.  
              - name: sunday | type: DailyAdSchedule | description: Sunday ad show range.  
                 - name: startTime | type: AdTime | description: The start time of showing an ad in a specific day.  
                    - name: hour | type: integer | description: Starting hour in 24 hour time. This field must be between 0 and 23, inclusive.  | validation: format int32
                    - name: minute | type: MinuteOfHour | description: Minutes after the start hour at which this schedule starts.  
                             - enum:
                             -     ZERO: Zero minutes past the hour.
                             -     FIFTEEN: Fifteen minutes past the hour.
                             -     THIRTY: Thirty minutes past the hour.
                             -     FORTY_FIVE: Forty-five minutes past the hour.
                 - name: endTime | type: AdTime | description: Stop showing the ad at this time in a specific day.  
              - name: monday | type: DailyAdSchedule | description: Monday ad show range.  
              - name: tuesday | type: DailyAdSchedule | description: Tuesday ad show range.  
              - name: wednesday | type: DailyAdSchedule | description: Wednesday ad show range.  
              - name: thursday | type: DailyAdSchedule | description: Thursday ad show range.  
              - name: friday | type: DailyAdSchedule | description: Friday ad show range.  
              - name: saturday | type: DailyAdSchedule | description: Saturday ad show range.  
        - name: campaignId | type: string | description: GUID of an existing campaign when requesting budget suggestions in edit mode. Omit when creating a new campaign.  | validation: format GUID
 Return type: PROMISE<GetBudgetSuggestionsResponse>
  - name: googleSuggestion | type: GoogleSuggestion | description: Budget suggestions containing low, recommended, and high tiers with estimated daily clicks.  
     - ONE-OF: 
        - name: keywordThemes | type: KeywordThemes | description: Keyword theme suggestions for a Smart campaign.  
           - name: keywordThemes | type: array<KeywordTheme> | description: Keyword themes suggested for the campaign.  | validation: maxItems 10
              - name: _id | type: string | description: Google Ads internal GUID for this keyword theme.  | validation: maxLength 1000
              - name: displayName | type: string | description: Human-readable label for the keyword theme, suitable for display in a UI.  | validation: maxLength 1000
        - name: geoTargetsSuggestions | type: GeoTargets | description: Geographic target suggestions for a campaign.  
           - name: geoTargets | type: array<GeoTarget> | description: Geographic targets suggested for the campaign.  | validation: maxItems 1000
              - name: _id | type: string | description: Google Ads internal GUID for this geographic target.  | validation: maxLength 1000
              - name: displayName | type: string | description: Human-readable name for the geographic target, suitable for display in a UI.  | validation: maxLength 1000
              - name: countryCode | type: string | description: ISO 3166-1 alpha-2 country code for this geo target. Output only.  | validation: maxLength 1000
        - name: adContent | type: SmartCampaignAd | description: Headline and description suggestions for a Smart campaign ad.  
           - name: resourceName | type: string | description: Actual ad resource name. customers/{customerId}/adGroupAds/{adGroupId}~{ad_id}  
           - name: headlines | type: array<string> | description: Headlines of the ad.  | validation: minItems 3, maxItems 3, maxLength 30
           - name: descriptions | type: array<string> | description: Descriptions of the ad.  | validation: minItems 2, maxItems 2, maxLength 90
        - name: budget | type: Budget | description: Low, recommended, and high budget suggestions with estimated click ranges.  
           - name: low | type: BudgetSuggestion | description: Conservative budget option with the lowest daily spend.  
              - name: dailyBudget | type: string | description: Suggested daily budget in micros (1,000,000 micros = 1 currency unit).  
              - name: minEstimatedClicks | type: string | description: Estimated minimum number of clicks per day at this budget level.  
              - name: maxEstimatedClicks | type: string | description: Estimated maximum number of clicks per day at this budget level.  
           - name: high | type: BudgetSuggestion | description: Aggressive budget option with the highest daily spend.  
           - name: recommended | type: BudgetSuggestion | description: Balanced budget option recommended by Google Ads.  


```

### Examples

### Get budget suggestions for a campaign
```javascript
import { suggestions } from '@wix/promote-google-ads';

const response = await suggestions.getBudgetSuggestions({
  suggestionInfo: {
    liveSiteUrl: 'https://www.example.com',
    languageCode: 'en',
  },
});

/* Promise resolves to:
 * {
 *   "googleSuggestion": {
 *     "budget": {
 *       "low": {
 *         "dailyBudget": "5000000",
 *         "minEstimatedClicks": "3",
 *         "maxEstimatedClicks": "8"
 *       },
 *       "recommended": {
 *         "dailyBudget": "15000000",
 *         "minEstimatedClicks": "12",
 *         "maxEstimatedClicks": "22"
 *       },
 *       "high": {
 *         "dailyBudget": "30000000",
 *         "minEstimatedClicks": "25",
 *         "maxEstimatedClicks": "45"
 *       }
 *     }
 *   }
 * }
 */

```

### getBudgetSuggestions (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { suggestions } from '@wix/promote-google-ads';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { suggestions },
  // Include the auth strategy and host as relevant
});


async function getBudgetSuggestions(options) {
  const response = await myWixClient.suggestions.getBudgetSuggestions(options);
};
```

---