Schedule Merchant Center Transfers

Preview

This product is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of theService Specific Terms. Pre-GA products are available "as is" and might have limited support. For more information, see thelaunch stage descriptions.

Note: To get support or provide feedback for Merchant Center transfers with BigQuery Data Transfer Service, contactgmc-transfer-preview@google.com.

Before you begin

Before you create a Merchant Center data transfer:

  • Verify that you have completed all actions required toenable the BigQuery Data Transfer Service.
  • Create a BigQuery datasetto store the Merchant Center data.
    • For dataset region, we support using the default option, Multi-region, ineither US or EU.
    • If you want to create a dataset in a specific region, the Merchant Centerdata transfer is only supported in the following regions:
    • us-east4 (Northern Virginia),
    • asia-northeast1 (Tokyo),
    • asia-southeast1 (Singapore),
    • australia-southeast1 (Sydney),
    • europe-north1 (Finland),
    • europe-west2 (London),
    • europe-west6 (Zurich).
  • If you intend to setup transfer run notifications for Pub/Sub, youmust havepubsub.topics.setIamPolicy permissions. Pub/Subpermissions are not required if you just set up email notifications. For moreinformation, seeBigQuery Data Transfer Service Run Notifications.

Required permissions

Ensure that you have granted the following permissions.

Required BigQuery roles

To get the permissions that you need to create a BigQuery Data Transfer Service data transfer, ask your administrator to grant you theBigQuery Admin (roles/bigquery.admin) IAM role on your project. For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the permissions required to create a BigQuery Data Transfer Service data transfer. To see the exact permissions that are required, expand theRequired permissions section:

Required permissions

The following permissions are required to create a BigQuery Data Transfer Service data transfer:

  • BigQuery Data Transfer Service permissions:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • BigQuery permissions:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

You might also be able to get these permissions withcustom roles or otherpredefined roles.

For more information, seeGrantbigquery.admin access.

Required Merchant Center roles

Set up a Merchant Center transfer

Setting up a data transfer for Merchant Center reporting requires thefollowing:

  • Merchant ID orMulti-client account ID: This is the Merchant ID shownin theMerchant Center UI.

To create a data transfer for Merchant Center reporting:

Console

  1. Go to the Data transfers page in the Google Cloud console.

    Go to Data transfers

  2. ClickCreate transfer.

  3. On theCreate Transfer page:

    • In theSource type section, forSource, chooseGoogle Merchant Center.
    • In theTransfer config name section, forDisplay name, enter aname for the data transfer such asMy Transfer. The transfer name canbe any value that lets you identify the transfer if you need to modifyit later.

      Transfer name

    • In theSchedule options section:

      • Select aRepeat frequency. If you selectHours,Days,Weeks, orMonths, you must also specify a frequency. You canalso selectCustom to specify a custom repeat frequency. If youselectOn-demand, then this data transfer runs when youmanually trigger the transfer.
      • If applicable, select eitherStart now orStart at set time,and provide a start date and run time.
      • ForStart date and run time, enter the date and time to start thetransfer. This value should be at least 24 hours later than thecurrent UTC time. If you choseStart now, this option is disabled.

      If you leave the schedule options set toStart now, the first datatransfer run starts immediately, and it fails with the following errormessage:No data to transfer found for the Merchant account. If youhave just created this transfer, you may need to wait for up to a daybefore the data of your Merchant account are prepared and availablefor the transfer. The next scheduled run should run successfully. Ifthe data of your Merchant account are prepared on the same date in UTCtime, you canset up a backfillfor today's run.

      Transfer schedule

    • In theDestination settings section, forDestination dataset,choose the dataset that you created to store your data.

      Transfer dataset

    • In theData source details section, forMerchant ID, enter yourMerchant ID or MCA ID. Select the report(s) that you would like totransfer. SeeSupported Reportsfor more details.

      Google Merchant Center transfer data.

    • In theService Account menu, select aservice accountfrom the service accounts associated with yourGoogle Cloud project.You can associate a service account with your data transfer instead ofusing your user credentials. For more information about using serviceaccounts with data transfers, seeUse service accounts.

    • (Optional) In theNotification options section:

      • Click the toggle to enable email notifications. When you enable thisoption, the transfer administrator receives an email notificationwhen a transfer run fails.
      • ForSelect a Pub/Sub topic, choose yourtopic name or clickCreate a topic.This option configures Pub/Sub runnotifications for yourtransfer.
  4. ClickSave.

