인증 및 승인

다른 Google API와 마찬가지로 Google Ads API는 인증 및 승인에 OAuth 2.0 프로토콜을 사용합니다. OAuth 2.0을 사용하면 Google Ads API 클라이언트 앱이 사용자의 로그인 정보를 처리하거나 저장하지 않고도 사용자의 Google Ads 계정에 액세스할 수 있습니다.

Google Ads 액세스 모델 이해하기

Google Ads API를 효과적으로 사용하려면 Google Ads 액세스 모델의 작동 방식을 이해해야 합니다. Google Ads 액세스 모델 가이드를 읽어보시기 바랍니다.

OAuth 워크플로

Google Ads API를 사용할 때 일반적으로 사용되는 워크플로는 세 가지입니다.

서비스 계정 흐름

워크플로에 사람의 상호작용이 필요하지 않은 경우 이 워크플로를 사용하는 것이 좋습니다. 이 워크플로에는 사용자가 Google Ads 계정에 서비스 계정을 추가하는 구성 단계가 필요합니다. 그러면 앱이 서비스 계정의 사용자 인증 정보를 사용하여 사용자의 Google Ads 계정을 관리할 수 있습니다.

Perl 클라이언트 라이브러리에서 서비스 계정으로 자체 사용자 인증 정보를 사용하여 API 액세스를 위한 OAuth2를 설정하는 방법은 다음과 같습니다.

  1. OAuth2 사용자 인증 정보 만들기:

    안내에 따라 서비스 계정 및 *.JSON 파일을 생성합니다.

  2. 클라이언트 라이브러리 설정:

    구성에서 비공개 키 JSON 경로를 설정합니다. googleads.properties 파일을 사용하는 경우 다음을 추가합니다.

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    

    환경 변수를 사용하는 경우 Bash 구성 또는 환경에 다음을 추가합니다.

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=PRIVATE_KEY_FILE_PATH
    

    자세한 내용은 서비스 계정 워크플로 가이드를 참고하세요.

단일 사용자 인증 흐름

서비스 계정을 사용할 수 없는 경우 이 워크플로를 사용할 수 있습니다. 이 워크플로는 두 가지 구성 단계가 필요합니다.

  1. Google Ads API를 사용하여 관리할 모든 계정에 대한 액세스 권한을 단일 사용자에게 부여합니다. 일반적인 방법은 사용자에게 Google Ads API 관리자 계정에 대한 액세스 권한을 부여하고 해당 관리자 계정 아래에 모든 Google Ads 계정을 연결하는 것입니다.
  2. 사용자는 generate_user_credentials.pl 코드 예시를 실행하여 앱이 사용자를 대신해 모든 Google Ads 계정을 관리하도록 승인합니다.

다음 단계에서는 대화형 코드 예시를 실행하며, 이 예시에서는 입력을 제공해야 합니다.

  1. 터미널에서 examples 디렉터리의 generate_user_credentials.pl 예시를 실행합니다. 실행하기 전에 예시에서 INSERT_XXX_HERE 값을 수정하거나 클라이언트 ID의 경우 -client_id, 클라이언트 보안 비밀번호의 경우 -client_secret 명령줄 인수를 사용할 수 있습니다.

    perl generate_user_credentials.pl -client_id {client_id} -client_secret {client_secret}
    
  2. 이 코드 예시에서는 앱이 사용자를 대신하여 Google Ads 계정에 액세스하도록 승인해야 하는 URL을 방문하라는 메시지를 표시합니다.

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline&client_id=...
    

    비공개 브라우저 세션 또는 시크릿 모드 창에서 URL로 이동합니다. Google Ads에 액세스하는 데 사용하는 Google 계정으로 로그인합니다. 일반적으로 이는 계정 계층 구조 내에서 관리해야 하는 모든 계정이 포함된 Google Ads 관리자 계정에 액세스할 수 있는 이메일 계정입니다. OAuth 2.0 동의 화면에서 계속을 클릭합니다.

    OAuth 2.0 동의 화면

    승인이 성공했음을 나타내는 메시지가 있는 페이지로 리디렉션됩니다.

    Authorization code was successfully retrieved.
    
  3. 코드 예시를 실행 중인 콘솔로 돌아갑니다. 코드 예가 완료되어 갱신 토큰과 몇 가지 안내가 표시되고 클라이언트 라이브러리를 구성하는 데 필요한 안내가 표시됩니다.

    Replace the following keys and values in your googleads.properties configuration file:
    
    clientId==***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. Ctrl + C를 눌러 프로세스를 종료합니다. 그런 다음 생성된 새로고침 토큰을 클라이언트 ID 및 클라이언트 보안 비밀과 함께 googleads.properties 파일에 복사하거나 런타임에 라이브러리를 인스턴스화하는 경우 사용할 수 있도록 다른 곳에 저장합니다.

googleads.properties에서 다음을 설정하여 사용자의 OAuth 2.0 사용자 인증 정보를 사용하여 라이브러리를 초기화할 수 있습니다.

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

또는 환경 변수를 사용합니다.

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

자세한 내용은 단일 사용자 인증 워크플로 가이드를 참고하세요.

다중 사용자 인증 흐름

앱에서 사용자가 로그인하고 앱이 사용자를 대신하여 Google Ads 계정을 관리하도록 승인할 수 있는 경우 이 워크플로를 사용하는 것이 좋습니다. 앱이 OAuth 2.0 사용자 인증 정보를 빌드하고 관리합니다.

Perl의 경우 일반적으로 애플리케이션이 OAuth 2.0 리디렉션 및 토큰 관리를 처리하는 웹 애플리케이션 흐름을 구현합니다. 사용자가 애플리케이션을 통해 인증하고 애플리케이션이 사용자의 갱신 토큰을 저장하고 사용하여 사용자를 대신하여 API를 호출합니다.

획득한 사용자 인증 정보를 사용하는 구성은 단일 사용자 인증 흐름과 동일합니다.

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
developerToken=DEVELOPER_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

또는 환경 변수를 사용합니다.

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_DEVELOPER_TOKEN=DEVELOPER_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

자세한 내용은 다중 사용자 인증 워크플로 가이드를 참고하세요.

사용자가 여러 계정을 관리하는 경우 어떻게 해야 하나요?

사용자가 계정에 직접 액세스하거나 Google Ads 관리자 계정을 통해 두 개 이상의 Google Ads 계정을 관리하는 것은 일반적입니다. Perl 클라이언트 라이브러리는 이러한 사례를 처리하는 방법을 보여주는 예시를 제공합니다.

  1. get_account_hierarchy.pl 예에서는 Google Ads 관리자 계정의 모든 계정 목록을 가져오는 방법을 보여줍니다.
  2. list_accessible_customers.pl 예에서는 사용자가 직접 액세스할 수 있는 모든 계정의 목록을 가져오는 방법을 보여줍니다. 이러한 계정은 googleads.properties 파일의 LoginCustomerId 설정 또는 GOOGLE_ADS_LOGIN_CUSTOMER_ID 환경 변수의 유효한 값으로 사용할 수 있습니다.