بصفتك مشرفًا في "إعلانات Google"، يمكنك إدارة دعوات وصول المستخدمين إلى حساب "إعلانات Google".
دعوة مستخدمين
يمكنك إرسال دعوة بالبريد الإلكتروني إلى مستخدم جديد كجزء من إدارة الوصول إلى حساب "إعلانات Google".
ويتم ذلك عن طريق إنشاء CustomerUserAccessInvitation
جديدة باستخدام طريقة
MutateCustomerUserAccessInvitation
من
CustomerUserAccessInvitationService
. يجب أن يقبل المستخدم الذي تلقى الدعوة الدعوة يدويًا. يمكن للمستخدم أيضًا قبول الدعوة
باستخدام عنوان بريد إلكتروني بديل.
يوضح مقتطف الشفرة هذا كيفية إرسال دعوة:
لغة Java
// Constructs an access invitation. CustomerUserAccessInvitation invitation = CustomerUserAccessInvitation.newBuilder() .setEmailAddress(emailAddress) .setAccessRole(accessRole) .build(); // Constructs an operation to send the invitation. CustomerUserAccessInvitationOperation operation = CustomerUserAccessInvitationOperation.newBuilder().setCreate(invitation).build(); // Creates a CustomerUserAccessInvitationServiceClient. try (CustomerUserAccessInvitationServiceClient client = googleAdsClient.getLatestVersion().createCustomerUserAccessInvitationServiceClient()) { // Issues the request. MutateCustomerUserAccessInvitationResponse response = client.mutateCustomerUserAccessInvitation(String.valueOf(customerId), operation); // Prints some information about the result. System.out.printf( "Customer user access invitation was sent for customerId = " + "%d to email address = '%s' and access role = '%s'. The invitation resource " + "name is '%s'.%n", customerId, emailAddress, accessRole, response.getResult().getResourceName()); }
#C
MutateCustomerUserAccessInvitationRequest invitationRequest = new MutateCustomerUserAccessInvitationRequest() { CustomerId = customerId.ToString(), Operation = new CustomerUserAccessInvitationOperation() { Create = new CustomerUserAccessInvitation() { EmailAddress = emailAddress, AccessRole = accessRole }, } }; try { var response = service.MutateCustomerUserAccessInvitation(invitationRequest); Console.WriteLine("Customer user access invitation was sent for customerId = " + "{0} to email address = {1} and access role = {2}. The invitation resource " + "name is {3}.", customerId, emailAddress, accessRole, response.Result.ResourceName); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; }
لغة PHP
// Creates a customer user access invitation. $customerUserAccessInvitation = new CustomerUserAccessInvitation([ 'email_address' => $emailAddress, 'access_role' => AccessRole::value($accessRole) ]); // Creates a customer user access invitation operation. $customerUserAccessInvitationOperation = new CustomerUserAccessInvitationOperation(); $customerUserAccessInvitationOperation->setCreate($customerUserAccessInvitation); // Issues a mutate request to send the customer user access invitation and prints its // information. $customerUserAccessInvitationServiceClient = $googleAdsClient->getCustomerUserAccessInvitationServiceClient(); $response = $customerUserAccessInvitationServiceClient->mutateCustomerUserAccessInvitation( $customerId, $customerUserAccessInvitationOperation ); printf( "Customer user access invitation with resource name '%s' was sent from customer " . "ID %d to email address '%s' with access role '%s'.%s", $response->getResult()->getResourceName(), $customerId, $emailAddress, $accessRole, PHP_EOL );
لغة Python
invitation_operation = client.get_type( "CustomerUserAccessInvitationOperation" ) invitation = invitation_operation.create invitation.email_address = email_address invitation.access_role = client.enums.AccessRoleEnum[access_role].value response = service.mutate_customer_user_access_invitation( customer_id=customer_id, operation=invitation_operation ) print( "Customer user access invitation was sent for " f"customer ID: '{customer_id}', " f"email address {email_address}, and " f"access role {access_role}. The invitation resource name is: " f"{response.result.resource_name}" )
Ruby
operation = client.operation.create_resource.customer_user_access_invitation do |inv| inv.email_address = email_address inv.access_role = access_role end # Issues a mutate request to get the response. response = client.service.customer_user_access_invitation.mutate_customer_user_access_invitation( customer_id: customer_id, operation: operation, ) # Prints out information of the created invitation. puts "Customer user access invitation was sent for customerId = #{customer_id} " \ "email address = '#{email_address}', " \ "access role = '#{access_role}'."
Perl
sub invite_user_with_access_role { my ($api_client, $customer_id, $email_address, $access_role) = @_; # Create the user access invitation. my $user_access_invitation = Google::Ads::GoogleAds::V13::Resources::CustomerUserAccessInvitation->new({ emailAddress => $email_address, accessRole => $access_role }); # Create the user access invitation operation. my $invitation_operation = Google::Ads::GoogleAds::V13::Services::CustomerUserAccessInvitationService::CustomerUserAccessInvitationOperation ->new({create => $user_access_invitation}); # Send the user access invitation. my $invitation_response = $api_client->CustomerUserAccessInvitationService()->mutate({ customerId => $customer_id, operation => $invitation_operation }); printf "Customer user access invitation was sent for customerId = %d " . "to email address = '%s' and access role = '%s'. " . "The invitation resource name is '%s'.\n", $customer_id, $email_address, $access_role, $invitation_response->{result}{resourceName}; return 1; }
إلغاء الدعوات
يمكنك إلغاء الدعوة عن طريق إزالة CustomerUserAccessInvitation
باستخدام طريقة MutateCustomerUserAccessInvitation
في
CustomerUserAccessInvitationService
.
استرداد دعوات المستخدمين
يمكنك استرداد قائمة دعوات المستخدمين في انتظار المراجعة عن طريق إنشاء عبارة لغة طلب البحث في "إعلانات Google" للاستعلام عن جميع كيانات CustomerUserAccessInvitation
المرتبطة بالرقم التعريفي للعميل. في ما يلي طلب بحث نموذجي:
SELECT
customer_user_access_invitation.invitation_id,
customer_user_access_invitation.email_address,
customer_user_access_invitation.access_role,
customer_user_access_invitation.invitation_status,
customer_user_access_invitation.creation_date_time
FROM
customer_user_access_invitation
يمكنك إضافة شروط فلترة إضافية لاسترداد مجموعات فرعية من الدعوات.
على سبيل المثال، تتمثل إحدى حالات الاستخدام الشائعة في استرداد قائمة دعوات المستخدمين
التي في انتظار المراجعة. ويمكن تحقيق ذلك من خلال الفلترة للوصول إلى
customer_user_access_invitation.invitation_status = PENDING
:
لغة Java
String query = "SELECT" + " customer_user_access_invitation.invitation_id, " + " customer_user_access_invitation.email_address, " + " customer_user_access_invitation.access_role, " + " customer_user_access_invitation.creation_date_time " + "FROM " + " customer_user_access_invitation " + "WHERE " + " customer_user_access_invitation.invitation_status = PENDING"; SearchPagedResponse response = client.search(String.valueOf(customerId), query); for (GoogleAdsRow row : response.iterateAll()) { System.out.printf( "A pending invitation with invitation ID = %d, " + "email address = '%s', access role = '%s' and created on %s" + " was found.%n", row.getCustomerUserAccessInvitation().getInvitationId(), row.getCustomerUserAccessInvitation().getEmailAddress(), row.getCustomerUserAccessInvitation().getAccessRole(), row.getCustomerUserAccessInvitation().getCreationDateTime()); }
#C
// Create the search query. string query = @"SELECT customer_user_access_invitation.invitation_id, customer_user_access_invitation.email_address, customer_user_access_invitation.access_role, customer_user_access_invitation.creation_date_time FROM customer_user_access_invitation WHERE customer_user_access_invitation.invitation_status=PENDING"; try { // Issue a search request. googleAdsService.SearchStream(customerId.ToString(), query, delegate (SearchGoogleAdsStreamResponse resp) { foreach (GoogleAdsRow googleAdsRow in resp.Results) { Console.WriteLine("A pending invitation with invitation ID = {0}, " + "email address = '{1}', access role = '{2}' and created on {3}" + " was found.", googleAdsRow.CustomerUserAccessInvitation.InvitationId, googleAdsRow.CustomerUserAccessInvitation.EmailAddress, googleAdsRow.CustomerUserAccessInvitation.AccessRole, googleAdsRow.CustomerUserAccessInvitation.CreationDateTime ); } } ); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; }
لغة PHP
// Creates a query to find pending customer user access invitations. $query = 'SELECT customer_user_access_invitation.invitation_id, ' . 'customer_user_access_invitation.email_address, ' . 'customer_user_access_invitation.access_role, ' . 'customer_user_access_invitation.creation_date_time ' . 'FROM customer_user_access_invitation ' . 'WHERE customer_user_access_invitation.invitation_status = PENDING'; // Issues a search stream request. $response = $googleAdsServiceClient->searchStream($customerId, $query); // Iterates over all rows and prints the requested field values for the customer user // access invitation in each row. foreach ($response->iterateAllElements() as $googleAdsRow) { /** @var GoogleAdsRow $googleAdsRow */ printf( "A pending invitation with invitation ID %d, email address '%s', access role " . "'%s' created on '%s' was found.%s", $googleAdsRow->getCustomerUserAccessInvitation()->getInvitationId(), $googleAdsRow->getCustomerUserAccessInvitation()->getEmailAddress(), AccessRole::name($googleAdsRow->getCustomerUserAccessInvitation()->getAccessRole()), $googleAdsRow->getCustomerUserAccessInvitation()->getCreationDateTime(), PHP_EOL ); }
لغة Python
query = """ SELECT customer_user_access_invitation.invitation_id, customer_user_access_invitation.email_address, customer_user_access_invitation.access_role, customer_user_access_invitation.creation_date_time FROM customer_user_access_invitation WHERE customer_user_access_invitation.invitation_status = PENDING""" stream = googleads_service.search_stream( customer_id=customer_id, query=query ) for batch in stream: for row in batch.results: invite = row.customer_user_access_invitation print( "A pending invitation with " f"invitation ID: '{invite.invitation_id}', " f"email address: {invite.email_address}, " f"access role: {invite.access_role}, and " f"created on: {invite.creation_date_time} was found." )
Ruby
query = <<~QUERY SELECT customer_user_access_invitation.invitation_id, customer_user_access_invitation.email_address, customer_user_access_invitation.access_role, customer_user_access_invitation.creation_date_time FROM customer_user_access_invitation WHERE customer_user_access_invitation.invitation_status = PENDING QUERY # Execute the query to fetch results from the API. response = client.service.google_ads.search( customer_id: customer_id, query: query, page_size: PAGE_SIZE ) # Process the results and output changes. response.each do |row| invitation = row.customer_user_access_invitation puts "A pending invitation with " \ "invitation ID = #{invitation.invitation_id}, " \ "email address = '#{invitation.email_address}', " \ "access role = '#{invitation.access_role}' " \ " and created on #{invitation.creation_date_time} was found." end
Perl
sub get_pending_invitations { my ($api_client, $customer_id) = @_; # Create a query that retrieves the pending invitations. my $search_query = "SELECT customer_user_access_invitation.invitation_id, " . "customer_user_access_invitation.email_address, " . "customer_user_access_invitation.access_role, " . "customer_user_access_invitation.creation_date_time " . "FROM customer_user_access_invitation " . "WHERE customer_user_access_invitation.invitation_status= 'PENDING'"; # Create a search Google Ads stream request that will retrieve the pending # invitations. my $search_stream_request = Google::Ads::GoogleAds::V13::Services::GoogleAdsService::SearchGoogleAdsStreamRequest ->new({ customerId => $customer_id, query => $search_query, }); # Get the GoogleAdsService. my $google_ads_service = $api_client->GoogleAdsService(); my $search_stream_handler = Google::Ads::GoogleAds::Utils::SearchStreamHandler->new({ service => $google_ads_service, request => $search_stream_request }); # Issue a search request and process the stream response to print the requested # field values for the pending invitation in each row. $search_stream_handler->process_contents( sub { my $google_ads_row = shift; my $access_invitation = $google_ads_row->{customerUserAccessInvitation}; printf "A pending invitation with invitation ID = %d, email address = '%s', " . "access role = '%s' and created on %s was found.\n", $access_invitation->{invitationId}, $access_invitation->{emailAddress}, $access_invitation->{accessRole}, $access_invitation->{creationDateTime}; }); return 1; }