bq

Enter thebq mk command and supply the transfer creation flag —--transfer_config. The following flags are also required:

  • --data_source
  • --target_dataset
  • --display_name
  • --params

You can also supply the--project_id flag to specify a particularproject. If--project_id isn't specified, the default project is used.

bqmk\--transfer_config\--project_id=project_id\--target_dataset=dataset\--display_name=name\--params='parameters'\--data_source=data_source--service_account_name=service_account_name

Where:

  • project_id is your project ID.
  • dataset is the target dataset for the transfer configuration.
  • name is the display name for the transfer configuration. Thetransfer name can be any value that lets you identify thetransfer if you need to modify it later.
  • parameters contains the parameters for the created transferconfiguration in JSON format. For example:--params='{"param":"param_value"}'.
    • For Merchant Center data transfers, you must supply themerchant_id parameter.
    • Theexport_products parameter specifies whether to transfer productand product issues data. This parameter is included by default, even ifyou don't specify theexport_products parameter. Google recommendsthat you include this parameter explicitly and set it to "true".
    • Theexport_regional_inventories parameter specifies whether totransfer regional inventories data.
    • Theexport_local_inventories parameter specifies whether totransfer local inventories data.
    • Theexport_price_competitiveness parameter specifies whether totransfer price competitiveness data.
    • Theexport_price_insights parameter specifies whether to transferprice insights data.
    • Theexport_best_sellers_v2 parameter specifies whether to transferbest sellers data.
    • Theexport_performance parameter specifies whether to transferproduct performance data.
  • data_source is the data source —merchant_center.
  • service_account_name is the service account name used toauthenticate your data transfer. The service accountshould be owned by the sameproject_id used to create the transfer andit should have all of therequired permissions.
Caution: You cannot configure notifications by using thecommand-line tool.

For example, the following command creates a Merchant Center data transfernamedMy Transfer using Merchant ID1234 and target datasetmydataset. The data transfer is created in your default project.

bqmk\--transfer_config\--target_dataset=mydataset\--display_name='My Transfer'\--params='{"merchant_id":"1234","export_products":"true","export_regional_inventories":"true","export_local_inventories":"true","export_price_benchmarks":"true","export_best_sellers":"true"}'\--data_source=merchant_center

The first time you run the command, you receive a message like thefollowing:

[URL omitted] Please copy and paste the above URL into your web browser andfollow the instructions to retrieve an authentication code.

Follow the instructions in the message and paste the authentication code onthe command line.

Caution: When you create a Merchant Center data transfer by using thecommand-line tool, the transfer configuration is set up using the defaultvalues forSchedule (every 24 hours at creation time). The firsttransfer run will start immediately, and it will fail with the followingerror message: `No data to transfer found for the Merchant account.

If you have just created this data transfer, you may need to wait for up to a daybefore the data of your Merchant account are prepared and available for thetransfer.` The next scheduled run should run successfully. If the data ofyour Merchant account are prepared on the same date in UTC time, you canset up a backfill for today's run.

API

Use theprojects.locations.transferConfigs.createmethod and supply an instance of theTransferConfigresource.

Troubleshoot Merchant Center transfer setup

If you are having issues setting up your data transfer, seeMerchant Center transfer issuesinTroubleshooting BigQuery Data Transfer Service transfer setup.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-19 UTC.