CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-google-shopping-merchant-conversions

Google Shopping Merchant Conversions API client library for managing conversion sources and tracking.

82

1.17x
Overview
Eval results
Files

conversion-sources-service.mddocs/

Conversion Sources Service

The ConversionSourcesService provides complete management of conversion sources for merchant accounts. It supports both synchronous and asynchronous clients with full CRUD operations, pagination, and comprehensive error handling.

Client Initialization

from google.shopping import merchant_conversions_v1
from google.oauth2 import service_account

# Default credentials (ADC)
client = merchant_conversions_v1.ConversionSourcesServiceClient()

# Service account credentials
credentials = service_account.Credentials.from_service_account_file("credentials.json")
client = merchant_conversions_v1.ConversionSourcesServiceClient(credentials=credentials)

# Async client
async_client = merchant_conversions_v1.ConversionSourcesServiceAsyncClient()

Capabilities

Create Conversion Source

Creates a new conversion source for a merchant account.

def create_conversion_source(
    self,
    request: CreateConversionSourceRequest = None,
    *,
    parent: str = None,
    conversion_source: ConversionSource = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

# Async version
async def create_conversion_source(
    self,
    request: CreateConversionSourceRequest = None,
    *,
    parent: str = None,
    conversion_source: ConversionSource = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

Parameters:

  • request: The request object containing parent and conversion_source
  • parent: Required. The account where the conversion source will be created. Format: accounts/{account}
  • conversion_source: Required. The conversion source to create
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: The created ConversionSource object

Usage Example:

from google.shopping import merchant_conversions_v1

client = merchant_conversions_v1.ConversionSourcesServiceClient()

# Create Google Analytics conversion source
ga_link = merchant_conversions_v1.GoogleAnalyticsLink(
    property_id=123456789,
    attribution_settings=merchant_conversions_v1.AttributionSettings(
        attribution_lookback_window_days=30,
        attribution_model=merchant_conversions_v1.AttributionSettings.AttributionModel.CROSS_CHANNEL_LAST_CLICK
    )
)

conversion_source = merchant_conversions_v1.ConversionSource(
    google_analytics_link=ga_link
)

request = merchant_conversions_v1.CreateConversionSourceRequest(
    parent="accounts/123456789",
    conversion_source=conversion_source
)

response = client.create_conversion_source(request=request)
print(f"Created conversion source: {response.name}")

Update Conversion Source

Updates an existing conversion source.

def update_conversion_source(
    self,
    request: UpdateConversionSourceRequest = None,
    *,
    conversion_source: ConversionSource = None,
    update_mask: field_mask_pb2.FieldMask = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

# Async version
async def update_conversion_source(
    self,
    request: UpdateConversionSourceRequest = None,
    *,
    conversion_source: ConversionSource = None,
    update_mask: field_mask_pb2.FieldMask = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

Parameters:

  • request: The request object containing conversion_source and update_mask
  • conversion_source: Required. The conversion source to update
  • update_mask: Required. List of fields to be updated
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: The updated ConversionSource object

Delete Conversion Source

Deletes (archives) a conversion source. The source will be archived for 30 days before permanent deletion.

def delete_conversion_source(
    self,
    request: DeleteConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> None: ...

# Async version
async def delete_conversion_source(
    self,
    request: DeleteConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> None: ...

Parameters:

  • request: The request object containing name
  • name: Required. The name of the conversion source to delete. Format: accounts/{account}/conversionSources/{conversion_source}
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: None

Undelete Conversion Source

Restores an archived conversion source within the 30-day recovery window.

def undelete_conversion_source(
    self,
    request: UndeleteConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

# Async version
async def undelete_conversion_source(
    self,
    request: UndeleteConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

Parameters:

  • request: The request object containing name
  • name: Required. The name of the conversion source to undelete. Format: accounts/{account}/conversionSources/{conversion_source}
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: The restored ConversionSource object

Get Conversion Source

Retrieves a specific conversion source by its resource name.

def get_conversion_source(
    self,
    request: GetConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

# Async version
async def get_conversion_source(
    self,
    request: GetConversionSourceRequest = None,
    *,
    name: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> ConversionSource: ...

Parameters:

  • request: The request object containing name
  • name: Required. The name of the conversion source to retrieve. Format: accounts/{account}/conversionSources/{conversion_source}
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: The requested ConversionSource object

List Conversion Sources

Lists conversion sources for a merchant account with pagination support.

def list_conversion_sources(
    self,
    request: ListConversionSourcesRequest = None,
    *,
    parent: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> pagers.ListConversionSourcesPager: ...

# Async version
async def list_conversion_sources(
    self,
    request: ListConversionSourcesRequest = None,
    *,
    parent: str = None,
    retry: OptionalRetry = gapic_v1.method.DEFAULT,
    timeout: float = None,
    metadata: Sequence[Tuple[str, str]] = ()
) -> pagers.ListConversionSourcesAsyncPager: ...

Parameters:

  • request: The request object containing parent, page_size, page_token, and show_deleted
  • parent: Required. The account to list conversion sources for. Format: accounts/{account}
  • retry: Retry configuration
  • timeout: Request timeout in seconds
  • metadata: Additional metadata for the request

Returns: A pager object for iterating through the results

Usage Example:

from google.shopping import merchant_conversions_v1

client = merchant_conversions_v1.ConversionSourcesServiceClient()

# List with pagination
request = merchant_conversions_v1.ListConversionSourcesRequest(
    parent="accounts/123456789",
    page_size=10,
    show_deleted=False
)

# Iterate through all results (auto-pagination)
for conversion_source in client.list_conversion_sources(request=request):
    print(f"Name: {conversion_source.name}")
    print(f"State: {conversion_source.state}")
    if conversion_source.google_analytics_link:
        print(f"GA Property ID: {conversion_source.google_analytics_link.property_id}")

# Manual pagination
response = client.list_conversion_sources(request=request)
for conversion_source in response.conversion_sources:
    print(f"Processing: {conversion_source.name}")

# Get next page if available
if response.next_page_token:
    next_request = merchant_conversions_v1.ListConversionSourcesRequest(
        parent="accounts/123456789",
        page_token=response.next_page_token
    )
    next_response = client.list_conversion_sources(request=next_request)

Error Handling

Common exceptions when working with the ConversionSourcesService:

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="accounts/123/conversionSources/invalid"
    )
    response = client.get_conversion_source(request=request)
except exceptions.NotFound as e:
    print(f"Conversion source not found: {e}")
except exceptions.PermissionDenied as e:
    print(f"Access denied: {e}")
except exceptions.InvalidArgument as e:
    print(f"Invalid request: {e}")
except exceptions.ResourceExhausted as e:
    print(f"Quota exceeded: {e}")
except exceptions.GoogleAPICallError as e:
    print(f"API call failed: {e}")

Context Manager Usage

from google.shopping import merchant_conversions_v1

# Automatic resource cleanup
with merchant_conversions_v1.ConversionSourcesServiceClient() as client:
    request = merchant_conversions_v1.ListConversionSourcesRequest(
        parent="accounts/123456789"
    )
    response = client.list_conversion_sources(request=request)
    for source in response.conversion_sources:
        print(f"Processing: {source.name}")

Install with Tessl CLI

npx tessl i tessl/pypi-google-shopping-merchant-conversions

docs

conversion-sources-service.md

data-types.md

index.md

resource-paths.md

tile.json