Verificação de identidade do anunciante

Para oferecer aos usuários um ecossistema de publicidade seguro e confiável, além de obedecer às regulamentações que surgem, o Google agora exige que os anunciantes concluam um ou mais programas de verificação.

Se você precisar concluir um programa de verificação, um prazo poderá ser definido para o processo de verificação. Se o prazo expirar antes da conclusão da verificação, sua conta poderá ser pausada.

Você também pode passar pela verificação de forma proativa, sem que isso seja exigido. O IdentityVerificationService oferece métodos para fazer o seguinte:

  • Recuperar o status do processo de verificação de uma conta de cliente, incluindo os prazos
  • Iniciar um processo de verificação

Recuperar o status da verificação

Para recuperar o status do processo de verificação de identidade do anunciante de uma conta de cliente, chame o GetIdentityVerification método:

Java

private IdentityVerification getIdentityVerification(
    long customerId, IdentityVerificationServiceClient identityVerificationServiceClient) {
  GetIdentityVerificationResponse response =
      identityVerificationServiceClient.getIdentityVerification(Long.toString(customerId));
  if (response.getIdentityVerificationCount() == 0) {
    return null;
  }
  IdentityVerification identityVerification = response.getIdentityVerification(0);
  String deadline =
      identityVerification
          .getIdentityVerificationRequirement()
          .getVerificationCompletionDeadlineTime();
  IdentityVerificationProgress progress = identityVerification.getVerificationProgress();
  System.out.printf(
      "Account %d has a verification completion deadline of '%s' and status '%s' for advertiser"
          + " identity verification.%n",
      customerId, deadline, progress.getProgramStatus());
  return identityVerification;
}

      

C#

