이 가이드에서는 항목을 포함한 인벤토리를 프로그래매틱 방식으로 보는 방법을 설명합니다. 앱, 광고 단위 등을 예로 들 수 있습니다
기본 요건
<ph type="x-smartling-placeholder">- </ph>
- 프로젝트 만들기
- 사용자 인증 정보 생성
앱 세부정보
AdMob을 통해 프로그래매틱 방식으로 앱의 세부정보와 설정을 볼 수 있습니다.
API(예: 앱 ID, 앱 스토어 ID, 플랫폼) 자세한 내용은
accounts.apps.list
광고 단위
광고 단위는 AdMob 광고 하나를 게재하여
있습니다. 추가
accounts.adUnits.list
를 참고하세요.
요청하기
첫 요청을 하는 방법에는 여러 가지가 있습니다.
Java 클라이언트 라이브러리
Java 클라이언트 라이브러리를 사용하는 요청
클라이언트 보안 비밀 파일을 로드하고 승인 사용자 인증 정보를 생성합니다.
이 단계를 처음 수행하면 확인 메시지가 표시됩니다. 수락하기 전에 다음 사항을 확인하세요. AdMob API에 액세스할 수 있는 Google 계정으로 로그인해야 합니다. 내 애플리케이션은 어느 계정을 대신하여든 데이터에 액세스할 수 있도록 승인됩니다. 님이 현재 로그인되어 있습니다.
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.util.Utils; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.util.store.DataStoreFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.admob.v1.AdMob; ... /** Directory to store user credentials. */ private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/admobapi_sample"); private static final HttpTransport HTTP_TRANSPORT = Utils.getDefaultTransport(); private static final JsonFactory JSON_FACTORY = Utils.getDefaultJsonFactory(); // Load client secrets JSON file. String pathToClientSecretsFile = "INSERT_PATH_TO_CLIENT_SECRETS"; GoogleClientSecrets clientSecrets = GoogleClientSecrets.load( JSON_FACTORY, Files.newBufferedReader(Paths.get(pathToClientSecretsFile), UTF_8) ); // Set up the authorization code flow. // // Note: providing a DataStoreFactory allows auth credentials to be cached, // so they survive multiple runs of the program. This avoids prompting the // user for authorization every time the access token expires, by remembering // the refresh token. ImmutableSet<String> READONLY_SCOPE = ImmutableSet.of("https://www.googleapis.com/auth/admob.readonly"); GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, READONLY_SCOPE) .setDataStoreFactory(dataStoreFactory) .build(); // Build installed application credential. Credential credential = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
승인된 AdMob 클라이언트를 만듭니다.
// Create an AdMob client instance. AdMob admob = new AdMob.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) .setApplicationName("admobapi-java-samples") .build();
앱 나열
ListAppsResponse response; String nextPageToken = null; do { // Create and execute the apps list request. response = adMob .accounts() .apps() .list(ACCOUNT_NAME) .setPageSize(PAGE_SIZE) .setPageToken(nextPageToken) .execute(); // Display apps. List<App> apps = response.getApps(); for (App app : apps) { AppLinkedAppInfo linkedAppInfo = app.getLinkedAppInfo(); System.out.printf( "App Name: %s, " + "App ID: %s, " + "App Platform: %s, " + "App Store ID: %s, " + "App Store Display Name: %s, " + "App Manual Info: %s%n", app.getName(), app.getAppId(), app.getPlatform(), linkedAppInfo == null ? "" : linkedAppInfo.getAppStoreId(), linkedAppInfo == null ? "" : linkedAppInfo.getDisplayName(), app.getManualAppInfo().getDisplayName()); } // Update the next page token. nextPageToken = response.getNextPageToken(); } while (nextPageToken != null && !nextPageToken.isEmpty());
광고 단위를 나열합니다.
ListAdUnitsResponse response; String nextPageToken = null; do { // Create and execute the ad units list request. response = adMob .accounts() .adUnits() .list(ACCOUNT_NAME) .setPageSize(PAGE_SIZE) .setPageToken(nextPageToken) .execute(); // Display ad units. List<AdUnit> adUnits = response.getAdUnits(); for (AdUnit adUnit : adUnits) { System.out.printf( "Ad Unit Display Name: %s, " + "Ad Unit Name: %s, " + "Ad Unit ID: %s, " + "Ad Unit Format: %s, " + "Ad Unit App ID: %s, " + "Ad Unit Ad Types: %s%n", adUnit.getDisplayName(), adUnit.getName(), adUnit.getAdUnitId(), adUnit.getAdFormat(), adUnit.getAppId(), adUnit.getAdTypes()); } // Update the next page token. nextPageToken = response.getNextPageToken(); } while (nextPageToken != null && !nextPageToken.isEmpty());
PHP 클라이언트 라이브러리
PHP 클라이언트 라이브러리를 사용하는 요청
클라이언트 보안 비밀 파일을 로드하고 승인된 AdMob 클라이언트를 만듭니다.
이 단계를 처음 수행하면 확인 메시지가 표시됩니다. 수락하기 전에 다음 사항을 확인하세요. AdMob API에 액세스할 수 있는 Google 계정으로 로그인해야 합니다. 내 애플리케이션은 어느 계정을 대신하여든 데이터에 액세스할 수 있도록 승인됩니다. 님이 현재 로그인되어 있습니다.
// Create an AdMob Client. $client = new Google_Client(); $client->addScope('https://www.googleapis.com/auth/admob.readonly'); $client->setApplicationName('AdMob API PHP Quickstart'); $client->setAccessType('offline'); // Be sure to replace the contents of client_secrets.json with your developer // credentials. $client->setAuthConfig('client_secrets.json'); // Create the URL for the authorization prompt. $authUrl = $client->createAuthUrl(); // Once the authorization prompt has been accepted, exchange the // authorization code for an access and refresh token. $client->authenticate($_GET['code']); $client->getAccessToken();
AdMob 서비스 객체를 만듭니다.
// Create an AdMob service object on which to run the requests. $service = new Google_Service_AdMob($client);
앱 나열
// Create the page token variable. $pageToken = ''; $optParams['pageSize'] = $maxPageSize; do { $optParams['pageToken'] = $pageToken; // Get list of apps. $response = $service->accounts_apps->listAccountsApps($accountName, $optParams); $apps = $response->getApps(); // Print list of apps. if (!empty($apps)) { foreach ($apps as $app) { if(!empty($app->getLinkedAppInfo)){ $appStoreId = $app->getLinkedAppInfo()->getAppStoreId(); $displayName = $app->getLinkedAppInfo()->getDisplayName(); } else { $appStoreId = ''; $displayName = ''; } printf( "App Name: '%s' \n" ."App ID: '%s' \n" ."App Platform: '%s' \n" ."App Store ID: '%s' \n" ."App Store Display Name: '%s' \n" ."App Display Name: '%s' \n\n", $app->getName(), $app->getAppId(), $app->getPlatform(), $appStoreId, $displayName, $app->getManualAppInfo()->getDisplayName(), ); } } $pageToken = $response->getNextPageToken(); } while ($pageToken);
광고 단위를 나열합니다.
// Create the page token variable. $pageToken = ''; $optParams['pageSize'] = $maxPageSize; do { $optParams['pageToken'] = $pageToken; // Get list of ad units. $response = $service->accounts_adUnits->listAccountsAdUnits($accountName, $optParams); $adUnits = $response->adUnits; // Print list of ad units. if (!empty($adUnits)) { foreach ($adUnits as $adUnit) { printf( "Ad Unit Display Name: '%s' \n" ."Ad Unit Name: '%s' \n" ."Ad Unit ID: '%s' \n" ."Ad Unit Format: '%s' \n" ."Ad Unit App ID: '%s' \n" ."Ad Unit Ad Types: '%s' \n\n", $adUnit->getDisplayName(), $adUnit->getName(), $adUnit->getAdUnitId(), $adUnit->getAdFormat(), $adUnit->getAppId(), json_encode($adUnit->getAdTypes()), ); } } $pageToken = $response->getNextPageToken(); } while ($pageToken);
Python 클라이언트 라이브러리
Python 클라이언트 라이브러리를 사용하는 요청
클라이언트 보안 비밀 파일을 로드하고 승인 사용자 인증 정보를 생성합니다.
이 단계를 처음 수행하면 확인 메시지가 표시됩니다. 수락하기 전에 다음 사항을 확인하세요. AdMob API에 액세스할 수 있는 Google 계정으로 로그인해야 합니다. 내 애플리케이션은 어느 계정을 대신하여든 데이터에 액세스할 수 있도록 승인됩니다. 님이 현재 로그인되어 있습니다.
import os from google_auth_oauthlib.flow import Flow from googleapiclient.discovery import build from google.auth.transport.requests import Request ... # Authenticate using the client_secrets file. client_secrets = os.path.join( os.path.dirname(__file__), 'client_secrets.json') flow = Flow.from_client_secrets_file( client_secrets, scopes=['https://www.googleapis.com/auth/admob.readonly'], redirect_uri='urn:ietf:wg:oauth:2.0:oob') # Redirect the user to auth_url on your platform. auth_url, _ = flow.authorization_url() print('Please go to this URL: {}\n'.format(auth_url)) # The user will get an authorization code. This code is used to get the # access token. code = input('Enter the authorization code: ') flow.fetch_token(code=code) credentials = flow.credentials
AdMob 서비스 객체를 만듭니다.
// Create an AdMob service object on which to run the requests. admob = build('admob', 'v1', credentials=credentials)
앱 나열
next_page_token = '' while True: # Execute the request. response = service.accounts().apps().list( pageSize=PAGE_SIZE, pageToken=next_page_token, parent='accounts/{}'.format(publisher_id)).execute() # Check if the response is empty. if not response: break # Print the result. apps = response['apps'] for app in apps: print('App ID: ' + app['appId']) print('App Platform: ' + app['platform']) print('App Name: ' + app['name']) if 'linkedAppInfo' in app: linked_app_info = app['linkedAppInfo'] print('App Store ID: ' + linked_app_info['appStoreId']) print('App Store Display Name: ' + linked_app_info['displayName']) if 'manualAppInfo' in app: manual_app_info = app['manualAppInfo'] print('App Manual Info: ' + manual_app_info['displayName']) if 'nextPageToken' not in response: break # Update the next page token. next_page_token = response['nextPageToken']
광고 단위를 나열합니다.
next_page_token = '' while True: # Execute the request. response = service.accounts().adUnits().list( pageSize=PAGE_SIZE, pageToken=next_page_token, parent='accounts/{}'.format(publisher_id)).execute() # Check if the response is empty. if not response: break # Print the result. ad_units = response['adUnits'] for ad_unit in ad_units: print('Ad Unit Display Name: ' + ad_unit['displayName']) print('Ad Unit Name: ' + ad_unit['name']) print('Ad Unit ID: ' + ad_unit['adUnitId']) print('Ad Unit Format: ' + ad_unit['adFormat']) print('Ad Unit App ID: ' + ad_unit['appId']) print('Ad Unit Format: ' + ', '.join(ad_unit['adTypes'])) if 'nextPageToken' not in response: break # Update the next page token. next_page_token = response['nextPageToken']
curl (명령줄)
curl을 사용하는 요청
클라이언트 보안 비밀 파일을 로드하고 승인 사용자 인증 정보를 생성합니다.
이 단계를 처음 수행하면 확인 메시지가 표시됩니다. 수락하기 전에 다음 사항을 확인하세요. AdMob API에 액세스할 수 있는 Google 계정으로 로그인해야 합니다. 내 애플리케이션은 어떤 경우에든 대신하여 데이터에 액세스할 수 있도록 승인됩니다. 계정이 현재 로그인되어 있습니다.
인증 및 승인에는 oauth2l, Google OAuth 2.0을 사용할 수 있습니다 oauth2l을 설치하고 아래 명령어로 path_to_credentials_json를 경로로 바꿉니다. 등록 시 다운로드하는
credentials.json
파일에 추가하세요. 살펴보겠습니다 첫 번째 실행의 경우, 명령어는 OAuth 2.0 승인 흐름 후속 실행에서는 토큰이 새로고침됩니다. 자동으로 확장 및 축소할 수 있습니다oauth2l header --json path_to_credentials_json \ --scope admob.readonly
앱 나열
curl -X GET https://admob.googleapis.com/v1/accounts/pub-XXXXXXXXXXXXXXXX/apps \ -H "$(oauth2l header --json path_to_credentials_json \ --scope admob.readonly)"
샘플 응답:
{ "app": [ { "name": "accounts/pub-XXXXXXXXXXXXXXXX/apps/XXXXXXXXXX", "appId": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX", "platform": "ANDROID", "manualAppInfo": { "displayName": "Example App" }, "linkedAppInfo": { "appStoreId": "com.example.myApp", "displayName": "Example App", } } ] }
광고 단위를 나열합니다.
curl -X GET https://admob.googleapis.com/v1/accounts/pub-XXXXXXXXXXXXXXXX/adUnits \ -H "$(oauth2l header --json path_to_credentials_json \ --scope admob.readonly)"
샘플 응답:
{ "adUnit": [ { "name": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/XXXXXXXXXX", "adUnitId": "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX", "appId": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX", "displayName": "AdMob Rewarded", "adFormat": "REWARDED", "adTypes": ["RICH_MEDIA", "VIDEO"], } ] }