Page Summary
-
This code provides examples in Python and Java for retrieving detailed customer information from Search Ads 360 using a stream request.
-
It uses the Search Ads 360 API to query for customer details such as ID, descriptive name, account type, and manager status.
-
The examples demonstrate how to set up a Search Ads 360 client, construct a query, and process the stream of results to extract customer information.
-
The retrieved customer information is printed to the console, displaying the relevant attributes for each customer found.
Python
#!/usr/bin/env python # Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Retrieves detail information for a customer using a stream request.""" import argparse import traceback from google.ads.searchads360.v0.services.types.search_ads360_service import SearchSearchAds360StreamRequest from util_searchads360 import SearchAds360Client def main ( client , customer_id ) - > None : search_ads_360_service = client . get_service () query = """ SELECT customer.id, customer.descriptive_name, customer.account_type, customer.manager, customer.manager_id, customer.manager_descriptive_name, customer.sub_manager_id, customer.sub_manager_descriptive_name, customer.associate_manager_id, customer.associate_manager_descriptive_name, customer.account_level FROM customer""" request = SearchSearchAds360StreamRequest () request . customer_id = customer_id request . query = query # Issues a search stream request. results = search_ads_360_service . search_stream ( request = request ) for response in results : for result in response . results : customer = result . customer print ( f """Customer found with ID { customer . id } descriptive_name: { customer . descriptive_name } account_type: { customer . account_type . name } is_manager: { customer . manager } manager_id: { customer . manager_id } manager_descriptive_name: { customer . manager_descriptive_name } sub_manager_id: { customer . sub_manager_id } sub_manager_descriptive_name: { customer . sub_manager_descriptive_name } associate_manager_id: { customer . associate_manager_id } associate_manager_descriptive_name: { customer . associate_manager_descriptive_name } account_level: { customer . account_level . name } """ ) if __name__ == "__main__" : # SearchAds360Client will read the search-ads-360.yaml configuration file in # the home directory if none is specified. search_ads_360_client = SearchAds360Client . load_from_file () parser = argparse . ArgumentParser ( description = ( "Retrieves detail info for a customer." )) # Arguments to provide to run the example. parser . add_argument ( "-c" , "--customer_id" , type = str , required = True , help = "The Search Ads 360 customer ID (10 digits, no dashes)." , ) parser . add_argument ( "-l" , "--login_customer_id" , type = str , required = False , help = "The Search Ads 360 login customer ID (10 digits, no dashes)." , ) args = parser . parse_args () search_ads_360_client . set_ids ( args . customer_id , args . login_customer_id ) try : main ( search_ads_360_client , args . customer_id ) except Exception : # pylint: disable=broad-except traceback . print_exc ()
Java
// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package sample ; import com.beust.jcommander.Parameter ; import com.google.ads.searchads360.v0.lib.SearchAds360Client ; import com.google.ads.searchads360.v0.services.SearchAds360Row ; import com.google.ads.searchads360.v0.services.SearchAds360ServiceClient ; import com.google.ads.searchads360.v0.services.SearchSearchAds360StreamRequest ; import com.google.ads.searchads360.v0.services.SearchSearchAds360StreamResponse ; import com.google.api.gax.rpc.ServerStream ; /** Get customer details. */ public class GetCustomersStream { private static class GetCustomersParams extends CodeSampleParams { @Parameter ( names = "--customerId" , required = true ) private String customerId ; @Parameter ( names = "--loginCustomerId" ) private String loginCustomerId ; } public static void main ( String [] args ) { GetCustomersParams params = new GetCustomersParams (); if ( ! params . parseArguments ( args )) { // Optional: You may pass the loginCustomerId on the command line or specify a loginCustomerId // here (10 digits, no dashes). If neither are set, customerId will be used as // loginCustomerId. // params.loginCustomerId = Long.parseLong("INSERT_LOGIN_CUSTOMER_ID_HERE"); } final String loginCustomerId = params . loginCustomerId ; final String customerId = params . customerId ; try { // Creates a SearchAds360Client with the specified loginCustomerId. If there's // no loginCustomerId, customerId will be used instead. final SearchAds360Client searchAds360Client = SearchAds360Client . newBuilder () . setLoginCustomerId ( loginCustomerId == null ? customerId : loginCustomerId ) . fromPropertiesFile () . build (); // Creates the Search Ads 360 Service client. SearchAds360ServiceClient client = searchAds360Client . create (); new GetCustomersStream (). runExample ( client , customerId ); } catch ( Exception exception ) { System . err . printf ( "Failed with exception: %s%n" , exception ); exception . printStackTrace (); System . exit ( 1 ); } } private void runExample ( SearchAds360ServiceClient searchAds360ServiceClient , String customerId ) { // Creates a query that retrieves customer info along the manager chain. String query = """ SELECT customer.id, customer.descriptive_name, customer.account_type, customer.manager, customer.manager_id, customer.manager_descriptive_name, customer.sub_manager_id, customer.sub_manager_descriptive_name, customer.associate_manager_id, customer.associate_manager_descriptive_name, customer.account_level FROM customer """ ; SearchSearchAds360StreamRequest request = SearchSearchAds360StreamRequest . newBuilder () . setCustomerId ( customerId ) . setQuery ( query ) . build (); // Issues a search stream request. ServerStream<SearchSearchAds360StreamResponse> stream = searchAds360ServiceClient . searchStreamCallable (). call ( request ); for ( SearchSearchAds360StreamResponse response : stream ) { for ( SearchAds360Row element : response . getResultsList ()) { System . out . printf ( "Customer found with ID %d%n" + "\tdescriptive_name: %s%n" + "\taccount_type: %s%n" + "\tis_manager: %s%n" + "\tmanager_id: %d%n" + "\tmanager_descriptive_name: %s%n" + "\tsub_manager_id: %d%n" + "\tsub_manager_descriptive_name: %s%n" + "\tassociate_manager_id: %d%n" + "\tassociate_manager_descriptive_name: %s%n" + "\taccount_level: %s%n" , element . getCustomer (). getId (), element . getCustomer (). getDescriptiveName (), element . getCustomer (). getAccountType (), element . getCustomer (). getManager (), element . getCustomer (). getManagerId (), element . getCustomer (). getManagerDescriptiveName (), element . getCustomer (). getSubManagerId (), element . getCustomer (). getSubManagerDescriptiveName (), element . getCustomer (). getAssociateManagerId (), element . getCustomer (). getAssociateManagerDescriptiveName (), element . getCustomer (). getAccountLevel ()); } } } }