private static IdentityVerification GetIdentityVerification(
        GoogleAdsClient client, long customerId)
{
    IdentityVerificationServiceClient identityVerificationService =
        client.GetService(Services.V25.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

private static function getIdentityVerification(
    int $customerId,
    IdentityVerificationServiceClient $identityVerificationServiceClient
) {
    // Gets an identity verification response.
    $response = $identityVerificationServiceClient->getIdentityVerification(
        GetIdentityVerificationRequest::build($customerId)
    );
    if (empty($response->getIdentityVerification())) {
        return null;
    }

    // Prints some details about the retrieved identity verification.
    /** @var IdentityVerification $identityVerification */
    $identityVerification = $response->getIdentityVerification()->getIterator()->current();
    $deadline = $identityVerification->getIdentityVerificationRequirement()
        ->getVerificationCompletionDeadlineTime();
    $progress = $identityVerification->getVerificationProgress();
    printf(
        "Account %d has a verification completion deadline of '%s' and status '%s' for"
        . " advertiser identity verification.%s",
        $customerId,
        $deadline,
        IdentityVerificationProgramStatus::name($progress->getProgramStatus()),
        PHP_EOL
    );

    return $identityVerification;
}
      

Python

def get_identity_verification(
    client: GoogleAdsClient, customer_id: str
) -> Optional[IdentityVerification]:
    """Retrieves the status of the advertiser identity verification process.

    Args:
        client: An initialized GoogleAdsClient instance.
        customer_id: The client customer ID str.

    Returns:
        either an IdentityVerification instance, or None
    """
    service: IdentityVerificationServiceClient = client.get_service(
        "IdentityVerificationService"
    )
    response: GetIdentityVerificationResponse = (
        service.get_identity_verification(customer_id=customer_id)
    )

    # Check if the response contains any indentity verifications. If not, then
    # None will be returned.
    if response.identity_verification:
        identity_verification_data: IdentityVerification = (
            response.identity_verification[0]
        )
        deadline: str = (
            identity_verification_data.identity_verification_requirement.verification_completion_deadline_time
        )
        # progress is an enum member
        progress: (
            IdentityVerificationProgramStatusEnum.IdentityVerificationProgramStatus
        ) = identity_verification_data.verification_progress.program_status

        print(
            f"Account {customer_id} has a verification completion deadline "
            "of {deadline} and status {progress.name} for advertiser identity "  # Use .name for string representation of enum
            "verification."
        )

        return identity_verification_data
      

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;
}
      

curl

Se a conta de cliente estiver inscrita no programa obrigatório de verificação de identidade do anunciante, o serviço retornará uma resposta não vazia contendo uma lista de IdentityVerification objetos. Uma resposta vazia indica que a conta de cliente não precisa passar pela verificação de identidade do anunciante.

A API Google Ads só oferece suporte ao programa ADVERTISER_IDENTITY_VERIFICATION. Portanto, esse será o único item na lista.

Um objeto IdentityVerification contém as seguintes propriedades:

  • Um IdentityVerificationRequirement que descreve os prazos para iniciar e concluir o processo de verificação

  • Um IdentityVerificationProgress que descreve o status atual do processo de verificação. Ele também pode incluir o URL de ação para o usuário concluir o processo de verificação.

Iniciar o processo de verificação

Se uma conta de cliente estiver inscrita no programa obrigatório de verificação de identidade do anunciante (ou seja, GetIdentityVerification retornou uma resposta não vazia com um prazo para a conclusão do processo de verificação) ou se você quiser passar pela verificação proativa quando GetIdentityVerification retornar uma resposta vazia, inicie uma sessão de verificação chamando StartIdentityVerification:

Java

private void startIdentityVerification(
    long customerId, IdentityVerificationServiceClient identityVerificationServiceClient) {
  // Sends a request to start the identity verification process.
  identityVerificationServiceClient.startIdentityVerification(
      Long.toString(customerId), IdentityVerificationProgram.ADVERTISER_IDENTITY_VERIFICATION);
}
      

C#

private static void StartIdentityVerification(GoogleAdsClient client, long customerId)
{
    IdentityVerificationServiceClient identityVerificationService =
        client.GetService(Services.V25.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

private static function startIdentityVerification(
    int $customerId,
    IdentityVerificationServiceClient $identityVerificationServiceClient
): void {
    // Sends a request to start the identity verification process.
    $identityVerificationServiceClient->startIdentityVerification(
        StartIdentityVerificationRequest::build(
            $customerId,
            IdentityVerificationProgram::ADVERTISER_IDENTITY_VERIFICATION
        )
    );
}
      

Python

def start_identity_verification(
    client: GoogleAdsClient, customer_id: str
) -> None:
    """Starts the identity verification process.

    Args:
        client: An initialized GoogleAdsClient instance.
        customer_id: The client customer ID str.
    """
    service: IdentityVerificationServiceClient = client.get_service(
        "IdentityVerificationService"
    )
    # Sends a request to start the identity verification process.
    # The verification_program argument expects an IdentityVerificationProgramEnum value (int).
    service.start_identity_verification(
        customer_id=customer_id,
        verification_program=client.enums.IdentityVerificationProgramEnum.ADVERTISER_IDENTITY_VERIFICATION.value,
    )
      

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::V25::Services::IdentityVerificationService::StartIdentityVerificationRequest
    ->new({
      customerId          => $customer_id,
      verificationProgram => ADVERTISER_IDENTITY_VERIFICATION
    });

  $api_client->AdvertiserIdentityVerificationService()
    ->start_identity_verification($request);
}
      

curl

Isso só vai funcionar se não houver outra sessão de verificação em andamento. Se uma sessão já estiver em andamento, a chamada retornará um IdentityVerificationError.VERIFICATION_ALREADY_STARTED erro. Depois de iniciar uma sessão de verificação, as chamadas subsequentes para GetIdentityVerification vão retornar o URL de ação para o usuário concluir o processo de verificação e o tempo de expiração do URL de ação.

Depois que o tempo de expiração passar, você poderá chamar StartIdentityVerification novamente para iniciar uma nova sessão de verificação.