Google Unternehmensprofil verknüpfen

Eine Google-Standortgruppe funktioniert wie ein freigegebener Ordner für Ihre Standorte. Mit einer Standortgruppe können Sie Ihre Standorte sicher gemeinsam mit anderen Nutzern verwalten. Weitere Informationen finden Sie unter Unternehmensgruppen.

Bevor Sie Ihr lokales Inventar hochladen, geben Sie die Unternehmensgruppe an, für die Ihr Merchant Center-Konto zuständig ist. Sie können die Liste der infrage kommenden Unternehmensgruppen über das Unternehmensprofil mit der Merchant API abrufen. Dazu müssen Sie Ihr Konto jedoch zuerst mit einem Unternehmensprofil verknüpfen.

Zugriff auf ein Unternehmensprofil anfordern

Verwenden Sie die Methode gbpAccounts.LinkGbpAccount, um Zugriff auf ein Unternehmensprofil zu erhalten:

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts:linkGbpAccount

{
  "gbpEmail": "admin@example.com",
}

Ersetzen Sie Folgendes:

  • ACCOUNT_ID: die eindeutige ID Ihres Merchant Center-Kontos
  • GBP_EMAIL: die E-Mail-Adresse des Administrators für das Unternehmensprofil

Wenn Sie diese Methode aufrufen, sendet der Dienst eine E-Mail an den angegebenen Administrator, in der er aufgefordert wird, die Zugriffsanfrage anzunehmen oder abzulehnen. Wenn der Administrator nicht innerhalb von 7 Tagen antwortet, läuft die Anfrage automatisch ab.

Verfügbare Unternehmensgruppen auflisten

Sobald der Administrator die Anfrage genehmigt hat, können Sie die verfügbaren Unternehmensgruppen mit der Methode gbpAccounts.List prüfen.

Hier sehen Sie eine Beispielanfrage und eine erfolgreiche Antwort:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/gbpAccounts

Response:
200 OK
{
  "gbpAccounts": [
    {
      "name": "accounts/{ACCOUNT_ID}/gbpAccounts/12345",
      "gbpAccountId": 12345,
      "type": USER,
      "gbpAccountName": "admin@example.com",
      "listingCount": 15
    }, {
      "name": "accounts/{ACCOUNT_ID}/gbpAccounts/67890",
      "gbpAccountId": 67890,
      "type": BUSINESS_ACCOUNT,
      "gbpAccountName": "Google My Business Account",
      "listingCount": 23
    }
  ],
  "nextPageToken": 50
}

Mit diesem Codebeispiel können Sie alle infrage kommenden Unternehmensgruppen abrufen:

Java

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccountName;
import com.google.shopping.merchant.accounts.v1.GbpAccount;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceClient.ListGbpAccountsPagedResponse;
import com.google.shopping.merchant.accounts.v1.GbpAccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.ListGbpAccountsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to get the list of GBP accounts for a given Merchant Center account
 */
public class ListGbpAccountsSample {

  public static void listGbpAccounts(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    GbpAccountsServiceSettings gbpAccountsServiceSettings =
        GbpAccountsServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    String accountId = config.getAccountId().toString();
    // Creates parent to identify the omnichannelSetting from which to list all Lfp Providers.
    String parent = AccountName.newBuilder().setAccount(accountId).build().toString();

    // Calls the API and catches and prints any network failures/errors.
    try (GbpAccountsServiceClient gbpAccountsServiceClient =
        GbpAccountsServiceClient.create(gbpAccountsServiceSettings)) {
      ListGbpAccountsRequest request =
          ListGbpAccountsRequest.newBuilder().setParent(parent).build();

      System.out.println("Sending list GBP accounts request:");
      ListGbpAccountsPagedResponse response = gbpAccountsServiceClient.listGbpAccounts(request);

      int count = 0;

      // Iterates over all the entries in the response.
      for (GbpAccount gbpAccount : response.iterateAll()) {
        System.out.println(gbpAccount);
        count++;
      }
      System.out.println(String.format("The following count of elements were returned: %d", count));
    } catch (Exception e) {
      System.out.println("An error has occured: ");
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    listGbpAccounts(config);
  }
}

PHP

require_once __DIR__ . '/../../../../vendor/autoload.php';
require_once __DIR__ . '/../../../Authentication/Authentication.php';
require_once __DIR__ . '/../../../Authentication/Config.php';

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\GbpAccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\GbpAccount;
use Google\Shopping\Merchant\Accounts\V1\ListGbpAccountsRequest;

/**
 * This class demonstrates how to get the list of GBP accounts for a given
 * Merchant Center account.
 */
class ListGbpAccountsSample
{
    /**
     * A helper function to create the parent string.
     *
     * @param string $accountId The account ID.
     *
     * @return string The parent has the format: `accounts/{account_id}`
     */
    private static function getParent(string $accountId): string
    {
        return sprintf('accounts/%s', $accountId);
    }

