Miscellaneous Samples

The code samples below provide examples of miscellaneous management functions available in the AdWords API. Client Library.

Get all videos and images

<?php
/**
 * Copyright 2017 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace Google\AdsApi\Examples\AdWords\v201710\Misc;

require __DIR__ . '/../../../../vendor/autoload.php';

use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSession;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\AdWords\v201710\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201710\cm\MediaService;
use Google\AdsApi\AdWords\v201710\cm\OrderBy;
use Google\AdsApi\AdWords\v201710\cm\Paging;
use Google\AdsApi\AdWords\v201710\cm\Predicate;
use Google\AdsApi\AdWords\v201710\cm\PredicateOperator;
use Google\AdsApi\AdWords\v201710\cm\Selector;
use Google\AdsApi\AdWords\v201710\cm\SortOrder;
use Google\AdsApi\Common\OAuth2TokenBuilder;
use Google\AdsApi\Common\Util\MapEntries;

/**
 * This example gets all images and videos. To upload an image, run
 * UploadImage.php. To upload a video, see http://goo.gl/Uqn0l.
 */
class GetAllImagesAndVideos {

  const PAGE_LIMIT = 500;

  public static function runExample(AdWordsServices $adWordsServices,
      AdWordsSession $session) {
    $mediaService = $adWordsServices->get($session, MediaService::class);

    // Create selector.
    $selector = new Selector();
    $selector->setFields(['MediaId', 'Width', 'Height', 'MimeType', 'Name']);
    $selector->setOrdering([new OrderBy('MediaId', SortOrder::ASCENDING)]);
    $selector->setPredicates([new Predicate('Type', PredicateOperator::IN,
        [MediaMediaType::IMAGE, MediaMediaType::VIDEO])]);
    $selector->setPaging(new Paging(0, self::PAGE_LIMIT));

    $totalNumEntries = 0;
    do {
      // Make the get request.
      $page = $mediaService->get($selector);

      // Display results.
      if ($page->getEntries() !== null) {
        $totalNumEntries = $page->getTotalNumEntries();
        foreach ($page->getEntries() as $media) {
          if ($media->getType() === MediaMediaType::IMAGE) {
            $dimensions =
                MapEntries::toAssociativeArray($media->getDimensions());
            printf(
                "Image with dimensions %dx%d, MIME type '%s', and ID %d "
                    . "was found.\n",
                $dimensions['FULL']->getWidth(),
                $dimensions['FULL']->getHeight(),
                $media->getMimeType(),
                $media->getMediaId()
            );
          } else if ($media->getType() === MediaMediaType::VIDEO) {
            printf("Video with name '%s' and ID %d was found.\n",
                $media->getName(), $media->getMediaId());
          }
        }
      }

      // Advance the paging index.
      $selector->getPaging()->setStartIndex(
          $selector->getPaging()->getStartIndex() + self::PAGE_LIMIT);
    } while ($selector->getPaging()->getStartIndex() < $totalNumEntries);

    printf("Number of results found: %d\n", $totalNumEntries);
  }

  public static function main() {
    // Generate a refreshable OAuth2 credential for authentication.
    $oAuth2Credential = (new OAuth2TokenBuilder())
        ->fromFile()
        ->build();

    // Construct an API session configured from a properties file and the OAuth2
    // credentials above.
    $session = (new AdWordsSessionBuilder())
        ->fromFile()
        ->withOAuth2Credential($oAuth2Credential)
        ->build();
    self::runExample(new AdWordsServices(), $session);
  }
}

GetAllImagesAndVideos::main();

Upload an image

<?php
/**
 * Copyright 2017 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace Google\AdsApi\Examples\AdWords\v201710\Misc;

require __DIR__ . '/../../../../vendor/autoload.php';

use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSession;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\AdWords\v201710\cm\Image;
use Google\AdsApi\AdWords\v201710\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201710\cm\MediaService;
use Google\AdsApi\Common\OAuth2TokenBuilder;
use Google\AdsApi\Common\Util\MapEntries;

/**
 * This example uploads an image.
 */
class UploadImage {

  public static function runExample(AdWordsServices $adWordsServices,
      AdWordsSession $session) {
    $mediaService =
        $adWordsServices->get($session, MediaService::class);

    // Create an image and add it to the images list.
    $image = new Image();
    $image->setData(file_get_contents('http://goo.gl/HJM3L'));
    $image->setType(MediaMediaType::IMAGE);
    $images = [$image];

    // Upload the image to the server.
    $result = $mediaService->upload($images);

    // Print out some information about the uploaded image.
    $image = $result[0];
    $dimensions = MapEntries::toAssociativeArray($image->getDimensions());
    printf(
        "Image with dimensions '%dx%d', MIME type '%s', and id %d was "
            . "uploaded.\n",
        $dimensions['FULL']->getWidth(),
        $dimensions['FULL']->getHeight(),
        $image->getMimeType(),
        $image->getMediaId()
    );
  }

  public static function main() {
    // Generate a refreshable OAuth2 credential for authentication.
    $oAuth2Credential = (new OAuth2TokenBuilder())
        ->fromFile()
        ->build();

    // Construct an API session configured from a properties file and the OAuth2
    // credentials above.
    $session = (new AdWordsSessionBuilder())
        ->fromFile()
        ->withOAuth2Credential($oAuth2Credential)
        ->build();
    self::runExample(new AdWordsServices(), $session);
  }
}

UploadImage::main();

Upload an HTML5 zip file as a MediaBundle

<?php
/**
 * Copyright 2017 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace Google\AdsApi\Examples\AdWords\v201710\Misc;

require __DIR__ . '/../../../../vendor/autoload.php';

use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSession;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\AdWords\v201710\cm\MediaBundle;
use Google\AdsApi\AdWords\v201710\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201710\cm\MediaService;
use Google\AdsApi\Common\OAuth2TokenBuilder;
use Google\AdsApi\Common\Util\MapEntries;

/**
 * This example uploads an HTML5 zip file as a MediaBundle.
 */
class UploadImageBundle {

  public static function runExample(AdWordsServices $adWordsServices,
      AdWordsSession $session) {
    $mediaService =
        $adWordsServices->get($session, MediaService::class);

    // Create HTML5 media and add it to the list.
    $html5Zip = new MediaBundle();
    $html5Zip->setData(file_get_contents('https://goo.gl/9Y7qI2'));
    $html5Zip->setType(MediaMediaType::MEDIA_BUNDLE);
    $mediaBundles = [$html5Zip];

    // Upload the media bundle to the server.
    $result = $mediaService->upload($mediaBundles);

    // Print out some information about the uploaded image.
    $mediaBundle = $result[0];
    $dimensions = MapEntries::toAssociativeArray($mediaBundle->getDimensions());
    printf(
        "HTML5 media with ID %d, dimensions '%dx%d', MIME type '%s' was "
            . "uploaded.\n",
        $mediaBundle->getMediaId(),
        $dimensions['FULL']->getWidth(),
        $dimensions['FULL']->getHeight(),
        $mediaBundle->getMimeType()
    );
  }

  public static function main() {
    // Generate a refreshable OAuth2 credential for authentication.
    $oAuth2Credential = (new OAuth2TokenBuilder())
        ->fromFile()
        ->build();

    // Construct an API session configured from a properties file and the OAuth2
    // credentials above.
    $session = (new AdWordsSessionBuilder())
        ->fromFile()
        ->withOAuth2Credential($oAuth2Credential)
        ->build();
    self::runExample(new AdWordsServices(), $session);
  }
}

UploadImageBundle::main();

Send feedback about...

AdWords API
AdWords API
Need help? Visit our support page.