नया क्लाइंट खाता बनाने के लिए, पहले से भरी हुई Customer ऑब्जेक्ट
CustomerService पर CreateCustomerClient तरीके का इस्तेमाल करके सबमिट करें.
आम तौर पर, एंटिटी बनाने के लिए mutate कॉल का इस्तेमाल किया जाता है. हालांकि, नया क्लाइंट खाता बनाते समय, अनुरोध में मैनेजर खाते का ग्राहक आईडी बताना ज़रूरी है. इसमें बनाए जा रहे ग्राहक का आईडी नहीं बताया जाता.
अनुरोध और ग्राहक के फ़ील्ड
CustomerService.CreateCustomerClient को कॉल करते समय,
CreateCustomerClientRequest और इसमें शामिल Customer ऑब्जेक्ट को, यहां दी गई टेबल में दिखाए गए तरीके से कॉन्फ़िगर करें:
| फ़ील्ड या हेडर | ज़रूरी है | म्यूटेबिलिटी और जानकारी |
|---|---|---|
customer_id |
ज़रूरी है | यह 10 अंकों वाला ग्राहक आईडी (बिना हाइफ़न के) उस मैनेजर खाते का होता है जिसके तहत नया क्लाइंट खाता बनाया जा रहा है. |
login-customer-id (हेडर) |
कंडीशनल | अनुरोध के हेडर में यह जानकारी तब ज़रूरी होती है, जब पुष्टि किया गया उपयोगकर्ता, हैरारकी में ऊपर मौजूद किसी पूर्वज मैनेजर खाते के ज़रिए, पैरंट मैनेजर खाते (customer_id) को ऐक्सेस करता है. |
customer_client.descriptive_name |
ज़रूरी है | बदलाव किया जा सकता है: नए खाते का डिसप्ले नेम. उदाहरण के लिए, "Acct Created with CustomerService". इसे बाद में CustomerService.MutateCustomer की मदद से अपडेट किया जा सकता है. |
customer_client.currency_code |
ज़रूरी है | खाता बनाने के बाद, इसमें बदलाव नहीं किया जा सकता: यह तीन वर्णों वाला आईएसओ 4217 बिलिंग की मुद्रा कोड होता है. उदाहरण के लिए, USD या EUR. इसके लिए, काम करने वाले करंसी कोड देखें. |
customer_client.time_zone |
ज़रूरी है | खाता बनाने के बाद, इसमें बदलाव नहीं किया जा सकता: यह खाते का टाइम ज़ोन आईडी होता है. उदाहरण के लिए, America/New_York. इसके लिए, काम करने वाले टाइम ज़ोन देखें. |
email_address और access_role |
सिर्फ़ अनुमति वाली सूची में शामिल खातों के लिए ज़रूरी नहीं है | खाता बनाते समय, किसी उपयोगकर्ता (ADMIN, STANDARD, READ_ONLY या EMAIL_ONLY) को बनाए गए खाते का न्योता भेजता है. अनुमति वाली सूची में शामिल न होने वाले खातों को, CustomerUserAccessInvitationService का इस्तेमाल करके, खाता बनाने के बाद उपयोगकर्ताओं को न्योता भेजना होगा. |
validate_only |
ज़रूरी नहीं है | जब इसकी वैल्यू true होती है, तो खाता बनाए बिना, अनुरोध के पैरामीटर और मैनेजर की ज़रूरी शर्तें पूरी होने की पुष्टि की जाती है. |
कोड का उदाहरण
यहां दिए गए उदाहरण में, मौजूदा मैनेजर खाते के तहत ग्राहक खाता बनाने का तरीका बताया गया है:
Java
private void runExample(GoogleAdsClient googleAdsClient, Long managerId) { // Formats the current date/time to use as a timestamp in the new customer description. String dateTime = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME); // Initializes a Customer object to be created. Customer customer = Customer.newBuilder() .setDescriptiveName("Account created with CustomerService on '" + dateTime + "'") .setCurrencyCode("USD") .setTimeZone("America/New_York") // Optional: Sets additional attributes of the customer. .setTrackingUrlTemplate("{lpurl}?device={device}") .setFinalUrlSuffix("keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}") .build(); // Sends the request to create the customer. try (CustomerServiceClient client = googleAdsClient.getLatestVersion().createCustomerServiceClient()) { CreateCustomerClientResponse response = client.createCustomerClient(managerId.toString(), customer); System.out.printf( "Created a customer with resource name '%s' under the manager account with" + " customer ID '%d'.%n", response.getResourceName(), managerId); } }
C#
public void Run(GoogleAdsClient client, long managerCustomerId) { // Get the CustomerService. CustomerServiceClient customerService = client.GetService(Services.V26.CustomerService); Customer customer = new Customer() { DescriptiveName = $"Account created with CustomerService on '{DateTime.Now}'", // For a list of valid currency codes and time zones see this documentation: // https://developers.google.com/google-ads/api/reference/data/codes-formats#codes_formats. CurrencyCode = "USD", TimeZone = "America/New_York", // The below values are optional. For more information about URL // options see: https://support.google.com/google-ads/answer/6305348. TrackingUrlTemplate = "{lpurl}?device={device}", FinalUrlSuffix = "keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}" }; try { // Create the account. CreateCustomerClientResponse response = customerService.CreateCustomerClient( managerCustomerId.ToString(), customer); // Display the result. Console.WriteLine($"Created a customer with resource name " + $"'{response.ResourceName}' under the manager account with customer " + $"ID '{managerCustomerId}'"); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $managerCustomerId) { $customer = new Customer([ 'descriptive_name' => 'Account created with CustomerService on ' . date('Ymd h:i:s'), // For a list of valid currency codes and time zones see this documentation: // https://developers.google.com/google-ads/api/reference/data/codes-formats. 'currency_code' => 'USD', 'time_zone' => 'America/New_York', // The below values are optional. For more information about URL // options see: https://support.google.com/google-ads/answer/6305348. 'tracking_url_template' => '{lpurl}?device={device}', 'final_url_suffix' => 'keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}' ]); // Issues a mutate request to create an account $customerServiceClient = $googleAdsClient->getCustomerServiceClient(); $response = $customerServiceClient->createCustomerClient( CreateCustomerClientRequest::build($managerCustomerId, $customer) ); printf( 'Created a customer with resource name "%s" under the manager account with ' . 'customer ID %d.%s', $response->getResourceName(), $managerCustomerId, PHP_EOL ); }
Python
def main(client: GoogleAdsClient, manager_customer_id: str) -> None: """The main method that creates all necessary entities for the example. Args: client: an initialized GoogleAdsClient instance. manager_customer_id: a manager client customer ID. """ customer_service: CustomerServiceClient = client.get_service( "CustomerService" ) customer: Customer = client.get_type("Customer") now: str = datetime.today().strftime("%Y%m%d %H:%M:%S") customer.descriptive_name = f"Account created with CustomerService on {now}" # For a list of valid currency codes and time zones see this documentation: # https://developers.google.com/google-ads/api/reference/data/codes-formats customer.currency_code = "USD" customer.time_zone = "America/New_York" # The below values are optional. For more information about URL # options see: https://support.google.com/google-ads/answer/6305348 customer.tracking_url_template = "{lpurl}?device={device}" customer.final_url_suffix = ( "keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}" ) response: CreateCustomerClientResponse = ( customer_service.create_customer_client( customer_id=manager_customer_id, customer_client=customer ) ) print( f'Customer created with resource name "{response.resource_name}" ' f'under manager account with ID "{manager_customer_id}".' )
Ruby
def create_customer(manager_customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new customer = client.resource.customer do |c| c.descriptive_name = "Account created with CustomerService on #{(Time.new.to_f * 1000).to_i}" # For a list of valid currency codes and time zones, see this documentation: # https://developers.google.com/google-ads/api/reference/data/codes-formats c.currency_code = "USD" c.time_zone = "America/New_York" # The below values are optional. For more information about URL options, see: # https://support.google.com/google-ads/answer/6305348 c.tracking_url_template = "{lpurl}?device={device}" c.final_url_suffix = "keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}" end response = client.service.customer.create_customer_client( customer_id: manager_customer_id, customer_client: customer ) puts "Created a customer with resource name #{response.resource_name} under" + " the manager account with customer ID #{manager_customer_id}." end
Perl
sub create_customer { my ($api_client, $manager_customer_id) = @_; # Initialize a customer to be created. my $customer = Google::Ads::GoogleAds::V26::Resources::Customer->new({ descriptiveName => "Account created with CustomerService on #" . uniqid(), # For a list of valid currency codes and time zones, see this documentation: # https://developers.google.com/google-ads/api/reference/data/codes-formats currencyCode => "USD", timeZone => "America/New_York", # The below values are optional. For more information about URL options, see: # https://support.google.com/google-ads/answer/6305348 trackingUrlTemplate => "{lpurl}?device={device}", finalUrlSuffix => "keyword={keyword}&matchtype={matchtype}&adgroupid={adgroupid}" }); # Create the customer client. my $create_customer_client_response = $api_client->CustomerService()->create_customer_client({ customerId => $manager_customer_id, customerClient => $customer }); printf "Created a customer with resource name '%s' under the manager account " . "with customer ID %d.\n", $create_customer_client_response->{resourceName}, $manager_customer_id; return 1; }
curl
# Creates a customer client. # # Variables: # API_VERSION, # MANAGER_CUSTOMER_ID, # OAUTH2_ACCESS_TOKEN: # See https://developers.google.com/google-ads/api/rest/auth#request_headers # for details. # curl -f --request POST \ "https://googleads.googleapis.com/v${API_VERSION}/customers/${MANAGER_CUSTOMER_ID}:createCustomerClient" \ --header "Content-Type: application/json" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data @- <<EOF { "customerClient": { "descriptiveName": "Account created with CustomerService #${RANDOM}", "currencyCode": "USD", "timeZone": "America/New_York" } } EOF
जवाब और अगले चरण
सफल होने पर, CreateCustomerClient से CreateCustomerClientResponse
मिलता है. इसमें, नए
बनाए गए खाते का resource_name (customers/{new_customer_id}) शामिल होता है. साथ ही, अगर अनुमति वाली सूची में शामिल किसी मैनेजर खाते ने email_address और access_role
शामिल किए हैं, तो invitation_link भी शामिल होता है. इसके बाद, इस संसाधन के नाम या ग्राहक आईडी का इस्तेमाल करके, अपनी हैरारकी में खाते की पुष्टि की जा सकती है. साथ ही, उपयोगकर्ता को ऐक्सेस दिया जा सकता है, बिलिंग कॉन्फ़िगर की जा सकती है या कैंपेन की जानकारी भरी जा सकती है.
मैनेजर की हैरारकी में बनाए गए खाते की पुष्टि करना
नए बनाए गए उप-खाते की जांच करने के लिए, GoogleAdsService.SearchStream
का इस्तेमाल करके, मैनेजर
खाते (customer_id) के ख़िलाफ़ customer_client संसाधन के लिए क्वेरी करें:
SELECT
customer_client.id,
customer_client.resource_name,
customer_client.client_customer,
customer_client.descriptive_name,
customer_client.currency_code,
customer_client.time_zone,
customer_client.manager,
customer_client.level,
customer_client.status
FROM customer_client
WHERE customer_client.level = 1
AND customer_client.id = {new_customer_id}
नए खाते में उपयोगकर्ताओं को न्योता देना
अगर आपका मैनेजर खाता, CreateCustomerClientRequest पर सीधे तौर पर email_address और
access_role सेट करने की अनुमति वाली सूची में शामिल नहीं है, तो CustomerUserAccessInvitationService पर
MutateCustomerUserAccessInvitation का इस्तेमाल करके, नए बनाए गए new_customer_id को ऐक्सेस
का न्योता भेजें. पैरंट मैनेजर खाते के ज़रिए पुष्टि करते समय, एचटीटीपी अनुरोध के हेडर में login-customer-id: {manager_customer_id} शामिल करें:
POST https://googleads.googleapis.com/v26/customers/{new_customer_id}/customerUserAccessInvitations:mutate
{
"operation": {
"create": {
"emailAddress": "user@example.com",
"accessRole": "ADMIN"
}
}
}
गड़बड़ी ठीक करना
CreateCustomerClient को कॉल करने पर, ये गड़बड़ियां दिख सकती हैं:
CustomerError: यह खाता बनाने से जुड़ी पाबंदियों के बारे में बताता है. जैसे,CREATION_DENIED_INELIGIBLE_MCC(मैनेजर खाता, नए खाते बनाने के लिए ज़रूरी शर्तें पूरी नहीं करता) याCREATION_DENIED_FOR_POLICY_VIOLATION(नीति के उल्लंघन की वजह से, ग्राहक खाता नहीं बनाया जा सकता).ManagerLinkError: यह हैरारकी या खाते की सीमा से जुड़ी पाबंदियों के बारे में बताता है, जैसेTOO_MANY_ACCOUNTS,TOO_MANY_ACCOUNTS_AT_MANAGER, याMAX_DEPTH_EXCEEDED.AccessInvitationError: यह तब दिखता है, जबCreateCustomerClientRequestपर, नए खाते में किसी उपयोगकर्ता को न्योता भेजने के लिए,email_address(इसके साथaccess_roleभी दिया जाता है. यह सिर्फ़ अनुमति वाली सूची में शामिल खातों के लिए उपलब्ध है) दिया जाता है और न्योता भेजने में गड़बड़ी होती है. उदाहरण के लिए,INVALID_EMAIL_ADDRESS,GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED, याEMAIL_DOMAIN_POLICY_VIOLATED. अनुमति वाली सूची में शामिल न होने वाले खातों को,CustomerUserAccessInvitationServiceका इस्तेमाल करके, खाता बनाने के बाद उपयोगकर्ताओं को न्योता भेजना होगा.CurrencyCodeError.UNSUPPORTEDयाTimeZoneError.INVALID_TIME_ZONE: यह तब दिखता है, जबCustomerऑब्जेक्ट पर दिया गयाcurrency_codeयाtime_zoneअमान्य होता है या काम नहीं करता.