Create an Account

To create an account, send the Google Ads API a pre-populated Customer . Unlike creating other entities like campaigns, this is done with a special CreateCustomerClient method on the CustomerService rather than a "mutate" method. In the CreateCustomerClient method, you specify the customer ID of the manager account that will be managing the new client, not the customer ID of the client being mutated as usual.

Here is code demonstrating customer creation:

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 
 . 
 V21 
 . 
 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  
 
 . 
 rb 
  

Perl

 sub 
  
 create_customer 
  
 { 
  
 my 
  
 ( 
 $api_client 
 , 
  
 $manager_customer_id 
 ) 
  
 = 
  
 @_ 
 ; 
  
 # Initialize a customer to be created. 
  
 my 
  
 $customer 
  
 = 
  
 Google::Ads::GoogleAds::V21::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, # 
DEVELOPER_TOKEN, # 
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 "developer-token: ${DEVELOPER_TOKEN}" \ 
 --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  
 
  
Create a Mobile Website
View Site in Mobile | Classic
Share by: