אחזור של יחידות מודעות ופרטי אפליקציות

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

דרישות מוקדמות

פרטי האפליקציה

תוכלו להציג את הפרטים וההגדרות של האפליקציה באופן פרוגרמטי דרך ה-API של AdMob, כמו מזהה האפליקציה, מזהה חנות האפליקציות והפלטפורמה. למידע נוסף: accounts.apps.list.

יחידות מודעות

יחידת מודעות היא קבוצת המודעות שמוצגת כתוצאה מקטע אחד של קוד מודעות של AdMob. למידע נוסף: accounts.adUnits.list.

יצירת בקשה

אתם יכולים ליצור את הבקשה הראשונה בכמה דרכים:

ספריית לקוח Java

בקשות שמשתמשות בספריית לקוח Java

  1. טוענים את קובץ סודות הלקוח ויוצרים פרטי כניסה להרשאה.

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

    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");
    
  2. יוצרים לקוח AdMob מורשה.

    // Create an AdMob client instance.
    AdMob admob =
        new AdMob.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
            .setApplicationName("admobapi-java-samples")
            .build();
    
  3. הצגת רשימה של אפליקציות.

     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());
    
  4. להציג רשימה של יחידות מודעות.

     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

  1. טוענים את קובץ סודות הלקוח ויוצרים לקוח AdMob מורשה.

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

    // 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();
    
  2. יוצרים אובייקט שירות של AdMob.

    // Create an AdMob service object on which to run the requests.
    $service = new Google_Service_AdMob($client);
    
  3. הצגת רשימה של אפליקציות.

     // 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);
    
  4. להציג רשימה של יחידות מודעות.

     // 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

  1. טוענים את קובץ סודות הלקוח ויוצרים פרטי כניסה להרשאה.

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

    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
    
  2. יוצרים אובייקט שירות של AdMob.

    // Create an AdMob service object on which to run the requests.
    admob = build('admob', 'v1', credentials=credentials)
    
  3. הצגת רשימה של אפליקציות.

    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']
    
    
  4. להציג רשימה של יחידות מודעות.

    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

  1. טוענים את קובץ סודות הלקוח ויוצרים פרטי כניסה להרשאה.

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

    לצורכי אימות והרשאה, אנחנו ממליצים להשתמש ב-oauth2l, כלי פשוט של שורת הפקודה לעבודה עם OAuth 2.0 של Google. מתקינים את oauth2l ומריצים את הפקודה הבאה, ומחליפים את path_to_credentials_json בנתיב לקובץ credentials.json שמורידים במהלך הרישום של אפליקציית הענן. בהפעלה הראשונה, הפקודה תדריך אתכם בתהליך ההרשאות של OAuth 2.0. ההפעלות הבאות מרעננות את האסימון באופן אוטומטי.

    oauth2l header --json path_to_credentials_json \
    --scope admob.readonly
    
  2. הצגת רשימה של אפליקציות.

    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",
         }
       }
     ]
    }
    
  3. להציג רשימה של יחידות מודעות.

    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"],
       }
     ]
    }