Google Shopping Merchant Conversions API client library for managing conversion sources and tracking.
npx @tessl/cli install tessl/pypi-google-shopping-merchant-conversions@1.0.0Google Shopping Merchant Conversions API client library for Python, providing programmatic access to manage conversion sources and track conversions within Google's shopping ecosystem. This library enables developers to integrate merchant account management, conversion tracking, and attribution settings into their e-commerce applications.
pip install google-shopping-merchant-conversions# Main stable API (recommended)
from google.shopping import merchant_conversions_v1
# Alternative imports for specific components
from google.shopping.merchant_conversions_v1 import ConversionSourcesServiceClient
from google.shopping.merchant_conversions_v1 import ConversionSourcesServiceAsyncClient
# For beta features (identical to v1)
from google.shopping import merchant_conversions_v1betafrom google.shopping import merchant_conversions_v1
# Create client with default credentials
client = merchant_conversions_v1.ConversionSourcesServiceClient()
# List conversion sources for a merchant account
parent = "accounts/{account_id}"
request = merchant_conversions_v1.ListConversionSourcesRequest(parent=parent)
response = client.list_conversion_sources(request=request)
for conversion_source in response.conversion_sources:
print(f"Name: {conversion_source.name}")
print(f"State: {conversion_source.state}")
# Get a specific conversion source
name = "accounts/{account_id}/conversionSources/{conversion_source_id}"
request = merchant_conversions_v1.GetConversionSourceRequest(name=name)
conversion_source = client.get_conversion_source(request=request)
print(f"Retrieved: {conversion_source.name}")Requires Google Cloud authentication:
from google.oauth2 import service_account
from google.shopping import merchant_conversions_v1
# Using service account credentials
credentials = service_account.Credentials.from_service_account_file(
"path/to/service-account-file.json")
client = merchant_conversions_v1.ConversionSourcesServiceClient(credentials=credentials)
# Using Application Default Credentials (ADC)
client = merchant_conversions_v1.ConversionSourcesServiceClient()The library follows Google's GAPIC (Generated API Client) pattern:
Core service client for managing conversion sources, supporting full CRUD operations with sync and async variants. Handles merchant account conversion tracking configuration.
class ConversionSourcesServiceClient:
def create_conversion_source(self, request: CreateConversionSourceRequest) -> ConversionSource: ...
def update_conversion_source(self, request: UpdateConversionSourceRequest) -> ConversionSource: ...
def delete_conversion_source(self, request: DeleteConversionSourceRequest) -> None: ...
def undelete_conversion_source(self, request: UndeleteConversionSourceRequest) -> ConversionSource: ...
def get_conversion_source(self, request: GetConversionSourceRequest) -> ConversionSource: ...
def list_conversion_sources(self, request: ListConversionSourcesRequest) -> ListConversionSourcesResponse: ...
class ConversionSourcesServiceAsyncClient:
async def create_conversion_source(self, request: CreateConversionSourceRequest) -> ConversionSource: ...
async def update_conversion_source(self, request: UpdateConversionSourceRequest) -> ConversionSource: ...
async def delete_conversion_source(self, request: DeleteConversionSourceRequest) -> None: ...
async def undelete_conversion_source(self, request: UndeleteConversionSourceRequest) -> ConversionSource: ...
async def get_conversion_source(self, request: GetConversionSourceRequest) -> ConversionSource: ...
async def list_conversion_sources(self, request: ListConversionSourcesRequest) -> ListConversionSourcesResponse: ...Core data structures for conversion sources, attribution settings, and API request/response messages. Includes enums for states, controllers, and attribution models.
class ConversionSource:
name: str
state: ConversionSource.State
expire_time: timestamp_pb2.Timestamp
controller: ConversionSource.Controller
google_analytics_link: GoogleAnalyticsLink # oneof
merchant_center_destination: MerchantCenterDestination # oneof
class AttributionSettings:
attribution_lookback_window_days: int
attribution_model: AttributionSettings.AttributionModel
conversion_type: List[AttributionSettings.ConversionType]
class GoogleAnalyticsLink:
property_id: int
attribution_settings: AttributionSettings
class MerchantCenterDestination:
destination: str
attribution_settings: AttributionSettingsUtility methods for constructing and parsing Google Cloud resource paths. Essential for proper resource identification across the Google Cloud ecosystem.
@classmethod
def conversion_source_path(cls, account: str, conversion_source: str) -> str: ...
@staticmethod
def parse_conversion_source_path(path: str) -> Dict[str, str]: ...
@classmethod
def common_project_path(cls, project: str) -> str: ...
@staticmethod
def parse_common_project_path(path: str) -> Dict[str, str]: ...from google.api_core import exceptions
from google.shopping import merchant_conversions_v1
client = merchant_conversions_v1.ConversionSourcesServiceClient()
try:
request = merchant_conversions_v1.GetConversionSourceRequest(name="invalid")
response = client.get_conversion_source(request=request)
except exceptions.NotFound:
print("Conversion source not found")
except exceptions.PermissionDenied:
print("Insufficient permissions")
except exceptions.GoogleAPICallError as e:
print(f"API call failed: {e}")from google.shopping import merchant_conversions_v1
client = merchant_conversions_v1.ConversionSourcesServiceClient()
parent = "accounts/{account_id}"
# Manual pagination
request = merchant_conversions_v1.ListConversionSourcesRequest(
parent=parent,
page_size=10
)
response = client.list_conversion_sources(request=request)
# Auto-pagination
for conversion_source in client.list_conversion_sources(request=request):
print(f"Processing: {conversion_source.name}")