To provide a safe and trustworthy ad ecosystem for users, and to comply with
emerging regulations, Google now requires advertisers to complete one or more
verification programs
.
If you're required to complete a verification program, a deadline might be set
for the verification process. If the deadline is passed without verification
completion, your account could be paused.
You can also proactively undergo verification without being required to do so.
The
IdentityVerificationService
offers methods to do the following:
- Retrieve the status of the verification process for a customer account,
including any deadlines
- Start a verification process
Retrieve verification status
To retrieve the status of the advertiser identity verification process for a
customer account, call the
GetIdentityVerification
method:
Java
This example is not yet available in Java; you can take a look at the other languages.
C#
private static IdentityVerification GetIdentityVerification(
GoogleAdsClient client, long customerId)
{
IdentityVerificationServiceClient identityVerificationService =
client.GetService(Services.V16.IdentityVerificationService);
try {
GetIdentityVerificationResponse response =
identityVerificationService.GetIdentityVerification(
new GetIdentityVerificationRequest()
{
CustomerId = customerId.ToString()
}
);
if (response.IdentityVerification.Count == 0)
{
return null;
}
IdentityVerification identityVerification = response.IdentityVerification[0];
string deadline =
identityVerification.IdentityVerificationRequirement.VerificationCompletionDeadlineTime;
IdentityVerificationProgress identityVerificationProgress =
identityVerification.VerificationProgress;
Console.WriteLine($"Account {customerId} has a verification completion " +
$"deadline of {deadline} and status " +
$"{identityVerificationProgress.ProgramStatus} for advertiser identity " +
"verification.");
return identityVerification;
} catch (GoogleAdsException e)
{
Console.WriteLine("Failure:");
Console.WriteLine($"Message: {e.Message}");
Console.WriteLine($"Failure: {e.Failure}");
Console.WriteLine($"Request ID: {e.RequestId}");
throw;
}
}
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
This example is not yet available in Python; you can take a look at the other languages.
Ruby
def get_identity_verification(client, customer_id)
response = client.service.identity_verification.get_identity_verification(
customer_id: customer_id
)
return nil if response.nil? || response.identity_verification.empty?
identity_verification = response.identity_verification.first
deadline = identity_verification.
identity_verification_requirement.
verification_completion_deadline_time
progress = identity_verification.verification_progress
puts "Account #{customer_id} has a verification completion deadline " \
"of #{deadline} and status #{progress.program_status} for advertiser " \
"identity verification."
identity_verification
end
Perl
sub get_identity_verification {
my ($api_client, $customer_id) = @_;
my $response = $api_client->IdentityVerificationService()->get({
customerId => $customer_id
});
if (!defined $response->{identityVerification}) {
printf "Account %s does not require advertiser identity verification.",
$customer_id;
return;
}
my $identity_verification = $response->{identityVerification}[0];
my $deadline = $identity_verification->{identityVerificationRequirement}
{verificationCompletionDeadlineTime};
my $identity_verification_progress =
$identity_verification->{verificationProgress};
printf "Account %s has a verification completion deadline of %s and status " .
"%s for advertiser identity verification.", $customer_id, $deadline,
$identity_verification_progress->{programStatus};
return $identity_verification;
}
If the customer account is enrolled in the mandatory advertiser identity
verification program, the service returns a non-empty response containing a
list of
IdentityVerification
objects. An
empty response indicates that the customer account is not required to undergo
advertiser identity verification.
As of v16, the Google Ads API only supports the
ADVERTISER_IDENTITY_VERIFICATION
program, so that would be the only item in the list.
An
IdentityVerification
object contains the following properties:
Start verification process
If a customer account is enrolled in the mandatory advertiser identity
verification program —
GetIdentityVerification
returned a non-empty
response with a deadline for the verification process completion, you can start
a verification session by calling
StartIdentityVerification
:
Java
This example is not yet available in Java; you can take a look at the other languages.
C#
private static void StartIdentityVerification(GoogleAdsClient client, long customerId)
{
IdentityVerificationServiceClient identityVerificationService =
client.GetService(Services.V16.IdentityVerificationService);
StartIdentityVerificationRequest request = new StartIdentityVerificationRequest()
{
CustomerId = customerId.ToString(),
VerificationProgram = IdentityVerificationProgram.AdvertiserIdentityVerification
};
try {
identityVerificationService.StartIdentityVerification(request);
} catch (GoogleAdsException e)
{
Console.WriteLine("Failure:");
Console.WriteLine($"Message: {e.Message}");
Console.WriteLine($"Failure: {e.Failure}");
Console.WriteLine($"Request ID: {e.RequestId}");
throw;
}
}
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
This example is not yet available in Python; you can take a look at the other languages.
Ruby
def start_identity_verification(client, customer_id)
client.service.identity_verification.start_identity_verification(
customer_id: customer_id,
verification_program: :ADVERTISER_IDENTITY_VERIFICATION,
)
end
Perl
sub start_identity_verification {
my ($api_client, $customer_id) = @_;
my $request =
Google::Ads::GoogleAds::V16::Services::IdentityVerificationService::StartIdentityVerificationRequest
->new({
customerId => $customer_id,
verificationProgram => ADVERTISER_IDENTITY_VERIFICATION
});
$api_client->AdvertiserIdentityVerificationService()
->start_identity_verification($request);
}
This will only succeed if there isn't another verification session in progress;
once you have started a verification session, subsequent calls to
GetIdentityVerification
will return the action URL for the user to complete
the verification process and the expiration time of the action URL.
After the expiration time has passed, you can call
StartIdentityVerification
again to start a new verification session.