אתם יכולים להשתמש ב-Accounts API כדי לנהל את הקשרים בין החשבון שלכם ב-Merchant Center לבין ספקי שירות אחרים. קשר עסקי הוא חיבור רשמי שמאפשר לספק להציע שירותים ספציפיים לעסק שלכם. שירות מגדיר את ההרשאות והיכולות שניתנות לספק, כמו ניהול מוצרים או ניהול קמפיינים. לדוגמה, קישור של חשבון Merchant Center לחשבון Google Ads מאפשר לחשבון Google Ads להשתמש בנתוני המוצרים שלכם כדי להפעיל קמפיינים פרסומיים.
קשר מורכב מהמאפיינים הבאים:
- חשבון Merchant Center שמקבל את השירות
- ספק השירות
- השירות או קבוצת השירותים שניתנים לחשבון Merchant Center
כינוי
ספקי שירות יכולים לשייך כינוי לחשבונות שהם מספקים להם שירות (זה שווה ערך לשדה seller_id שהיה קיים במשאב account ב-Content API for Shopping). אפשר להקצות את הכינוי באמצעות השדה האופציונלי account_id_alias במשאב AccountRelationship, והוא משמש כמזהה בהתאמה אישית. הכינוי חייב לכלול בין תו אחד ל-50 תווים, מתוך תווי ASCII, ספרות עשרוניות, מקפים, קווים תחתונים, נקודות או טילדות ([A-Za-z0-9_~.-]{1,50}).
מבנה כתובת ה-URL לגישה לחשבון באמצעות הכינוי שלו הוא GET /accounts/v1/accounts/{provider}~{account_id_alias}.
שירותים
ב-Accounts API, חשבונות יכולים לקבל את השירותים הבאים. אתם יכולים להוסיף הרבה מהשירותים האלה במהלך יצירת החשבון.
צבירת חשבונות: השירות הזה (
accountAggregation) מקשר חשבון מתקדם מרובה לקוחות לחשבון משנה, נותן לחשבון המתקדם גישה מלאה ובלתי מוגבלת ומאפשר לראות את חשבון המשנה בממשק המשתמש של Merchant Center. ממשק המשתמש של Merchant Center ממיר באופן אוטומטי חשבונות לחשבונות מתקדמים עםaccountAggregationעבור פלטפורמות מסחר אלקטרוני, שותפים ראשיים, זירות מסחר, קמעונאים עם כמה מותגים וקמעונאים בינלאומיים כשיוצרים חשבונות משנה חדשים. אם אתם סוכנות, השתמשו ב-accountManagementבמקום זאת. כשיוצרים חשבון באמצעות צבירת חשבונות, צריך להשמיט אתexternalAccountId.ניהול קמפיינים: השירות הזה יוצר מודל של הקישור בין חשבון Merchant Center לחשבון Google Ads, ומעניק לחשבון Google Ads גישה לנתוני המוצרים והחשבון שנדרשים כדי להפעיל קמפיינים פרסומיים. ספק השירות במקרה הזה הוא
GOOGLE_ADS, והערךexternalAccountIdהוא המזהה של חשבון Google Ads. אפשר להציע את השירות הזה גם לחשבון קיים.
- השירות הזה מאפשר ליצור מסנני מוצרים ספציפיים לשותפים כשמפעילים קמפיינים של רשתות עם קישור של מודעות לנתוני עסקאות (CMN).
- בשלב הזה, צריך להשתמש בגרסת האלפא של Accounts sub-API.
- כדי להשתמש בתכונה הזו, צריך להוסיף את החשבון לרשימת ההיתרים של GMC.
לפרטים נוספים, פנו לצוות ניהול החשבון שלכם ב-Google Ads.
שירות השוואת מחירים: מייצג את הקשר עם שירות השוואת מחירים (CSS) שמפעיל את חשבון Merchant Center.
ניהול דפים עסקיים מקומיים: הקשר עם מנהל חנות לצורך ניהול המלאי המקומי והדפים העסקיים באמצעות פרופיל העסק ב-Google.
ניהול חשבון: השירות הזה (
accountManagement) מאפשר לספק לבצע פעולות ניהוליות בחשבון Merchant Center חיצוני עצמאי, כמו קביעת הגדרות החשבון, ניהול משתמשים או עדכון פרטי העסק. העסק יכול גם להגביל את הגישה שניתנה. כשמשתמשים בשירות הזה במהלך יצירת חשבון, הוא יוצר חשבון עצמאי שמקושר לספק. אפשר גם להציע אותו לחשבון קיים. סוכנויות שמשתמשות בסוג השירות הזה יכולות לראות את החשבונות שהן מנהלות ב-Merchant Center לסוכנויות. מפתחי חנויות ושותפים ראשיים יכולים להשתמש ב-Merchant API כדי לשלוף מידע על מוכרים שהם מנהלים דרךaccountManagement.ניהול מוצרים: השירות הזה מאפשר לספקים לנהל מוצרים ותכונות קשורות כמו מקורות נתונים וכללים. כשמוסיפים אותו במהלך יצירת החשבון, בדרך כלל הוא משולב עם
accountManagementאוaccountAggregation. אפשר להציע את השירות הזה גם לחשבון קיים.ניהול תהליך התשלום ב-UCP (
v1alpha, גישה מוגבלת): השירותucpCheckoutManagementמאפשר לספק שירות מאושר לנהל את השילובים, ההגדרות וההשתתפות בתוכנית של תהליך התשלום ב-UCP בשם המוכר. רק חשבון Merchant Center קיים יכול להציע או לאשר את השירות הזה.הערה: דף התשלום של UCP הוא תכונה בשלב אלפא עם גישה מוגבלת. מידע נוסף על ספקי שירותים ועל תהליך התשלום ב-UCP זמין במאמר Merchant Center לספקי שירותים.
לחיצת יד
כדי להגדיר שירות, החשבון שמספק את השירות והחשבון שמקבל את השירות צריכים לאשר את החיבור. תהליך ההרשאה הזה נקרא לחיצת יד.
לחיצת היד היא תהליך דו-שלבי:
- צד אחד מציע קישור לשירות.
- הצד השני מאשר או דוחה את ההצעה.
אחרי שההצעה מתקבלת, השירות מאושר ונחשב כפעיל. כל זכות גישה שניתנה לספק השירות ניתנת עכשיו למשתמשים שעומדים בדרישות (ראו זכויות גישה בהמשך).
שימו לב: למשתמש שיוצר, דוחה או מאשר הצעה צריכות להיות ADMIN הרשאות גישה בחשבון שבו מתחיל התהליך. לכן, אם ספק השירות מציע שירות, המשתמש שמציע את ההצעה חייב להיות ADMIN בחשבון של ספק השירות, והמשתמש שמקבל או דוחה את ההצעה חייב להיות ADMIN בחשבון המקבל.
בדוגמאות הבאות אפשר לראות איך מציעים שירות חשבון:
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_)
התנהגות של לחיצת יד ספציפית לשירות
בהמשך מתוארות דרישות ספציפיות ללחיצת יד לכל שירות בנפרד:
צבירת חשבונות: אפשר להגדיר את השירות הזה רק כחלק מיצירת החשבון. ספק השירות אמור להיות חשבון מתקדם, והשירות מאושר באופן אוטומטי כי למשתמשים בחשבון המתקדם יש גישה מלאה של
ADMINלחשבון שנוצר.שירות השוואת מחירים: השירות הזה מאושר אוטומטית כשמוסיפים אותו במהלך יצירת החשבון באמצעות
createAndConfigure.ניהול קמפיינים: התהליך הזה מתבצע לפי תהליך ההתאמה הרגיל, אבל ההצעות נשלחות במערכת אחת (לדוגמה, Google Ads) והאישורים מתבצעים במערכת השנייה (לדוגמה, ב-Merchant Center או דרך Merchant API).
ניהול דפים עסקיים מקומיים: בשירות הזה, לחיצת היד מוצעת בשיטה ייעודית והאישורים מתבצעים במערכת השנייה (לדוגמה, פרופיל העסק ב-Google). הוראות מפורטות מופיעות במדריך לקישור פרופיל העסק ב-Google.
ניהול חשבונות: בשירות הזה, תהליך הלחיצת היד הרגיל חל כשמשתמשים ב-
propose. אם השירות נוסף במהלך יצירת החשבון באמצעותcreateAndConfigure, הוא מאושר באופן אוטומטי.ניהול מוצרים: בשירות הזה, תהליך ההסכמה הרגיל חל (הצעה של צד אחד, ואז קבלה של הצד השני).
ניהול תשלומים ב-UCP (
v1alpha, גישה מוגבלת): בשירות הזה, המוכר יכול להשלים את תהליך ההתאמה דרך תיבת הדו-שיח של קישור החשבונות שמתארחת ב-Google בפורטל של ספק השירות, או באמצעות תהליך ההתאמה הרגיל (proposeואחריוapprove). פרטים על השילוב זמינים במסמכי התיעוד של ספקי השירות של Merchant Center.
זכויות גישה
כל סוג שירות מספק רמת גישה מסוימת למשתמשים של ספק השירות בחשבון שמקבל את השירות:
צבירת חשבונות: השירות הזה מספק זכויות
ADMINמלאות.ניהול קמפיינים: השירות הזה מספק זכות גישה מוגבלת, שמאפשרת לחשבון פרסום המשויך לגשת למוצרים ולמידע בסיסי על החשבון.
השוואת מחירים: השירות הזה מספק כברירת מחדל הרשאות
ADMINמלאות. עם זאת, העסק יכול להגביל את הגישה שניתנה ב-Merchant Center.ניהול דפים עסקיים מקומיים: השירות הזה לא מספק זכות גישה ישירה. במקום זאת, הוא מאפשר לסנכרן את המוצרים בכרטיס המוצר עם חשבון Merchant Center.
חשוב: זכויות הגישה שמתוארות לסוגי השירותים הבאים חלות רק על ספקי שירות מאושרים. אם אתם ספקי שירותים ורוצים להשתמש ביכולת הזו, פנו לצוות התמיכה שלנו. אם כבר קיבלתם אישור להשתמש בשיטה accounts.link לניהול מוצרים ב-Content API for Shopping, אתם יכולים להשתמש בשירות הזה ב-Merchant API בלי אישורים נוספים.
ניהול חשבונות: השירות הזה מספק כברירת מחדל הרשאות
ADMINמלאות.ניהול מוצרים: השירות הזה מספק הרשאות
ADMINמלאות. חשוב לדעת שבעתיד, ההרשאה הזו תוגבל רק לזכויות גישה שקשורות למוצר.ניהול תשלומים ב-UCP (
v1alpha, גישה מוגבלת): השירות הזה מספק זכויות מלאות ב-ADMIN. חשוב לדעת שבעתיד, ההרשאות האלה יוגבלו רק לזכויות גישה שקשורות לתהליך התשלום ב-UCP.
איך הקשרים חלים על פלטפורמות של צד שלישי
אם אתם פלטפורמה של צד שלישי שמנהלת חשבונות בשביל עסקים אחרים, בטבלה הבאה מוסבר איך המושגים השונים ממופים למבנה החשבון שלכם:
- ספק שירות: החשבון המתקדם שלכם.
- החשבון שמקבל את השירות: חשבון Merchant Center שמייצג את העסק שאתם מנהלים.
- שירות:
accountAggregation: משמשת מפתחי חנויות (פלטפורמות של מסחר אלקטרוני), שותפים ראשיים, זירות מסחר וקמעונאים של מספר מותגים שיוצרים חשבונות משנה חדשים בשם מוכרים. ממשק המשתמש של Merchant Center מגדיר באופן אוטומטי את יוצרי החנויות והשותפים הראשיים כחשבונות מתקדמים עםaccountAggregation, ומאפשר להם לראות ולנהל חשבונות משנה בממשק המשתמש של Merchant Center.accountManagement: סוכנויות שיוצרות או מקשרות לחשבונות לקוח עצמאיים בבעלות המוכר, שאפשר לראות ב-Merchant Center לסוכנויות. ספקי שירות מסוגים אחרים משתמשים ב-methodaccounts.listב-Merchant API כדי לראות את פרטי החשבון המקושר.
במאמר יצירת חשבונות מוסבר איך להגדיר חשבון מתקדם ולקשר אותו לחשבונות Merchant Center חדשים.