Para usar la API de Merchant, debes vincular tu proyecto de Google Cloud a tu cuenta principal de Merchant Center a través del registro de desarrollador. Durante el ciclo de vida de tu integración, es posible que debas cambiar el ID del proyecto de Google Cloud asociado a tu cuenta de Merchant Center, administrar varios proyectos en diferentes entornos o realizar la transición de proyectos cuando migres desde la Content API for Shopping.
En esta guía, se explica cómo hacer lo siguiente:
- Cambiar o rotar el ID del proyecto de Google Cloud para una integración existente de la API de Merchant sin tiempo de inactividad
- Anula el registro de un proyecto de Google Cloud de una cuenta de Merchant Center y regístralo en otra cuenta de Merchant Center.
- Elige y ejecuta la estrategia de transición de proyectos de Google Cloud adecuada si migras de la Content API for Shopping a la API de Merchant.
Requisitos previos
Antes de administrar o realizar la transición de proyectos de Google Cloud, verifica que cumplas con los requisitos previos de registro de desarrolladores. Para obtener más detalles, consulta la sección Requisitos previos de la guía Regístrate como desarrollador.
Reglas y limitaciones clave
Cuando planifiques cambios en tus proyectos de Google Cloud, ten en cuenta las siguientes reglas:
- Registro de proyectos de uno a varios: Una sola cuenta principal de Merchant Center
puede tener varios proyectos de Google Cloud registrados en ella
de forma simultánea. Sin embargo, cada proyecto de Google Cloud solo se puede
registrar en una cuenta principal de Merchant Center en un momento
determinado. Si intentas registrar un proyecto que ya está vinculado a otra cuenta de Merchant Center, se muestra un error
ALREADY_EXISTS(409 Conflict) con el motivoDUPLICATE_PROJECT_REGISTRATION. - Privacidad de la propiedad del proyecto: Por motivos de seguridad y privacidad, la asistencia de Google Shopping y la API de Merchant no pueden divulgar las direcciones de correo electrónico del propietario o administrador de un proyecto de Google Cloud. Si pierdes el acceso a un proyecto, comunícate con la Atención al cliente de Google Cloud.
- Las extensiones de cierre de la Content API for Shopping son específicas de cada proyecto: Si recibiste una aprobación de acceso extendido para la Content API for Shopping, esa extensión se aplica solo al ID del proyecto de Google Cloud específico que enviaste en tu solicitud. Las extensiones no se transfieren automáticamente a los proyectos nuevos de Google Cloud.
Cambia el ID del proyecto de Google Cloud de una cuenta de la API de Merchant
Si ya usas la API de Merchant y necesitas cambiar tu integración a un nuevo proyecto de Google Cloud (por ejemplo, debido a una reestructuración de la organización, políticas de rotación de credenciales o pérdida de acceso de administrador a un proyecto anterior), puedes realizar la transición de proyectos sin tiempo de inactividad. Debido a que una cuenta de Merchant Center admite varios proyectos de Google Cloud registrados de forma simultánea, puedes registrar el proyecto nuevo antes de retirar el anterior.
Paso 1: Crea y configura tu nuevo proyecto de Google Cloud
- Crea un proyecto nuevo en la consola de Google Cloud. Para obtener instrucciones detalladas, consulta Crea un proyecto de Google Cloud.
- Habilita la API de Merchant (
merchantapi.googleapis.com) en el proyecto nuevo. Consulta la sección Habilita la API de Merchant en Crea un proyecto de Google Cloud. - Crea credenciales de autenticación (una cuenta de servicio o un ID de cliente de OAuth 2.0) en el nuevo proyecto de Google Cloud.
- Agrega la dirección de correo electrónico de autenticación (como el correo electrónico de la cuenta de servicio nueva)
como usuario con el rol
ADMINen tu cuenta principal de Merchant Center.
Paso 2: Registra el nuevo proyecto de Google Cloud
Autentica con las credenciales de tu nuevo proyecto de Google Cloud
y llama al método
accounts.developerRegistration.registerGcp
para vincular el proyecto nuevo a tu cuenta principal de Merchant Center. Para
obtener instrucciones detalladas, consulta la sección
Realiza la llamada de registro
en
Regístrate como desarrollador.
Paso 3: Verifica tus proyectos de Google Cloud registrados
Para confirmar que tus proyectos de Google Cloud, tanto el existente como el nuevo,
están vinculados a tu cuenta de Merchant Center, llama al
método
accounts.developerRegistration.getDeveloperRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Reemplaza lo siguiente:
ACCOUNT_ID: Es tu ID de Merchant Center.ACCESS_TOKEN: Es el token de autorización para realizar la llamada a la API.
La respuesta devuelve el recurso
DeveloperRegistration
con los números numéricos de los proyectos de Google Cloud de todos los proyectos vinculados
en el campo gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
También puedes verificar con qué cuenta de Merchant Center está registrado el proyecto de Google Cloud que realiza la llamada. Para ello, llama al método accounts.developerRegistration.getAccountForGcpRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Reemplaza lo siguiente:
ACCESS_TOKEN: Es el token de autorización generado con las credenciales del proyecto de Google Cloud que deseas verificar.
Paso 4: Cambia el tráfico y cancela el registro del proyecto de Google Cloud anterior
- Actualiza la configuración de tu aplicación para usar las credenciales de tu nuevo proyecto de Google Cloud. Debido a que ambos proyectos están registrados, tus cargas de trabajo se transfieren sin interrupciones.
- Una vez que todo el tráfico use el proyecto nuevo, puedes quitar el vínculo del proyecto
anterior de forma opcional. Para ello, autentícate con las credenciales del proyecto de Google Cloud
anterior y llama al
método
accounts.developerRegistration.unregisterGcp:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Reemplaza lo siguiente:
ACCOUNT_ID: Es tu ID de Merchant Center.OLD_PROJECT_ACCESS_TOKEN: Es el token de autorización del proyecto de Google Cloud anterior para realizar la llamada a la API.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to unregister the GCP project currently used to call the Merchant API
* for a specific account.
*/
public class UnregisterGcpSample {
public static void unregisterGcp(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.
DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
DeveloperRegistrationServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates DeveloperRegistration name to identify the DeveloperRegistration.
// The name has the format: accounts/{account}/developerRegistration
String name =
DeveloperRegistrationName.newBuilder()
.setAccount(config.getAccountId().toString())
.build()
.toString();
// Calls the API and propagates any network failures/errors.
try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {
// Creates a request to unregister the GCP project.
UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();
System.out.println("Sending UnregisterGcp request for: " + name);
developerRegistrationServiceClient.unregisterGcp(request);
System.out.println("Unregister GCP successful.");
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
unregisterGcp(config);
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"
Reasigna un proyecto de Google Cloud registrado a otra cuenta de Merchant Center
Debido a que un proyecto de Google Cloud se puede registrar en solo una cuenta principal de Merchant Center a la vez, sigue estos pasos para reasignar un proyecto existente de una cuenta de Merchant Center (OLD_ACCOUNT_ID) a otra (NEW_ACCOUNT_ID). Para obtener lineamientos sobre cómo elegir la cuenta de Merchant Center en la que registrarás tu proyecto, consulta Consideraciones importantes:
- Autentica con las credenciales del proyecto de Google Cloud que
tienen acceso a
OLD_ACCOUNT_IDy llama aunregisterGcpenaccounts/OLD_ACCOUNT_ID/developerRegistration. - Verifica que la identidad de autenticación tenga el rol
ADMINenNEW_ACCOUNT_IDy queNEW_ACCOUNT_IDtenga un sitio web verificado. - Llama a
registerGcpenaccounts/NEW_ACCOUNT_ID/developerRegistrationcon las credenciales del mismo proyecto de Google Cloud. SiNEW_ACCOUNT_IDaún no tiene un usuario con el rolAPI_DEVELOPER, pasa un correo electrónico de usuario válido en el campo de solicituddeveloperEmail. Los correos electrónicos de cuentas de servicio que terminan en.gserviceaccount.comno se pueden usar comodeveloperEmail.
Transición de proyectos de Google Cloud cuando se migra desde la Content API for Shopping
Cuando migres de la Content API for Shopping a la API de Merchant, es posible que encuentres limitaciones de acceso en tu proyecto heredado de Google Cloud, por ejemplo, si tus claves de API originales se configuraron directamente a través del flujo de trabajo de autenticación heredado de Merchant Center o si el propietario del proyecto original abandonó tu organización.
Según si quieres conservar tu proyecto existente o usar uno nuevo para la API de Merchant y, al mismo tiempo, mantener Content API for Shopping en tu proyecto anterior, elige una de las siguientes dos opciones.
Elige la estrategia de tu proyecto de migración
| Situación | ¿Se requiere acceso de administrador al proyecto anterior? | APIs que se habilitarán | ¿Se requiere la extensión de Content API for Shopping en el proyecto nuevo? |
|---|---|---|---|
| Opción 1: Conserva tu proyecto existente | Sí (o se recupera a través de la Atención al cliente de Google Cloud) | Habilita la API de Merchant en el proyecto existente (Content API for Shopping ya está habilitada) | No (la extensión existente en el ID del proyecto anterior sigue siendo válida) |
| Opción 2: Conserva el proyecto anterior para Content API for Shopping y usa un proyecto nuevo para la API de Merchant | No | Habilita la API de Merchant en el proyecto nuevo (mantén habilitada la Content API for Shopping en el proyecto anterior). | No (el proyecto anterior conserva su extensión y el nuevo solo llama a la API de Merchant) |
Opción 1: Conserva tu proyecto de Google Cloud existente
Elige esta opción si quieres usar tu proyecto de Google Cloud existente para la Content API for Shopping y la API de Merchant.
Antes de comenzar, verifica o recupera el acceso a tu proyecto existente. Accede a la consola de Google Cloud y confirma que tu cuenta tenga cualquiera de los siguientes roles en tu proyecto existente:
- Propietario (
roles/owner), - Editor (
roles/editor) - Administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Habilita la API de Merchant: Habilita
merchantapi.googleapis.comen la biblioteca de APIs de Google Cloud o con el comandogcloud. Para obtener instrucciones paso a paso, consulta Configura la autenticación de la API desde Merchant Center. - Registra el proyecto de Google Cloud en Merchant Center:
Sigue los pasos de la guía
Regístrate como desarrollador
para autorizar las solicitudes de tu proyecto existente y llama al método
registerGcppara vincular tu proyecto de Google Cloud existente a tu cuenta principal de Merchant Center. Tus claves de cuenta de servicio existentes y la extensión aprobada de Content API for Shopping seguirán funcionando sin cambios.
Opción 2: Usa el proyecto de Google Cloud anterior para Content API for Shopping y un proyecto nuevo para la API de Merchant
Elige esta opción si tu integración heredada de Content API for Shopping ya se está ejecutando con credenciales válidas y una extensión aprobada en tu proyecto de Google Cloud anterior, y quieres compilar tu nueva integración de la API de Merchant en un proyecto de Google Cloud independiente y dedicado:
- Mantén la integración de Content API for Shopping en el proyecto anterior: Deja los flujos de trabajo y las credenciales existentes de Content API for Shopping en ejecución en el proyecto de Google Cloud anterior. Si se aprobó tu solicitud de extensión para el ID del proyecto antiguo, tu integración actual de Content API for Shopping seguirá funcionando hasta la fecha límite extendida.
- Crea un proyecto de Google Cloud nuevo exclusivamente para la API de Merchant: Crea un proyecto de Google Cloud nuevo, habilita
merchantapi.googleapis.comy crea credenciales (una cuenta de servicio o un ID de cliente de OAuth 2.0) para tus nuevas cargas de trabajo de la API de Merchant. - Registra el proyecto nuevo: Sigue los pasos que se indican en Regístrate como desarrollador para autorizar las solicitudes de tu proyecto nuevo y llama al método
registerGcpcon un correo electrónico de contacto de desarrollador válido. Los correos electrónicos de cuentas de servicio (que terminan en.gserviceaccount.com) no se pueden usar comodeveloperEmail. - Migra las cargas de trabajo de forma incremental: Cambia gradualmente las llamadas a la API de tu proyecto anterior de Content API for Shopping al nuevo proyecto de la API de Merchant antes de la fecha de baja programada de Content API for Shopping (o antes de que venza la extensión aprobada) y retira el proyecto anterior una vez que se complete la migración.
Caso especial: Se perdió el acceso al proyecto de Google Cloud anterior antes de completar la migración
Debido a que la API de Content para Shopping dejó de estar disponible, ya no aparece en la biblioteca de APIs de Google Cloud y no se puede habilitar en los proyectos de Google Cloud creados recientemente. Como resultado, no puedes mover las cargas de trabajo existentes de la API de Content para Shopping a un proyecto de Google Cloud nuevo por tu cuenta.
Si ya no puedes realizar llamadas a la API de Content para Shopping desde tu proyecto anterior (por ejemplo, debido a credenciales revocadas o acceso irrecuperable al proyecto), haz lo siguiente:
- Comunícate con la Atención al cliente de Google Cloud para recuperar el acceso a tu proyecto de Google Cloud existente (opción 1) o
- Sigue la Opción 2 para crear y registrar un nuevo proyecto de Google Cloud y migrar los flujos de trabajo afectados directamente a la API de Merchant. Si encuentras un obstáculo crítico para la migración, comunícate con el equipo de asistencia de la API de Merchant.
Próximos pasos
- Obtén más información sobre los requisitos de registro de desarrolladores en Regístrate como desarrollador y en las Preguntas frecuentes sobre el registro de desarrolladores.
- Revisa cómo se comportan las credenciales heredadas en Configura la autenticación de la API desde Merchant Center.
- Planifica el lanzamiento de tu sub-API con Inicia la migración.
- Obtén detalles sobre el acceso extendido a Content API for Shopping en Solicita una extensión de migración.