> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Shopping OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Google Shopping in StackOne. One-time admin setup required before your users can link Google Shopping accounts via Hub.

<Warning>A Google Cloud project with Owner or Editor permissions is required to create OAuth credentials. The user authenticating must also be added to the Merchant Center account with Admin access.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;googleshopping_get_business_info&#x22;,&#x22;label&#x22;:&#x22;Get Business Info&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_business_info&#x22;,&#x22;label&#x22;:&#x22;Update Business Info&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_business_identity&#x22;,&#x22;label&#x22;:&#x22;Get Business Identity&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_business_identity&#x22;,&#x22;label&#x22;:&#x22;Update Business Identity&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_homepage&#x22;,&#x22;label&#x22;:&#x22;Get Homepage&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_homepage&#x22;,&#x22;label&#x22;:&#x22;Update Homepage&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_claim_homepage&#x22;,&#x22;label&#x22;:&#x22;Claim Homepage&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_email_preferences&#x22;,&#x22;label&#x22;:&#x22;Get Email Preferences&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_email_preferences&#x22;,&#x22;label&#x22;:&#x22;Update Email Preferences&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_autofeed_settings&#x22;,&#x22;label&#x22;:&#x22;Get Autofeed Settings&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_autofeed_settings&#x22;,&#x22;label&#x22;:&#x22;Update Autofeed Settings&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_automatic_improvements&#x22;,&#x22;label&#x22;:&#x22;Get Automatic Improvements&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_automatic_improvements&#x22;,&#x22;label&#x22;:&#x22;Update Automatic Improvements&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_online_return_policies&#x22;,&#x22;label&#x22;:&#x22;List Online Return Policies&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_online_return_policy&#x22;,&#x22;label&#x22;:&#x22;Get Online Return Policy&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_online_return_policy&#x22;,&#x22;label&#x22;:&#x22;Create Online Return Policy&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_online_return_policy&#x22;,&#x22;label&#x22;:&#x22;Delete Online Return Policy&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_services&#x22;,&#x22;label&#x22;:&#x22;List Services&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_service&#x22;,&#x22;label&#x22;:&#x22;Get Service&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_terms_of_service_agreement_state&#x22;,&#x22;label&#x22;:&#x22;Get Terms Of Service Agreement State&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_retrieve_application_terms_of_service_state&#x22;,&#x22;label&#x22;:&#x22;Retrieve Application Terms Of Service Agreement State&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_terms_of_service&#x22;,&#x22;label&#x22;:&#x22;Get Terms Of Service&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_retrieve_latest_terms_of_service&#x22;,&#x22;label&#x22;:&#x22;Retrieve Latest Terms Of Service&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_accounts&#x22;,&#x22;label&#x22;:&#x22;List Accounts&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_account&#x22;,&#x22;label&#x22;:&#x22;Get Account&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_account&#x22;,&#x22;label&#x22;:&#x22;Update Account&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_conversion_sources&#x22;,&#x22;label&#x22;:&#x22;List Conversion Sources&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_conversion_source&#x22;,&#x22;label&#x22;:&#x22;Get Conversion Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_conversion_source&#x22;,&#x22;label&#x22;:&#x22;Create Conversion Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_conversion_source&#x22;,&#x22;label&#x22;:&#x22;Update Conversion Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_conversion_source&#x22;,&#x22;label&#x22;:&#x22;Delete Conversion Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_undelete_conversion_source&#x22;,&#x22;label&#x22;:&#x22;Undelete Conversion Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_data_sources&#x22;,&#x22;label&#x22;:&#x22;List Data Sources&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_data_source&#x22;,&#x22;label&#x22;:&#x22;Get Data Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_data_source&#x22;,&#x22;label&#x22;:&#x22;Create Data Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_data_source&#x22;,&#x22;label&#x22;:&#x22;Update Data Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_data_source&#x22;,&#x22;label&#x22;:&#x22;Delete Data Source&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_local_inventories&#x22;,&#x22;label&#x22;:&#x22;List Local Inventories&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_insert_local_inventory&#x22;,&#x22;label&#x22;:&#x22;Insert Local Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_local_inventory&#x22;,&#x22;label&#x22;:&#x22;Delete Local Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_regional_inventories&#x22;,&#x22;label&#x22;:&#x22;List Regional Inventories&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_insert_regional_inventory&#x22;,&#x22;label&#x22;:&#x22;Insert Regional Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_regional_inventory&#x22;,&#x22;label&#x22;:&#x22;Delete Regional Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_aggregate_product_statuses&#x22;,&#x22;label&#x22;:&#x22;List Aggregate Product Statuses&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_render_account_issues&#x22;,&#x22;label&#x22;:&#x22;Render Account Issues&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_render_product_issues&#x22;,&#x22;label&#x22;:&#x22;Render Product Issues&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_account_issues&#x22;,&#x22;label&#x22;:&#x22;List Account Issues&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_notification_subscriptions&#x22;,&#x22;label&#x22;:&#x22;List Notification Subscriptions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_notification_subscription&#x22;,&#x22;label&#x22;:&#x22;Get Notification Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_notification_subscription&#x22;,&#x22;label&#x22;:&#x22;Create Notification Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_notification_subscription&#x22;,&#x22;label&#x22;:&#x22;Update Notification Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_notification_subscription&#x22;,&#x22;label&#x22;:&#x22;Delete Notification Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_product&#x22;,&#x22;label&#x22;:&#x22;Get Product&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_products&#x22;,&#x22;label&#x22;:&#x22;List Products&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_insert_product_input&#x22;,&#x22;label&#x22;:&#x22;Insert Product Input&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_product_input&#x22;,&#x22;label&#x22;:&#x22;Update Product Input&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_product_input&#x22;,&#x22;label&#x22;:&#x22;Delete Product Input&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_programs&#x22;,&#x22;label&#x22;:&#x22;List Programs&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_program&#x22;,&#x22;label&#x22;:&#x22;Get Program&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_enable_program&#x22;,&#x22;label&#x22;:&#x22;Enable Program&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_disable_program&#x22;,&#x22;label&#x22;:&#x22;Disable Program&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_quotas&#x22;,&#x22;label&#x22;:&#x22;List Quotas&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_limits&#x22;,&#x22;label&#x22;:&#x22;List Limits&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_limit&#x22;,&#x22;label&#x22;:&#x22;Get Limit&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_regions&#x22;,&#x22;label&#x22;:&#x22;List Regions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_region&#x22;,&#x22;label&#x22;:&#x22;Get Region&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_region&#x22;,&#x22;label&#x22;:&#x22;Create Region&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_region&#x22;,&#x22;label&#x22;:&#x22;Update Region&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_region&#x22;,&#x22;label&#x22;:&#x22;Delete Region&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_batch_create_regions&#x22;,&#x22;label&#x22;:&#x22;Batch Create Regions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_batch_update_regions&#x22;,&#x22;label&#x22;:&#x22;Batch Update Regions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_batch_delete_regions&#x22;,&#x22;label&#x22;:&#x22;Batch Delete Regions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_search_reports&#x22;,&#x22;label&#x22;:&#x22;Search Reports&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_shipping_settings&#x22;,&#x22;label&#x22;:&#x22;Get Shipping Settings&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_insert_shipping_settings&#x22;,&#x22;label&#x22;:&#x22;Insert Shipping Settings&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_update_user&#x22;,&#x22;label&#x22;:&#x22;Update User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]},{&#x22;id&#x22;:&#x22;googleshopping_delete_user&#x22;,&#x22;label&#x22;:&#x22;Delete User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/content&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Create or select a Google Cloud project</h2>

  <p>To use the Google Merchant API with OAuth 2.0, you need a Google Cloud project.</p>

  <Steps>
    <Step title="Sign in to Google Cloud">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://console.cloud.google.com/" target="_blank" rel="noopener noreferrer">Google Cloud Console</a>.</p>
      </div>
    </Step>

    <Step title="Create or select a project">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Select an existing project from the dropdown at the top of the page, or create a new one by clicking <strong>New Project</strong> and filling in the <strong>Project name</strong>, <strong>Organization</strong>, and <strong>Parent resource</strong> fields, then clicking <strong>Create</strong>.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Enable the Merchant API</h2>

  <p>Enable the Merchant API for your project. This step is required whether you created a new project or selected an existing one.</p>

  <Steps>
    <Step title="Open the API Library">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, navigate to <strong>APIs & Services</strong> > <strong>Library</strong>.</p>
      </div>
    </Step>

    <Step title="Enable Merchant API">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Search for "Merchant API", click on it.</p>

        <ul>
          <li><strong>New project</strong>: Click <strong>Enable</strong> to activate the API.</li>
          <li><strong>Existing project</strong>: If the API is already enabled, the button will show <strong>Manage</strong>. If it shows <strong>Enable</strong>, click it to enable the API.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Google Auth Platform</h2>

  <p>Before creating OAuth credentials, ensure Google Auth Platform is configured.</p>

  <Steps>
    <Step title="Navigate to Google Auth Platform">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>OAuth consent screen</strong>. This will open the Google Auth Platform dashboard.</p>
      </div>
    </Step>

    <Step title="Start configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If you have already configured Auth Platform (the OAuth Overview page with usage metrics is shown), skip this step and navigate to the <strong>Branding</strong> page from the sidebar. Otherwise, you will see a <strong>Get started</strong> button — click it to begin the configuration process.</p>
      </div>
    </Step>

    <Step title="Enter app information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fill in the required fields for your application.</p>

        <ul>
          <li><strong>App name</strong>: Enter a name for your application (e.g., StackOne Integration).</li>
          <li><strong>User support email</strong>: Select an email for user inquiries.</li>
          <li>Click <strong>Next</strong> to continue.</li>
        </ul>
      </div>
    </Step>

    <Step title="Select audience">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Choose the appropriate user type for your application.</p>

        <ul>
          <li><strong>Internal</strong>: Only users within your Google Workspace organization can authorize (no app verification required).</li>
          <li><strong>External</strong>: Any Google account can authorize (requires app verification for production use).</li>
          <li>Click <strong>Next</strong> to continue.</li>
        </ul>
      </div>
    </Step>

    <Step title="Enter contact information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Provide email addresses for Google to notify you about any changes to your project. Click <strong>Next</strong> to continue.</p>
      </div>
    </Step>

    <Step title="Finish configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Review your settings, agree to the Google API Services User Data Policy, and click <strong>Create</strong> to complete the setup.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure scopes</h2>

  <p>In Google Auth Platform, go to <strong>Data Access</strong> and click <strong>Add or Remove Scopes</strong> to configure the OAuth scopes your application needs. All three scopes below are required — `userinfo.email` is what lets the connector read the OAuth user's email at connect time to bootstrap the one-time GCP developer registration (without it, the consent screen will not return the email, and Google will not auto-grant the `API_DEVELOPER` role).</p>

  <Steps>
    <Step title="Add scopes">
      <div data-guide-step data-guide-scopes="openid,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/content" data-guide-display-scopes-list="openid,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/content">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="openid,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/content" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Batch Create Regions, Batch Delete Regions, Batch Update Regions, Claim Homepage, Create Conversion Source, Create Data Source, Create Notification Subscription, Create Online Return Policy, Create Region, Create User, Delete Conversion Source, Delete Data Source, Delete Local Inventory, Delete Notification Subscription, Delete Online Return Policy, Delete Product Input, Delete Region, Delete Regional Inventory, Delete User, Disable Program, Enable Program, Get Account, Get Autofeed Settings, Get Automatic Improvements, Get Business Identity, Get Business Info, Get Conversion Source, Get Data Source, Get Email Preferences, Get Homepage, Get Limit, Get Notification Subscription, Get Online Return Policy, Get Product, Get Program, Get Region, Get Service, Get Shipping Settings, Get Terms Of Service, Get Terms Of Service Agreement State, Get User, Insert Local Inventory, Insert Product Input, Insert Regional Inventory, Insert Shipping Settings, List Account Issues, List Accounts, List Aggregate Product Statuses, List Conversion Sources, List Data Sources, List Limits, List Local Inventories, List Notification Subscriptions, List Online Return Policies, List Products, List Programs, List Quotas, List Regional Inventories, List Regions, List Services, List Users, Render Account Issues, Render Product Issues, Retrieve Application Terms Of Service Agreement State, Retrieve Latest Terms Of Service, Search Reports, Undelete Conversion Source, Update Account, Update Autofeed Settings, Update Automatic Improvements, Update Business Identity, Update Business Info, Update Conversion Source, Update Data Source, Update Email Preferences, Update Homepage, Update Notification Subscription, Update Product Input, Update Region, Update User</span>
        </div>

        <p>Add all three Google scopes listed below. Omitting `userinfo.email` will cause the first-connect test to skip the auto-grant and require the API Developer role to be assigned manually.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="openid">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy openid" title="Copy scope" data-copy="openid">
                  <span className="connector-guide-scope-copy__label">openid</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/userinfo.email">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/userinfo.email" title="Copy scope" data-copy="https://www.googleapis.com/auth/userinfo.email">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/userinfo.email](https://www.googleapis.com/auth/userinfo.email)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/content">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/content" title="Copy scope" data-copy="https://www.googleapis.com/auth/content">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/content](https://www.googleapis.com/auth/content)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Select scopes from the list">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Update selected scopes</strong> side panel that opens, check the required scopes from the list. `openid` and `https://www.googleapis.com/auth/userinfo.email` typically appear under <strong>Sensitive scopes</strong> (or <strong>Your sensitive scopes</strong>); `https://www.googleapis.com/auth/content` is the Merchant API scope.</p>
      </div>
    </Step>

    <Step title="Manually add scopes (if needed)">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If a required scope is not shown in the list (most commonly `https://www.googleapis.com/auth/content`), use the <strong>Manually add scopes</strong> section.</p>

        <ul>
          <li>Enter the full scope URL in the input field.</li>
          <li>Click <strong>Add to table</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Apply and save">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Confirm and persist your scope configuration.</p>

        <ul>
          <li>Click <strong>Update</strong> to apply the selected scopes. The side panel will close.</li>
          <li>On the <strong>Data Access</strong> page, click <strong>Save</strong> to persist the scope configuration.</li>
          <li>If you are updating an existing OAuth client (not creating a new one), end users on existing connections must <strong>re-authenticate</strong> to grant the new `userinfo.email` scope — otherwise the test action will still receive an empty email.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Create OAuth 2.0 client credentials</h2>

  <p>Set up OAuth client credentials to authenticate with the Google Merchant API. If you already have an existing OAuth 2.0 client, you can reuse it by adding the StackOne redirect URI and generating a new secret.</p>

  <Steps>
    <Step title="Navigate to Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>Credentials</strong>.</p>
      </div>
    </Step>

    <Step title="Option A — Create a new OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you are using an existing client.</p>

        <ul>
          <li>Click <strong>+ Create Credentials</strong> and select <strong>OAuth client ID</strong>.</li>
          <li>Select <strong>Web application</strong> as the application type.</li>
          <li>Enter a <strong>Name</strong> for your OAuth client (e.g., StackOne Merchant Integration).</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong> and enter `https://api.stackone.com/connect/oauth2/googleshopping/callback`.</li>
          <li>Click <strong>Create</strong>. A dialog will display your <strong>Client ID</strong> and <strong>Client Secret</strong> — copy and store them securely.</li>
        </ul>
      </div>
    </Step>

    <Step title="Option B — Use an existing OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you created a new client above.</p>

        <ul>
          <li>Click on your existing OAuth 2.0 client ID from the list.</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong>, enter `https://api.stackone.com/connect/oauth2/googleshopping/callback`, and click <strong>Save</strong>.</li>
          <li>Under <strong>Client secrets</strong>, click <strong>+ Add secret</strong> to generate a new secret. Copy it and store it securely — it will not be shown again.</li>
          <li>Your <strong>Client ID</strong> is shown on the same page under <strong>Additional information</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Add the authenticating user to Merchant Center</h2>

  <p>The Google account that completes the OAuth consent must already exist in the target Merchant Center account with <strong>Admin</strong> access. Without it, the connector's on-connect developer registration fails with `401 PERMISSION_DENIED_ACCOUNTS`.</p>

  <Steps>
    <Step title="Add or verify the user">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <a href="https://merchants.google.com/" target="_blank" rel="noopener noreferrer">Merchant Center UI</a>, open <strong>Settings</strong> > <strong>Access and services</strong> > <strong>People and access</strong> and confirm the Google account that will complete the OAuth consent appears in the People table with role <strong>Admin</strong> and status <strong>Verified</strong>. If it is missing, click <strong>Add person</strong> to invite it as an Admin and have the invitee accept before continuing.</p>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Google Shopping</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Google Shopping</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Google Shopping</strong>.
