L'URL de votre boutique en ligne correspond à votre page d'accueil dans Merchant Center. Vous devez d'abord définir ou modifier l'URL de votre page d'accueil. Ensuite, pour débloquer diverses fonctionnalités Merchant Center et diffuser des annonces sur les surfaces Google, vous devez confirmer que vous contrôlez le site Web associé à cette URL. Une fois votre site Web validé, vous pouvez revendiquer la page d'accueil dans Merchant Center.
Vous pouvez gérer les paramètres de votre page d'accueil à l'aide de l'API Merchant, y compris les opérations suivantes :
- Définir l'URL de votre page d'accueil
- Revendiquer l'URL de votre page d'accueil
- Renoncer à l'URL de votre page d'accueil
Prérequis
Avant de pouvoir revendiquer le site Web de votre magasin, vous devez le valider. Pour en savoir plus sur l'importance de la validation des sites Web, consultez Comprendre la validation des URL des boutiques en ligne. Pour comprendre le processus, consultez l'API Site Verification.
Considérations particulières
Pour revendiquer ou renoncer à votre page d'accueil à l'aide de l'API, ou pour modifier son URL, vous devez disposer d'un accès administrateur au compte Merchant Center.
Obtenir les paramètres actuels de votre page d'accueil
Pour récupérer l'URL de la page d'accueil configurée de votre magasin et vérifier si elle a été revendiquée, utilisez la méthode accounts.homepage.getHomepage
.
Voici un exemple de requête HTTPS :
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage
Une requête réussie renvoie la ressource Homepage
avec l'URI et l'état de revendication actuels.
Voici un exemple de réponse :
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.example.com",
"claimed": true
}
Si aucune page d'accueil n'est définie, aucune valeur n'est renvoyée pour claimed
.
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "",
}
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.GetHomepageRequest;
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 get the homepage for a given Merchant Center account */
public class GetHomepageSample {
public static void getHomepage(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.
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)) {
// The name has the format: accounts/{account}/homepage
GetHomepageRequest request = GetHomepageRequest.newBuilder().setName(name).build();
System.out.println("Sending Get Homepage request:");
Homepage response = homepageServiceClient.getHomepage(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();
getHomepage(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\GetHomepageRequest;
use Google\Shopping\Merchant\Accounts\V1\Client\HomepageServiceClient;
/**
* This class demonstrates how to get the homepage for a given Merchant Center account
*/
class GetHomepage
{
/**
* Gets 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 getHomepageSample(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 GetHomepageRequest(['name' => $name]);
print "Sending Get Homepage request:\n";
$response = $homepageServiceClient->getHomepage($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 get the homepage.
self::getHomepageSample($config);
}
}
// Run the script
$sample = new GetHomepage();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import GetHomepageRequest
from google.shopping.merchant_accounts_v1 import HomepageServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_homepage():
"""Gets 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 = GetHomepageRequest(name=name)
# Makes the request and catches and prints any error messages.
try:
response = client.get_homepage(request=request)
print("Retrieved Homepage below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
get_homepage()
cURL
curl --location --request GET \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>'
Modifier l'URL de votre page d'accueil
Pour définir ou modifier l'URL du site Web associée à votre compte Merchant Center, utilisez la méthode updateHomepage
.
Vous devez fournir la ressource Homepage
dans le corps de la requête, en spécifiant le nouveau uri
et en incluant uri
dans update_mask
.
Voici un exemple de requête HTTPS :
PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage?update_mask=uri
Voici un exemple de charge utile de requête :
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.new-example.com"
}
Une requête réussie renvoie la ressource Homepage
mise à jour.
Voici un exemple de réponse :
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.new-example.com",
"claimed": true
}
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
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 com.google.shopping.merchant.accounts.v1.UpdateHomepageRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to update a homepage to a new URL. */
public class UpdateHomepageSample {
public static void updateHomepage(Config config, String uri) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
HomepageServiceSettings homepageServiceSettings =
HomepageServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates homepage name to identify homepage.
String name =
HomepageName.newBuilder().setAccount(config.getAccountId().toString()).build().toString();
// Create a homepage with the updated fields.
Homepage homepage = Homepage.newBuilder().setName(name).setUri(uri).build();
FieldMask fieldMask = FieldMask.newBuilder().addPaths("uri").build();
try (HomepageServiceClient homepageServiceClient =
HomepageServiceClient.create(homepageServiceSettings)) {
UpdateHomepageRequest request =
UpdateHomepageRequest.newBuilder().setHomepage(homepage).setUpdateMask(fieldMask).build();
System.out.println("Sending Update Homepage request");
Homepage response = homepageServiceClient.updateHomepage(request);
System.out.println("Updated Homepage Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The URI (a URL) of the store's homepage.
String uri = "https://example.com";
updateHomepage(config, uri);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1\Homepage;
use Google\Shopping\Merchant\Accounts\V1\Client\HomepageServiceClient;
use Google\Shopping\Merchant\Accounts\V1\UpdateHomepageRequest;
/**
* This class demonstrates how to update a homepage to a new URL.
*/
class UpdateHomepage
{
/**
* Updates a homepage to a new URL.
*
* @param array $config The configuration data for authentication and account ID.
* @param string $uri The new URI for the homepage.
* @return void
* @throws ApiException if the API call fails.
*/
public static function updateHomepageSample(array $config, string $uri): 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";
// Create a homepage with the updated fields.
$homepage = new Homepage(['name' => $name, 'uri' => $uri]);
// Create field mask to specify which fields to update.
$fieldMask = new FieldMask(['paths' => ['uri']]);
try {
$request = new UpdateHomepageRequest([
'homepage' => $homepage,
'update_mask' => $fieldMask
]);
print "Sending Update Homepage request\n";
$response = $homepageServiceClient->updateHomepage($request);
print "Updated Homepage Name below\n";
print $response->getName() . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
// The URI (a URL) of the store's homepage.
$uri = "https://example.com";
// Makes the call to update the homepage.
self::updateHomepageSample($config, $uri);
}
}
// Run the script
$sample = new UpdateHomepage();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1 import Homepage
from google.shopping.merchant_accounts_v1 import HomepageServiceClient
from google.shopping.merchant_accounts_v1 import UpdateHomepageRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def update_homepage(new_uri):
"""Updates a homepage to a new URL."""
# 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"
# Create a homepage with the updated fields.
homepage = Homepage(name=name, uri=new_uri)
# Create a FieldMask for the "uri" field.
field_mask = field_mask_pb2.FieldMask(paths=["uri"])
# Creates the request.
request = UpdateHomepageRequest(homepage=homepage, update_mask=field_mask)
# Makes the request and catches and prints any error messages.
try:
response = client.update_homepage(request=request)
print("Updated Homepage Name below")
print(response.name)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# The URI (a URL) of the store's homepage.
uri = "https://example.com"
update_homepage(uri)
cURL
curl --location --request PATCH \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage?update_mask=uri' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.new-example.com"
}'
Revendiquer votre page d'accueil
Pour revendiquer la page d'accueil de votre boutique en ligne, utilisez la méthode claim
. Toutefois, avant de pouvoir revendiquer votre page d'accueil, vous devez effectuer la validation, qui est le processus permettant de prouver que vous êtes propriétaire du site Web.
Voici un exemple de requête HTTPS :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage:claim
Voici un exemple de charge utile de requête si vous souhaitez remplacer une revendication existante provenant d'un autre compte :
{
"overwrite": true
}
Une requête réussie renvoie la ressource Homepage
. Si la revendication aboutit, le champ claimed
sera défini sur true
.
Voici un exemple de réponse :
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.new-example.com",
"claimed": true
}
Java
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
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
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()
cURL
curl --location --request POST \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage:claim' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"overwrite": true
}'
Exclure votre page d'accueil
Pour supprimer l'état revendiqué de la page d'accueil de votre magasin, utilisez la méthode unclaim
. Vous pouvez le faire si vous avez modifié votre site Web ou si vous ne souhaitez plus que l'URL actuelle soit associée à votre compte en tant que site revendiqué.
Voici un exemple de requête HTTPS :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage:unclaim
Voici un exemple de charge utile de requête :
{}
Voici un exemple de réponse :
{
"name": "accounts/{ACCOUNT_ID}/homepage",
"uri": "https://www.new-example.com",
}
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
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 com.google.shopping.merchant.accounts.v1.UnclaimHomepageRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to unclaim the homepage for a given Merchant Center account. */
public class UnclaimHomepageSample {
// Executing this method requires admin access.
public static void unclaimHomepage(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)) {
UnclaimHomepageRequest request = UnclaimHomepageRequest.newBuilder().setName(name).build();
System.out.println("Sending Unclaim Homepage request:");
Homepage response = homepageServiceClient.unclaimHomepage(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();
unclaimHomepage(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\HomepageServiceClient;
use Google\Shopping\Merchant\Accounts\V1\UnclaimHomepageRequest;
/**
* This class demonstrates how to unclaim the homepage for a given Merchant Center account.
*/
class UnclaimHomepage
{
/**
* Unclaims 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 unclaimHomepageSample(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 UnclaimHomepageRequest(['name' => $name]);
print "Sending Unclaim Homepage request:\n";
$response = $homepageServiceClient->unclaimHomepage($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 unclaim the homepage.
self::unclaimHomepageSample($config);
}
}
// Run the script
$sample = new UnclaimHomepage();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import HomepageServiceClient
from google.shopping.merchant_accounts_v1 import UnclaimHomepageRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def unclaim_homepage():
"""Unclaims 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.
# The name has the format: accounts/{account}/homepage
name = "accounts/" + _ACCOUNT + "/homepage"
# Creates the request.
request = UnclaimHomepageRequest(name=name)
# Makes the request and catches and prints any error messages.
try:
response = client.unclaim_homepage(request=request)
print(f"Unclaimed Homepage: {response}")
except RuntimeError as e:
print(f"Failed to unclaim homepage: {e}")
if __name__ == "__main__":
unclaim_homepage()
cURL
curl --location --request POST \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/homepage:unclaim' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{}'