Accounts API'yi kullanarak Merchant Center hesabınız ile diğer servis sağlayıcılar arasındaki ilişkileri yönetebilirsiniz. İlişki, bir sağlayıcının işletmenize belirli hizmetler sunmasına olanak tanıyan resmi bir bağlantıdır. Hizmet, sağlayıcıya verilen izinleri ve özellikleri (ör. ürün yönetimi veya kampanya yönetimi) tanımlar. Örneğin, Merchant Center hesabınızı bir Google Ads hesabına bağladığınızda Ads hesabı, reklam kampanyaları yayınlamak için ürün verilerinizi kullanabilir.
İlişki aşağıdaki özelliklerden oluşur:
- Hizmeti alan Merchant Center hesabı
- Servis sağlayıcı
- Merchant Center hesabına sağlanan hizmet veya hizmet grubu
Takma ad
Servis sağlayıcılar, hizmet verdikleri hesaplarla bir takma ad ilişkilendirebilir (Bu, Content API for Shopping'deki account kaynağında bulunan seller_id alanına eşdeğerdir). Takma ad, AccountRelationship kaynağındaki isteğe bağlı account_id_alias alanı kullanılarak atanabilir ve özel bir tanımlayıcı olarak kullanılabilir. Takma ad, ASCII harfleri, ondalık basamaklar, tireler, alt çizgiler, noktalar veya yaklaşık işaretleri ([A-Za-z0-9_~.-]{1,50}) arasından seçilen 1 ila 50 karakterden oluşmalıdır.
Bir hesaba takma adını kullanarak erişmek için kullanılan URL yapısı şöyledir:
GET /accounts/v1/accounts/{provider}~{account_id_alias}.
Hizmetler
Accounts API'de hesaplar aşağıdaki hizmetleri alabilir. Bu hizmetlerin çoğunu hesap oluşturma sırasında ekleyebilirsiniz.
Hesap birleştirme: Bu hizmet (
accountAggregation), bir çok müşterili gelişmiş hesabı bir alt hesaba bağlayarak gelişmiş hesaba tam ve kısıtlanmamış erişim sağlar ve alt hesabı Merchant Center kullanıcı arayüzünde görünür hale getirir. Merchant Center kullanıcı arayüzü, yeni alt hesaplar oluştururken mağaza tasarımcıları (e-ticaret platformları), kanal iş ortakları, pazar yerleri, çok markalı perakendeciler ve uluslararası perakendeciler için hesapları otomatik olarakaccountAggregationile gelişmiş hesaplara dönüştürür. Ajanssanız bunun yerineaccountManagementkullanın. Hesap toplama özelliğini kullanarak hesap oluşturduğunuzdaexternalAccountIdatlanmalıdır.Kampanya yönetimi: Bu hizmet, Merchant Center hesabı ile Google Ads hesabı arasındaki bağlantıyı modelleyerek Google Ads hesabına, reklam kampanyaları yayınlamak için gereken ürün ve hesap verilerine erişim izni verir. Bu örnekte servis sağlayıcı
GOOGLE_ADS,externalAccountIdise Google Ads hesabının kimliğidir. Bu hizmet, mevcut bir hesaba da önerilebilir.
- Bu hizmet, Ticari Medya Ağı kampanyaları yayınlanırken iş ortağına özel ürün filtreleri oluşturulmasına olanak tanır.
- Şu anda Accounts alt API'sinin alfa sürümünü kullanmanız gerekir.
- Bu özelliğin kullanılabilmesi için GMC'de özel izin verilmesi gerekir.
Daha fazla bilgi için Google Ads hesap yönetimi ekibinizle iletişime geçin.
Karşılaştırmalı alışveriş: Merchant Center hesabını işleten Karşılaştırmalı Alışveriş Hizmeti (CSS) ile olan ilişkiyi temsil eder.
Yerel giriş yönetimi: Bu, Google İşletme Profili kullanarak yerel envanteri ve girişleri yönetmek için bir mağaza yöneticisiyle olan ilişkiyi temsil eder.
Hesap yönetimi: Bu hizmet (
accountManagement), sağlayıcının bağımsız bir harici Merchant Center hesabında hesap ayarlarını yapılandırma, kullanıcıları yönetme veya işletme bilgilerini güncelleme gibi yönetim işlemleri gerçekleştirmesine olanak tanır. İşletme, verilen erişimi kısıtlayabilir de. Hesap oluşturma sırasında kullanıldığında bu hizmet, sağlayıcıya bağlı bağımsız bir hesap oluşturur. Mevcut bir hesap için de teklif edilebilir. Bu hizmet türünü kullanan ajanslar, yönettikleri hesapları Ajanslar için Merchant Center'da görebilir. Mağaza oluşturucular ve kanal iş ortakları,accountManagementüzerinden yönettikleri satıcılar hakkında bilgi almak için Merchant API'yi kullanabilir.Ürün yönetimi: Bu hizmet, sağlayıcıların ürünleri ve veri kaynakları ile kurallar gibi ilgili özellikleri yönetmesine olanak tanır. Hesap oluşturma sırasında eklendiğinde genellikle
accountManagementveyaaccountAggregationile birlikte kullanılır. Bu hizmet, mevcut bir hesaba da önerilebilir.UCP ödeme yönetimi (
v1alpha, sınırlı erişim):ucpCheckoutManagementhizmeti, onaylı bir servis sağlayıcının satıcı adına UCP ödeme entegrasyonlarını, ayarlarını ve programa katılımını yönetmesine olanak tanır. Bu hizmet yalnızca mevcut bir Merchant Center hesabı tarafından önerilebilir veya onaylanabilir.Not: UCP ödeme özelliği, sınırlı erişime sahip bir alfa özelliktir. Servis sağlayıcılar için Merchant Center'da servis sağlayıcılar ve UCP ödeme hakkında daha fazla bilgi edinin.
El sıkışma
Bir hizmet oluşturmak için hem hizmeti sağlayan hesabın hem de hizmeti alan hesabın bağlantıyı yetkilendirmesi gerekir. Bu yetkilendirme işlemine el sıkışma denir.
El sıkışma iki adımlı bir işlemdir:
- Taraflardan biri hizmet bağlantısı önerir.
- Diğer taraf teklifi onaylar veya reddeder.
Teklif kabul edildikten sonra hizmet onaylanır ve tamamen oluşturulmuş kabul edilir. Servis sağlayıcıya verilen tüm erişim hakları artık nitelikli kullanıcılara verilmektedir (Aşağıdaki erişim hakları bölümüne bakın).
Teklif oluşturan, reddeden veya onaylayan kullanıcının, işlemi başlatan hesapta ADMIN erişim haklarına sahip olması gerektiğini unutmayın. Dolayısıyla, servis sağlayıcı bir hizmet önerirse öneriyi yapan kullanıcının servis sağlayıcının hesabında ADMIN olması ve öneriyi kabul eden veya reddeden kullanıcının alıcı hesapta ADMIN olması gerekir.
Aşağıdaki örneklerde, hesap hizmeti teklifinin nasıl yapılacağı gösterilmektedir:
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.AccountService;
import com.google.shopping.merchant.accounts.v1.AccountServicesServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountServicesServiceSettings;
import com.google.shopping.merchant.accounts.v1.ProductsManagement;
import com.google.shopping.merchant.accounts.v1.ProposeAccountServiceRequest;
import shopping.merchant.samples.utils.Authenticator;
/** This class demonstrates how to propose a service to an existing Merchant Center account. */
public class ProposeServiceSample {
public static void proposeService(long accountId, long providerId, String externalAccountId)
throws Exception {
// Obtains OAuth token based on the user's configuration.
// The user that authenticates should have access to the account.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
AccountServicesServiceSettings accountServicesServiceSettings =
AccountServicesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Calls the API and catches and prints any network failures/errors.
try (AccountServicesServiceClient accountServicesServiceClient =
AccountServicesServiceClient.create(accountServicesServiceSettings)) {
// The service to be proposed.
// This sample shows how to propose product management.
// For more information about the different services, see:
// https://developers.google.com/merchant/api/guides/accounts/services
AccountService accountService =
AccountService.newBuilder()
.setProductsManagement(ProductsManagement.newBuilder().build())
.setExternalAccountId(externalAccountId)
.build();
String accountName =
AccountName.newBuilder().setAccount(String.valueOf(accountId)).build().toString();
ProposeAccountServiceRequest request =
ProposeAccountServiceRequest.newBuilder()
.setParent(accountName)
.setProvider("accounts/" + providerId)
.setAccountService(accountService)
.build();
System.out.println("Sending Propose Service request:");
AccountService response = accountServicesServiceClient.proposeAccountService(request);
System.out.println("Proposed Service below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
// The ID of the account to propose the service to.
long accountId = 123L;
// This is the provider ID of the e-commerce platform.
long providerId = 456L;
// An external ID that uniquely identifies the account service.
String externalAccountId = "ext-acc-id-123";
proposeService(accountId, providerId, externalAccountId);
}
}
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\AccountAggregation;
use Google\Shopping\Merchant\Accounts\V1\AccountService;
use Google\Shopping\Merchant\Accounts\V1\Client\AccountServicesServiceClient;
use Google\Shopping\Merchant\Accounts\V1\ProposeAccountServiceRequest;
/**
* This class demonstrates how to propose an account service.
*/
class ProposeAccountServiceSample
{
/**
* A helper function to create the account name string.
*
* @param string $accountId The ID of the account.
*
* @return string The account name has the format: `accounts/{account_id}`
*/
private static function toAccountName(string $accountId): string
{
return sprintf('accounts/%s', $accountId);
}
/**
* Proposes a new account service.
*
* @param array $config The configuration data used for authentication and
* getting the account ID.
* @param string $providerId The ID of the provider account.
*/
public static function proposeAccountService(
array $config,
string $providerId
): void {
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$accountServicesServiceClient = new AccountServicesServiceClient($options);
// Calls the API and catches and prints any network failures/errors.
try {
$accountAggregation = new AccountAggregation();
$accountService = (new AccountService())
->setAccountAggregation($accountAggregation);
$request = (new ProposeAccountServiceRequest())
->setParent(self::toAccountName($config['accountId']))
->setProvider(self::toAccountName($providerId))
->setAccountService($accountService);
print "Sending Propose AccountService request\n";
$response = $accountServicesServiceClient->proposeAccountService($request);
print "Proposed AccountService below\n";
print $response->serializeToJsonString(true) . PHP_EOL;
} catch (ApiException $e) {
printf("An error has occurred: %s%s", $e->getMessage(), PHP_EOL);
}
}
/**
* Helper to execute the sample.
*/
public function callSample(): void
{
$config = Config::generateConfig();
// Update this with the Merchant Center provider ID you want to get the
// relationship for.
$providerId = 111;
self::proposeAccountService($config, $providerId);
}
}
// Run the script
$sample = new ProposeAccountServiceSample();
$sample->callSample();
Python
"""This class demonstrates how to propose an account service."""
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import AccountAggregation
from google.shopping.merchant_accounts_v1 import AccountService
from google.shopping.merchant_accounts_v1 import AccountServicesServiceClient
from google.shopping.merchant_accounts_v1 import ProposeAccountServiceRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
_PARENT = f"accounts/{_ACCOUNT}"
def propose_account_service(provider_id: int) -> None:
"""Proposes an account service.
Args:
provider_id: The Merchant Center ID of the provider.
"""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = AccountServicesServiceClient(credentials=credentials)
# Creates the provider resource name from the provider ID.
provider = f"accounts/{provider_id}"
# Creates an AccountService object.
# For this request, only `account_aggregation` is needed.
account_service = AccountService()
account_service.account_aggregation = AccountAggregation()
# Creates the request.
request = ProposeAccountServiceRequest(
parent=_PARENT,
provider=provider,
account_service=account_service,
)
# Makes the request and catches and prints any error messages.
try:
print("Sending Propose AccountService request")
response = client.propose_account_service(request=request)
print("Proposed AccountService below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Update this with the Merchant Center provider ID you want to get the
# relationship for.
provider_id_ = 111
propose_account_service(provider_id_)
Hizmete özgü el sıkışma davranışı
Aşağıda, her bir hizmet için özel el sıkışma şartları açıklanmaktadır:
Hesap birleştirme: Bu hizmet yalnızca hesap oluşturma işleminin bir parçası olarak oluşturulabilir. Servis sağlayıcının gelişmiş hesap olması beklenir ve gelişmiş hesabın kullanıcıları, oluşturulan hesaba tam
ADMINerişimine sahip olduğundan hizmet otomatik olarak onaylanır.Karşılaştırmalı alışveriş: Bu hizmet,
createAndConfigurekullanılarak hesap oluşturma sırasında eklendiğinde otomatik olarak onaylanır.Kampanya yönetimi: Bu işlem normal el sıkışma sürecini takip etse de teklifler bir sistemde (ör. Google Ads) yapılır ve onaylar diğer sistemde (ör. Merchant Center'da veya Merchant API aracılığıyla) yapılır.
Yerel giriş yönetimi: Bu hizmet için el sıkışma özel bir yöntemle önerilir ve onaylar diğer sistemde (örneğin, Google İşletme Profili) yapılır. Ayrıntılı adımları Google İşletme Profili bağlama kılavuzunda bulabilirsiniz.
Hesap yönetimi: Bu hizmette,
proposekullanılırken normal el sıkışma süreci geçerlidir. Hizmet,createAndConfigurekullanılarak hesap oluşturma sırasında eklenirse otomatik olarak onaylanır.Ürün yönetimi: Bu hizmet için normal el sıkışma süreci geçerlidir (bir tarafın teklifi, diğer tarafın kabulü).
UCP ödeme yönetimi (
v1alpha, sınırlı erişim): Bu hizmet için satıcı, el sıkışma işlemini servis sağlayıcının portalındaki Google tarafından barındırılan hesap bağlama iletişim kutusu üzerinden veya standart el sıkışma sürecini (proposeve ardındanapprove) kullanarak tamamlayabilir. Entegrasyon ayrıntıları için Merchant Center servis sağlayıcıları belgelerine bakın.
Erişim hakları
Her hizmet türü, hizmet sağlayıcının kullanıcılarına, hizmet verilen hesap üzerinde belirli bir erişim düzeyi sağlar:
Hesap toplama: Bu hizmet, tam
ADMINhakları sağlar.Kampanya yönetimi: Bu hizmet, kısıtlı bir erişim hakkı sağlayarak ilişkili Ads hesabının ürünlere ve temel hesap bilgilerine erişmesine olanak tanır.
Karşılaştırmalı Alışveriş: Bu hizmet, varsayılan olarak tam
ADMINhakları sağlar. Ancak işletme, Merchant Center'da verilen erişimi kısıtlayabilir.Yerel giriş yönetimi: Bu hizmet, doğrudan erişim hakkı sağlamaz. Bunun yerine, listelemenin ürünlerini Merchant Center hesabıyla senkronize etmesini sağlar.
Önemli: Aşağıdaki hizmet türleri için açıklanan erişim hakları yalnızca onaylı servis sağlayıcılar için geçerlidir. Servis sağlayıcıysanız ve bu özellikten yararlanmak istiyorsanız destek ekibimizle iletişime geçin. Content API for Shopping'de ürün yönetimi için accounts.link yöntemini kullanmanız daha önce onaylandıysa bu hizmeti Merchant API'de ek onay gerekmeden kullanabilirsiniz.
Hesap yönetimi: Bu hizmet, varsayılan olarak tam
ADMINhakları sağlar.Ürün yönetimi: Bu hizmet, tam
ADMINhakları sağlar. Gelecekte bu erişimin yalnızca ürünle ilgili erişim haklarıyla sınırlı olacağını unutmayın.UCP ödeme yönetimi (
v1alpha, sınırlı erişim): Bu hizmet, tamADMINhakları sağlar. Gelecekte bu erişimin yalnızca UCP ödeme ile ilgili erişim haklarıyla sınırlı olacağını unutmayın.
Üçüncü taraf platformlar için ilişkilerin geçerlilik durumu
Diğer işletmeler adına hesap yöneten bir üçüncü taraf platformuysanız farklı kavramların hesap yapınızla nasıl eşleştiği aşağıda gösterilmiştir:
- Servis sağlayıcı: Gelişmiş hesabınız.
- Hizmeti alan hesap: Yönettiğiniz işletmeyi temsil eden bir Merchant Center hesabı.
- Hizmet:
accountAggregation: Mağaza oluşturucular (e-ticaret platformları), kanal iş ortakları, pazar yerleri ve satıcılar adına yeni alt hesaplar oluşturan çok markalı perakendeciler tarafından kullanılır. Merchant Center kullanıcı arayüzü, mağaza oluşturucuları ve kanal iş ortaklarını otomatik olarakaccountAggregationile gelişmiş hesaplar olarak yapılandırır. Böylece, Merchant Center kullanıcı arayüzünde alt hesapları görüntüleyip yönetebilirler.accountManagement: Satıcıya ait bağımsız müşteri hesapları oluşturan veya bu hesaplara bağlantı veren ajanslar tarafından kullanılır. Bu hesaplar, Ajanslar İçin Merchant Center'da görüntülenebilir. Diğer servis sağlayıcı türleri, bağlı hesap bilgilerini görüntülemek için Merchant API'dekiaccounts.listyöntemini kullanır.
Gelişmiş hesap oluşturma ve yeni Merchant Center hesaplarına bağlanma hakkında ayrıntılı bilgi için Hesap oluşturma başlıklı makaleyi inceleyin.