google_ads_shopping_feed_status
Verify your Merchant Center feed connection to ensure products flow from Merchant Center to Google Ads shopping campaigns.
Instructions
Check the status of your Google Merchant Center feed connection.
Verifies that your Merchant Center account is properly linked to Google Ads and that products can flow from Merchant Center to your shopping campaigns.
Args: customer_id: Google Ads customer ID (10 digits, no hyphens) merchant_center_id: Your Merchant Center account ID
Returns: Merchant Center feed status
Example: google_ads_shopping_feed_status( customer_id="1234567890", merchant_center_id="123456789" )
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | ||
| merchant_center_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- The MCP tool handler that checks Google Merchant Center feed status. Decorated with @mcp.tool() and registered via register_shopping_pmax_tools(). It calls ShoppingPMaxManager.get_shopping_feed_status() and formats the result.
def google_ads_shopping_feed_status( customer_id: str, merchant_center_id: str ) -> str: """Check the status of your Google Merchant Center feed connection. Verifies that your Merchant Center account is properly linked to Google Ads and that products can flow from Merchant Center to your shopping campaigns. Args: customer_id: Google Ads customer ID (10 digits, no hyphens) merchant_center_id: Your Merchant Center account ID Returns: Merchant Center feed status Example: google_ads_shopping_feed_status( customer_id="1234567890", merchant_center_id="123456789" ) """ with performance_logger.track_operation('shopping_feed_status', customer_id=customer_id): try: client = get_auth_manager().get_client() shopping_manager = ShoppingPMaxManager(client) result = shopping_manager.get_shopping_feed_status( customer_id=customer_id, merchant_center_id=merchant_center_id ) audit_logger.log_api_call( customer_id=customer_id, operation='shopping_feed_status', status='success' ) output = f"# 📊 Merchant Center Feed Status\n\n" output += f"**Merchant Center ID**: {result['merchant_center_id']}\n" output += f"**Status**: {result['status']}\n\n" if result['status'] == 'NOT_LINKED': output += "❌ **Merchant Center account is not linked**\n\n" output += "**To link your Merchant Center account**:\n" output += "1. Go to Google Ads → Tools & Settings → Linked accounts\n" output += "2. Find Google Merchant Center and click 'Link'\n" output += "3. Approve the link request in Merchant Center\n" elif result['status'] == 'ENABLED': output += "✅ **Merchant Center is linked and active**\n\n" output += f"**Link ID**: {result.get('link_id', 'N/A')}\n\n" output += "Your products are ready to use in shopping campaigns!\n" else: output += f"⚠️ **Status**: {result['message']}\n\n" output += "Check your Merchant Center account for issues.\n" return output except Exception as e: error_msg = ErrorHandler.handle_error(e, context="shopping_feed_status") return f"❌ Failed to get feed status: {error_msg}" - The business logic that queries Google Ads API for merchant center link status using a GAQL query on the merchant_center_link table. Returns status (e.g. NOT_LINKED, ENABLED), merchant_center_id, and link_id.
def get_shopping_feed_status( self, customer_id: str, merchant_center_id: str ) -> Dict[str, Any]: """Check Merchant Center feed status. Args: customer_id: Customer ID (without hyphens) merchant_center_id: Merchant Center ID Returns: Feed status information """ ga_service = self.client.get_service("GoogleAdsService") query = f""" SELECT merchant_center_link.id, merchant_center_link.merchant_center_id, merchant_center_link.status FROM merchant_center_link WHERE merchant_center_link.merchant_center_id = {merchant_center_id} """ response = ga_service.search(customer_id=customer_id, query=query) results = list(response) if not results: return { 'status': 'NOT_LINKED', 'message': 'Merchant Center account not linked', 'merchant_center_id': merchant_center_id } link = results[0].merchant_center_link return { 'status': link.status.name, 'merchant_center_id': str(link.merchant_center_id), 'link_id': str(link.id), 'message': f'Merchant Center account is {link.status.name}' } - tools/shopping_pmax/mcp_tools_shopping_pmax.py:37-37 (registration)The registration function that contains @mcp.tool() decorators for all shopping/PMax tools, including google_ads_shopping_feed_status.
def register_shopping_pmax_tools(mcp): - google_ads_mcp.py:492-492 (registration)Module-level registration entry in the _TOOL_MODULES list that maps the 'shopping_pmax' module to its registration function.
("shopping_pmax", "tools.shopping_pmax.mcp_tools_shopping_pmax", "register_shopping_pmax_tools"),