Skip to main content

Google Ads - Ad Groups

📖 Overview​

The Ad Groups module manages ad groups within campaigns, including listing, fetching details, and retrieving performance metrics. Ad groups contain ads and keywords, providing organizational structure within campaigns.

Source Files:

  • Controller: external/Integrations/GoogleAds/Controllers/Adgroups/AdGroupController.js
  • Model: external/Integrations/GoogleAds/Models/Adgroups/AdGroupModel.js
  • Routes: external/Integrations/GoogleAds/Routes/adgroups.js

🔧 API Endpoints​

GET /adgroups - List Ad Groups​

Parameters:

ParameterTypeRequiredDescription
clientIDString✅Client customer ID
managerIDString✅Manager customer ID
campaignIDString❌Comma-separated campaign IDs
adGroupIDString❌Comma-separated ad group IDs
campaignTypeEnum❌Campaign type filter
fromDateString❌Start date (YYYY-MM-DD)
endDateString❌End date (YYYY-MM-DD)
dateString❌Single date
searchTextString❌Search by name
sortFieldString❌Sort field
sortOrderString❌ASC/DESC
pageSizeNumber❌Results per page
pageTokenString❌Pagination token

Response:

{
success: true,
message: "SUCCESS",
data: {
ad_groups: [
{
id: "456789123",
name: "Summer Shoes Ad Group",
campaign_id: "123456789",
campaign_name: "Summer Sale Campaign",
status: "ENABLED",
type: "SEARCH_STANDARD",
cpc_bid_micros: 2500000, // $2.50
target_cpa_micros: 10000000, // $10.00
ad_rotation_mode: "OPTIMIZE"
}
],
total_results: 45,
page_token: "next_page"
}
}

GET /adgroups/show - Get Single Ad Group​

Parameters:

  • clientID, managerID, adGroupID (all required)

Response: Single ad group object with full details

GET /adgroups/metrics - Ad Group Metrics​

Parameters: Same as /adgroups (date range recommended)

Response:

{
success: true,
message: "SUCCESS",
data: {
ad_groups: [
{
id: "456789123",
name: "Summer Shoes Ad Group",
campaign_name: "Summer Sale Campaign",
status: "ENABLED",
metrics: {
impressions: 45000,
clicks: 2250,
ctr: 0.05,
cost_micros: 15000000, // $15.00
average_cpc: 6666, // $0.0067
conversions: 45,
conversion_rate: 0.02,
cost_per_conversion: 333333, // $0.33
quality_score: 7.5
}
}
]
}
}

🔧 Business Logic​

GAQL Query Structure:

SELECT
ad_group.id,
ad_group.name,
ad_group.campaign,
ad_group.status,
ad_group.type,
ad_group.cpc_bid_micros,
ad_group.target_cpa_micros,
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM ad_group
WHERE campaign.id IN (${campaignIDs})
AND segments.date BETWEEN '${fromDate}' AND '${endDate}'

Ad Group Types:

  • SEARCH_STANDARD - Standard search ad group
  • DISPLAY_STANDARD - Standard display ad group
  • SHOPPING_PRODUCT_ADS - Shopping product ads
  • VIDEO_BUMPER - Video bumper ads
  • VIDEO_TRUE_VIEW_IN_STREAM - TrueView in-stream ads

Ad Group Status:

  • ENABLED - Active
  • PAUSED - Paused
  • REMOVED - Removed

⚠️ Important Notes​

  • 🔐 Hierarchy: Campaign → Ad Group → Ads/Keywords
  • 💰 Bids: CPC bids in micros (divide by 1,000,000)
  • 📊 Metrics: Aggregated from ads and keywords within group
  • 🎯 Targeting: Ad groups define targeting criteria
  • 🔗 Campaign Filter: Usually filter by campaign ID for relevant results
💬

Documentation Assistant

Ask me anything about the docs

Hi! I'm your documentation assistant. Ask me anything about the docs!

I can help you with:
- Code examples
- Configuration details
- Troubleshooting
- Best practices

Try asking: How do I configure the API?
09:30 AM