Admob에서 OAuth2 인증 및 웹 인증 없이 데이터 수집

개요


다음은 Admob에서 데이터를 가져오기 전의 일련의 절차입니다.대량 확보 등 정기적으로 데이터를 취득하는 용도로 사용하고자 하기 때문에 웹 인증이 필요 없는 방법으로 설정·시행한다.

절차의 대략적인 절차

  • 구글의 개발자 컨트롤러에서 필요한 정보를 설정하여 클라이언트 ID와 클라이언트 기밀을 얻는다.
  • 구글의 개발자 콘솔에서 AdSense Management API를 사용합니다.
  • 받은 클라이언트 ID에서 인증 코드를 가져옵니다.
  • 인증번호, 클라이언트 ID 및 클라이언트 기밀을 사용하여 리셋 토큰을 획득합니다.
  • 클라이언트 ID와 클라이언트 기밀, 갱신 토큰이 있는 경우 액세스 토큰을 획득하고 API를 실행할 수 있습니다.
  • 주안점

  • AdSense Management API에서 데이터를 가져올 수 있습니다.
  • 부분 설정은 일반 웹에서 온 OAuth와 다릅니다.콘솔에 등록할 때 응용 프로그램의 종류를 다른 종류 등으로 설정합니다.
  • API를 한 번만 받으면 접속 영패만 찾으면 되지만 접속 영패는 유효기간이 있기 때문에 대량 연속 획득에 사용할 경우 갱신 영패를 받아야 한다.
  • 상세 단계


    클라이언트 ID와 클라이언트 기밀을 가져옵니다.


    개발자 콘솔을 열고 인증 정보를 엽니다.만들기를 누릅니다.

    처음으로 프로젝트를 해야 돼서 했어요.

    인증 정보를 반환하고 인증 정보를 작성합니다.종류는 OAuth 클라이언트 ID를 선택합니다.

    서비스를 설정해야 하기 때문에'설정동의화면'을 누릅니다.

    메일 주소가 입력되었습니다.적절한 서비스 이름을 설정합니다.다른 것은 입력할 필요가 없다.

    응용 프로그램 종류를 선택할 수 있기 때문에 '기타' 를 설정했다.

    OAuth 클라이언트의 고객 ID 및 기밀 정보를 가져옵니다.적어.

    AdSense Management API 사용


    라이브러리에서 AdSense 검색을 사용하여 AdSense Management API를 선택합니다.

    AdSense Management API를 설정합니다.

    인증 코드 가져오기


    브라우저에서 다음 URL을 엽니다.client_ID에서 받은 클라이언트 ID를 설정합니다.
    https://accounts.google.com/o/oauth2/auth?client_id=<<ここにクライアントIDを入れる>>&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fadsense&response_type=code&access_type=offline
    
    인증 화면이 나타납니다.사용 권한을 선택합니다.

    인증 코드를 받을 수 있습니다.

    리셋 토큰을 수령


    curl을 사용할 수 있는 컨트롤러에서 다음 명령을 실행합니다.
    curl --data "code=<<ここに認証コードを入れる>>" --data "client_id=<<ここにクライアントIDを入れる>>" --data "client_secret=<<ここにクライアントシークレットを入れる>>" --data "redirect_uri=urn:ietf:wg:oauth:2.0:oob" --data "grant_type=authorization_code" --data "access_type=offline" https://www.googleapis.com/oauth2/v4/token
    
    방문 영패와 리셋 영패를 획득할 수 있습니다.레코드 갱신 영패.
    {
     "access_token": "<<アクセストークン>>",
     "token_type": "Bearer",
     "expires_in": 3600,
     "refresh_token": "<<リフレッシュトークン>>"
    }
    

    배치 프로세스에서 API 호출


    리셋 토큰에서 액세스 토큰을 가져오고 API 문서를 기반으로 API를 호출합니다.다음은 PHP로 얻은 기간 데이터의 예입니다.API 자체 사양은 다음을 참조하십시오.
    https://developers.google.com/adsense/management/v1.4/reference/?hl=ja
    define('CLIENT_ID','<<クライアントID>>');
    define('CLIENT_SECRET','<<クライアントシークレット>>');
    define('RERESH_TOKEN','<<リフレッシュトークン>>');
    
    $cmd='curl --data "refresh_token='.RERESH_TOKEN.'" --data "client_id='.CLIENT_ID.'" --data "client_secret='.CLIENT_SECRET.'" --data "grant_type=refresh_token" https://www.googleapis.com/oauth2/v4/token';
    exec($cmd,$output,$return_var);
    $output_str="";
    foreach($output as $val){
        $output_str.=$val;
    }
    $data=json_decode($output_str,true);
    
    $params = array(
        'access_token' => $data['access_token'],
        'startDate' => '<<取得開始日>>',
        'endDate' => '<<取得終了日>>',
        'dimension' => 'AD_UNIT_NAME',
        'metric' => 'EARNINGS',
        'useTimezoneReporting' => 'true',
    );
    
    $res = file_get_contents('https://www.googleapis.com/adsense/v1.4/reports?' . http_build_query($params));
    $data=json_decode($res,true);
    var_dump($data);
    

    참고 자료


    AdWords API의 OAuth 인증 프로세스
    https://developers.google.com/adwords/api/docs/guides/authentication?hl=ja

    좋은 웹페이지 즐겨찾기