Este guia mostra como visualizar programaticamente seu inventário, incluindo itens como apps e blocos de anúncios.
Pré-requisitos
Detalhes do app
É possível acessar os detalhes e as configurações do app de forma programática usando a API AdMob, como ID do app, ID da loja de apps e plataforma. Para mais informações, consulte
accounts.apps.list.
Blocos de anúncios
Um bloco de anúncios é o conjunto de anúncios veiculados como resultado de um código de anúncio da AdMob. Para mais informações, consulte accounts.adUnits.list.
Fazer uma solicitação
Há várias maneiras de fazer sua primeira solicitação:
biblioteca de cliente Java
Solicitações usando a biblioteca de cliente Java
Carregue o arquivo de chaves secretas do cliente e gere credenciais de autorização.
Na primeira vez que você fizer isso, será necessário aceitar uma solicitação de autorização no navegador. Antes de aceitar, verifique se você fez login com uma Conta do Google que tem acesso à API AdMob. Seu aplicativo será autorizado a acessar dados em nome da conta conectada no momento.
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");Crie um cliente autorizado da AdMob.
// Create an AdMob client instance. AdMob admob = new AdMob.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) .setApplicationName("admobapi-java-samples") .build();Liste os apps.
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());Listar blocos de anúncios.
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());
Biblioteca de cliente PHP
Solicitações usando a biblioteca de cliente PHP
Carregue o arquivo de chaves secretas do cliente e crie um cliente autorizado da AdMob.
Na primeira vez que você fizer isso, será necessário aceitar uma solicitação de autorização no navegador. Antes de aceitar, verifique se você fez login com uma Conta do Google que tem acesso à API AdMob. Seu aplicativo será autorizado a acessar dados em nome da conta conectada no momento.
// 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();Crie um objeto de serviço da AdMob.
// Create an AdMob service object on which to run the requests. $service = new Google_Service_AdMob($client);Liste os apps.
// 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);Listar blocos de anúncios.
// 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);
Biblioteca de cliente do Python
Solicitações usando a biblioteca de cliente Python
Carregue o arquivo de chaves secretas do cliente e gere credenciais de autorização.
Na primeira vez que você realizar essa etapa, será necessário aceitar uma solicitação de autorização no navegador. Antes de aceitar, verifique se você fez login com uma Conta do Google que tem acesso à API AdMob. Seu aplicativo será autorizado a acessar dados em nome da conta conectada no momento.
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.credentialsCrie um objeto de serviço da AdMob.
// Create an AdMob service object on which to run the requests. admob = build('admob', 'v1', credentials=credentials)Liste os apps.
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']Listar blocos de anúncios.
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 (linha de comando)
Solicitações usando curl
Carregue o arquivo de chaves secretas do cliente e gere credenciais de autorização.
Na primeira vez que você realizar essa etapa, será necessário aceitar uma solicitação de autorização no navegador. Antes de aceitar, verifique se você fez login com uma Conta do Google que tem acesso à API AdMob. Seu aplicativo será autorizado a acessar dados em nome da conta conectada no momento.
Para autenticação e autorização, recomendamos usar o oauth2l, uma ferramenta de linha de comando simples para trabalhar com o OAuth 2.0 do Google. Instale o oauth2l e execute o comando abaixo, substituindo path_to_credentials_json por um caminho para um arquivo
credentials.jsonque você baixa ao registrar seu aplicativo na nuvem. Na primeira execução, o comando orienta você pelo fluxo de autorização do OAuth 2.0. As execuções subsequentes atualizam o token automaticamente.oauth2l header --json path_to_credentials_json \ --scope admob.readonly
Liste os apps.
curl -X GET https://admob.googleapis.com/v1/accounts/pub-XXXXXXXXXXXXXXXX/apps \ -H "$(oauth2l header --json path_to_credentials_json \ --scope admob.readonly)"
Exemplo de resposta:
{ "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", } } ] }Listar blocos de anúncios.
curl -X GET https://admob.googleapis.com/v1/accounts/pub-XXXXXXXXXXXXXXXX/adUnits \ -H "$(oauth2l header --json path_to_credentials_json \ --scope admob.readonly)"
Exemplo de resposta:
{ "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"], } ] }