    /**
     * Retrieves the list of GBP accounts for a given Merchant Center account.
     *
     * @param array $config The configuration data for authentication and account ID.
     *
     * @return void
     */
    public static function listGbpAccounts(array $config): void
    {
        // Gets the OAuth credentials to make the request.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates options config containing credentials for the client to use.
        $options = ['credentials' => $credentials];

        // Creates a client.
        $gbpAccountsServiceClient = new GbpAccountsServiceClient($options);

        // Creates the parent account name to identify the merchant.
        $parent = self::getParent($config['accountId']);

        // Creates the request to list GBP accounts.
        $request = new ListGbpAccountsRequest([
            'parent' => $parent
        ]);

        // Calls the API and catches and prints any network failures/errors.
        try {
            printf("Sending list GBP accounts request:%s", PHP_EOL);
            $response = $gbpAccountsServiceClient->listGbpAccounts($request);

            $count = 0;

            // Iterates over all the GBP accounts in the response and prints them.
            foreach ($response->iterateAllElements() as $gbpAccount) {
                /** @var GbpAccount $gbpAccount */
                print_r($gbpAccount->serializeToJsonString());
                $count++;
            }
            printf(
                "The following count of elements were returned: %d%s",
                $count,
                PHP_EOL
            );
        } catch (ApiException $e) {
            printf("An error has occurred: %s%s", $e->getMessage(), PHP_EOL);
        }
    }

    /**
     * Helper to execute the sample.
     *
     * @return void
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        self::listGbpAccounts($config);
    }
}

// Runs the script.
$sample = new ListGbpAccountsSample();
$sample->callSample();

Python

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import GbpAccountsServiceClient
from google.shopping.merchant_accounts_v1 import ListGbpAccountsRequest

# Gets the merchant account ID from the configuration file.
_ACCOUNT = configuration.Configuration().read_merchant_info()
# Creates the parent resource name string.
_PARENT = f"accounts/{_ACCOUNT}"


def list_gbp_accounts() -> None:
  """Lists the Google Business Profile accounts for a given Merchant Center account."""

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = GbpAccountsServiceClient(credentials=credentials)

  # Creates the request.
  request = ListGbpAccountsRequest(parent=_PARENT)

  # Makes the request and catches and prints any error messages.
  try:
    print("Sending list GBP accounts request:")
    # Makes the request and retrieves the list of GBP accounts.
    response = client.list_gbp_accounts(request=request)

    count = 0
    # Iterates over all the GBP accounts in the response and prints them.
    for gbp_account in response:
      print(gbp_account)
      count += 1
    print(f"The following count of elements were returned: {count}")
  except RuntimeError as e:
    print("An error has occured: ")
    print(e)


if __name__ == "__main__":
  list_gbp_accounts()

Unternehmensgruppe für das Merchant Center-Konto angeben

Nachdem Sie die Liste der verfügbaren Standortgruppen abgerufen haben, können Sie die Standortgruppe mit Ihrem Merchant Center-Konto verknüpfen. Wenn Sie beispielsweise die Standortgruppe mit der Google Unternehmensprofil-Konto-ID 12345 auswählen möchten (die im vorherigen Schritt zurückgegeben wurde), können Sie AccountServices.proposeAccountService verwenden:

POST
https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/services:propose
{
  provider: "providers/GOOGLE_BUSINESS_PROFILE",
  account_service: {
    external_account_id: "12345",
    local_listing_management {}
  }
}

Beachten Sie, dass das Feld provider providers/GOOGLE_BUSINESS_PROFILE sein muss. Sie müssen in der Anfrage ein leeres Feld LocalListingManagement festlegen.

Produkt- und Inventardaten einreichen

Nachdem Sie Ihr Merchant Center-Konto mit einer Standortgruppe verknüpft haben, können Sie Ihre Produkt- und Daten zu lokalem Inventar hochladen. Weitere Informationen finden Sie unter