Claim an homepage
Stay organized with collections
Save and categorize content based on your preferences.
Merchant API code sample to claim an homepage.
Java
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package shopping.merchant.samples.accounts.homepages.v1;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.ClaimHomepageRequest;
import com.google.shopping.merchant.accounts.v1.Homepage;
import com.google.shopping.merchant.accounts.v1.HomepageName;
import com.google.shopping.merchant.accounts.v1.HomepageServiceClient;
import com.google.shopping.merchant.accounts.v1.HomepageServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to claim the homepage for a given Merchant Center account. */
public class ClaimHomepageSample {
// Executing this method requires admin access.
public static void claimHomepage(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.
HomepageServiceSettings homepageServiceSettings =
HomepageServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates Homepage name to identify Homepage.
// The name has the format: accounts/{account}/homepage
String name =
HomepageName.newBuilder().setAccount(config.getAccountId().toString()).build().toString();
// Calls the API and catches and prints any network failures/errors.
try (HomepageServiceClient homepageServiceClient =
HomepageServiceClient.create(homepageServiceSettings)) {
ClaimHomepageRequest request = ClaimHomepageRequest.newBuilder().setName(name).build();
System.out.println("Sending Claim Homepage request:");
// If the homepage is already claimed, this will recheck the
// verification (unless the merchant is exempt from claiming, which also
// exempts from verification) and return a successful response. If ownership
// can no longer be verified, it will return an error, but it won't lose an existing
// claim. In case of failure, a canonical error message will be returned:
// * PERMISSION_DENIED: user doesn't have the necessary permissions on this
// MC account;
// * FAILED_PRECONDITION:
// - The account is not a Merchant Center account;
// - MC account doesn't have a homepage;
// - claiming failed (in this case the error message will contain more
// details).
Homepage response = homepageServiceClient.claimHomepage(request);
System.out.println("Retrieved Homepage below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
claimHomepage(config);
}
}
PHP
<?php
/**
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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\ClaimHomepageRequest;
use Google\Shopping\Merchant\Accounts\V1\Client\HomepageServiceClient;
/**
* This class demonstrates how to claim the homepage for a given Merchant Center account.
*/
class ClaimHomepage
{
/**
* Claims the homepage for a given Merchant Center account.
*
* @param array $config The configuration data for authentication and account ID.
* @return void
* @throws ApiException if the API call fails.
*/
public static function claimHomepageSample(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.
$homepageServiceClient = new HomepageServiceClient($options);
// Creates Homepage name to identify Homepage.
// The name has the format: accounts/{account}/homepage
$name = "accounts/" . $config['accountId'] . "/homepage";
// Calls the API and catches and prints any network failures/errors.
try {
$request = new ClaimHomepageRequest(['name' => $name]);
print "Sending Claim Homepage request:\n";
$response = $homepageServiceClient->claimHomepage($request);
print "Retrieved Homepage below\n";
print_r($response);
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
// Makes the call to claim the homepage.
self::claimHomepageSample($config);
}
}
// Run the script
$sample = new ClaimHomepage();
$sample->callSample();
Python
# -*- coding: utf-8 -*-
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""A module to claim a Homepage."""
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import ClaimHomepageRequest
from google.shopping.merchant_accounts_v1 import HomepageServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def claim_homepage():
"""Claims the homepage for a given Merchant Center account."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = HomepageServiceClient(credentials=credentials)
# Creates Homepage name to identify Homepage.
name = "accounts/" + _ACCOUNT + "/homepage"
# Creates the request.
request = ClaimHomepageRequest(name=name)
# Makes the request and catches and prints any error messages.
try:
response = client.claim_homepage(request=request)
print("Retrieved Homepage below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
claim_homepage()
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-13 UTC.
[null,null,["Last updated 2025-08-13 UTC."],[[["\u003cp\u003eThis webpage provides code samples in Java and Python for claiming a homepage for a given Merchant Center account.\u003c/p\u003e\n"],["\u003cp\u003eThe code demonstrates how to use the Merchant Center API to send a \u003ccode\u003eClaimHomepageRequest\u003c/code\u003e and handle potential errors such as permission issues or failed preconditions.\u003c/p\u003e\n"],["\u003cp\u003eThe samples showcase how to authenticate using OAuth credentials and how to construct the \u003ccode\u003eHomepageName\u003c/code\u003e required for the API call.\u003c/p\u003e\n"],["\u003cp\u003eBoth examples detail the API response and what can be expected in case the homepage is already claimed or if the claiming process is unsuccessful.\u003c/p\u003e\n"]]],["The provided code samples demonstrate how to claim a homepage for a Merchant Center account using the Merchant API in Java, PHP, and Python. The core action involves creating a `ClaimHomepageRequest` with the account's homepage name, structured as \"accounts/{account}/homepage\". This request is then sent to the `HomepageServiceClient` via `claimHomepage` method. The response, representing the claimed homepage, or an error message will be printed. The process begins by retrieving OAuth credentials and configuring the client.\n"],null,["# Claim an homepage\n\nMerchant API code sample to claim an homepage. \n\n### Java\n\n // Copyright 2024 Google LLC\n //\n // Licensed under the Apache License, Version 2.0 (the \"License\");\n // you may not use this file except in compliance with the License.\n // You may obtain a copy of the License at\n //\n // https://www.apache.org/licenses/LICENSE-2.0\n //\n // Unless required by applicable law or agreed to in writing, software\n // distributed under the License is distributed on an \"AS IS\" BASIS,\n // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n // See the License for the specific language governing permissions and\n // limitations under the License.\n\n package shopping.merchant.samples.accounts.homepages.v1;\n import com.google.api.gax.core.FixedCredentialsProvider;\n import com.google.auth.oauth2.GoogleCredentials;\n import com.google.shopping.merchant.accounts.v1.ClaimHomepageRequest;\n import com.google.shopping.merchant.accounts.v1.Homepage;\n import com.google.shopping.merchant.accounts.v1.HomepageName;\n import com.google.shopping.merchant.accounts.v1.HomepageServiceClient;\n import com.google.shopping.merchant.accounts.v1.HomepageServiceSettings;\n import shopping.merchant.samples.utils.Authenticator;\n import shopping.merchant.samples.utils.Config;\n\n /** This class demonstrates how to claim the homepage for a given Merchant Center account. */\n public class ClaimHomepageSample {\n\n // Executing this method requires admin access.\n public static void claimHomepage(Config config) throws Exception {\n\n // Obtains OAuth token based on the user's configuration.\n GoogleCredentials credential = new Authenticator().authenticate();\n\n // Creates service settings using the credentials retrieved above.\n HomepageServiceSettings homepageServiceSettings =\n HomepageServiceSettings.newBuilder()\n .setCredentialsProvider(FixedCredentialsProvider.create(credential))\n .build();\n\n // Creates Homepage name to identify Homepage.\n // The name has the format: accounts/{account}/homepage\n String name =\n HomepageName.newBuilder().setAccount(config.getAccountId().toString()).build().toString();\n\n // Calls the API and catches and prints any network failures/errors.\n try (HomepageServiceClient homepageServiceClient =\n HomepageServiceClient.create(homepageServiceSettings)) {\n\n ClaimHomepageRequest request = ClaimHomepageRequest.newBuilder().setName(name).build();\n\n System.out.println(\"Sending Claim Homepage request:\");\n\n // If the homepage is already claimed, this will recheck the\n // verification (unless the merchant is exempt from claiming, which also\n // exempts from verification) and return a successful response. If ownership\n // can no longer be verified, it will return an error, but it won't lose an existing\n // claim. In case of failure, a canonical error message will be returned:\n // * PERMISSION_DENIED: user doesn't have the necessary permissions on this\n // MC account;\n // * FAILED_PRECONDITION:\n // - The account is not a Merchant Center account;\n // - MC account doesn't have a homepage;\n // - claiming failed (in this case the error message will contain more\n // details).\n Homepage response = homepageServiceClient.claimHomepage(request);\n\n System.out.println(\"Retrieved Homepage below\");\n System.out.println(response);\n } catch (Exception e) {\n System.out.println(e);\n }\n }\n\n public static void main(String[] args) throws Exception {\n Config config = Config.load();\n\n claimHomepage(config);\n }\n } \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/java/src/main/java/shopping/merchant/samples/accounts/homepages/v1/ClaimHomepageSample.java\n\n### PHP\n\n \u003c?php\n /**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n require_once __DIR__ . '/../../../../vendor/autoload.php';\n require_once __DIR__ . '/../../../Authentication/Authentication.php';\n require_once __DIR__ . '/../../../Authentication/Config.php';\n use Google\\ApiCore\\ApiException;\n use Google\\Shopping\\Merchant\\Accounts\\V1\\ClaimHomepageRequest;\n use Google\\Shopping\\Merchant\\Accounts\\V1\\Client\\HomepageServiceClient;\n\n /**\n * This class demonstrates how to claim the homepage for a given Merchant Center account.\n */\n class ClaimHomepage\n {\n /**\n * Claims the homepage for a given Merchant Center account.\n *\n * @param array $config The configuration data for authentication and account ID.\n * @return void\n * @throws ApiException if the API call fails.\n */\n public static function claimHomepageSample(array $config): void\n {\n // Gets the OAuth credentials to make the request.\n $credentials = Authentication::useServiceAccountOrTokenFile();\n\n // Creates options config containing credentials for the client to use.\n $options = ['credentials' =\u003e $credentials];\n\n // Creates a client.\n $homepageServiceClient = new HomepageServiceClient($options);\n\n // Creates Homepage name to identify Homepage.\n // The name has the format: accounts/{account}/homepage\n $name = \"accounts/\" . $config['accountId'] . \"/homepage\";\n\n // Calls the API and catches and prints any network failures/errors.\n try {\n $request = new ClaimHomepageRequest(['name' =\u003e $name]);\n\n print \"Sending Claim Homepage request:\\n\";\n\n $response = $homepageServiceClient-\u003eclaimHomepage($request);\n\n print \"Retrieved Homepage below\\n\";\n print_r($response);\n } catch (ApiException $e) {\n print $e-\u003egetMessage();\n }\n }\n\n /**\n * Helper to execute the sample.\n *\n * @return void\n */\n public function callSample(): void\n {\n $config = Config::generateConfig();\n\n // Makes the call to claim the homepage.\n self::claimHomepageSample($config);\n }\n }\n\n // Run the script\n $sample = new ClaimHomepage();\n $sample-\u003ecallSample(); \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/php/examples/accounts/homepages/v1/ClaimHomepageSample.php\n\n### Python\n\n # -*- coding: utf-8 -*-\n # Copyright 2024 Google LLC\n #\n # Licensed under the Apache License, Version 2.0 (the \"License\");\n # you may not use this file except in compliance with the License.\n # You may obtain a copy of the License at\n #\n # http://www.apache.org/licenses/LICENSE-2.0\n #\n # Unless required by applicable law or agreed to in writing, software\n # distributed under the License is distributed on an \"AS IS\" BASIS,\n # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n # See the License for the specific language governing permissions and\n # limitations under the License.\n \"\"\"A module to claim a Homepage.\"\"\"\n\n from examples.authentication import configuration\n from examples.authentication import generate_user_credentials\n from google.shopping.merchant_accounts_v1 import ClaimHomepageRequest\n from google.shopping.merchant_accounts_v1 import HomepageServiceClient\n\n _ACCOUNT = configuration.Configuration().read_merchant_info()\n\n\n def claim_homepage():\n \"\"\"Claims the homepage for a given Merchant Center account.\"\"\"\n\n # Gets OAuth Credentials.\n credentials = generate_user_credentials.main()\n\n # Creates a client.\n client = HomepageServiceClient(credentials=credentials)\n\n # Creates Homepage name to identify Homepage.\n name = \"accounts/\" + _ACCOUNT + \"/homepage\"\n\n # Creates the request.\n request = ClaimHomepageRequest(name=name)\n\n # Makes the request and catches and prints any error messages.\n try:\n response = client.claim_homepage(request=request)\n print(\"Retrieved Homepage below\")\n print(response)\n except RuntimeError as e:\n print(e)\n\n\n if __name__ == \"__main__\":\n claim_homepage()\n\n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/python/examples/accounts/homepages/v1/claim_homepage_sample.py"]]