אימות זהות המפרסם

כדי לספק למשתמשים סביבת פרסום בטוחה ואמינה, וכדי לפעול בהתאם לתקנות החדשות, Google דורשת עכשיו מהמפרסמים להשלים תוכנית אימות אחת או יותר.

אם אתם נדרשים להשלים תוכנית אימות, יכול להיות שיוגדר תאריך יעד לתהליך האימות. אם המועד האחרון יעבור לפני שתשלימו את האימות, יכול להיות שהחשבון שלכם יושהה.

אתם יכולים גם לעבור אימות באופן יזום בלי שתידרשו לעשות זאת. IdentityVerificationService מציע שיטות לביצוע הפעולות הבאות:

  • אחזור הסטטוס של תהליך האימות בחשבון לקוח, כולל מועדים אחרונים
  • להתחיל תהליך אימות

אחזור סטטוס האימות

כדי לאחזר את הסטטוס של תהליך אימות זהות המפרסם בחשבון לקוח, צריך להתקשר לשיטה GetIdentityVerification:

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

אם חשבון הלקוח רשום לתוכנית החובה לאימות זהות המפרסם, השירות מחזיר תגובה לא ריקה שמכילה רשימה של אובייקטים מסוג IdentityVerification. תגובה ריקה מציינת שחשבון הלקוח לא נדרש לעבור אימות זהות של המפרסם.

‫Google Ads API תומך רק בתוכנית ADVERTISER_IDENTITY_VERIFICATION, ולכן זה יהיה הפריט היחיד ברשימה.

אובייקט IdentityVerification מכיל את המאפיינים הבאים:

  • IdentityVerificationRequirement שבו מתוארים המועדים האחרונים להתחלת תהליך האימות ולהשלמתו.

  • IdentityVerificationProgress שמתאר את הסטטוס הנוכחי של תהליך האימות: יכול להיות שהוא יכלול גם את כתובת ה-URL של הפעולה שהמשתמש צריך לבצע כדי להשלים את תהליך האימות.

התחל את תהליך האימות

אם חשבון לקוח רשום בתוכנית אימות זהות המפרסם (כלומר, GetIdentityVerification הוחזרה תגובה לא ריקה עם תאריך אחרון להשלמת תהליך האימות), או אם אתם רוצים לעבור אימות יזום כש-GetIdentityVerification מחזירה תגובה ריקה, אתם יכולים להתחיל סשן אימות על ידי קריאה ל-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

הפעולה הזו תצליח רק אם אין סשן אימות אחר שמתבצע כרגע. אם כבר יש סשן פעיל, הקריאה מחזירה שגיאת IdentityVerificationError.VERIFICATION_ALREADY_STARTED. אחרי שמתחילים סשן אימות, קריאות עוקבות ל-GetIdentityVerification יחזירו את כתובת ה-URL של הפעולה שהמשתמש צריך לבצע כדי להשלים את תהליך האימות, ואת מועד התפוגה של כתובת ה-URL של הפעולה.

אחרי שפרק הזמן הקצוב לתפוגה יחלוף, תוכלו להתקשר שוב אל StartIdentityVerification כדי להתחיל סשן אימות חדש.