Share your feedback about the AdWords API! Take our annual survey.

Miscellaneous Samples

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

Get all image assets

<?php
/**
 * Copyright 2018 Google LLC
 *
 * 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\v201809\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\v201809\cm\AssetService;
use Google\AdsApi\AdWords\v201809\cm\AssetType;
use Google\AdsApi\AdWords\v201809\cm\Paging;
use Google\AdsApi\AdWords\v201809\cm\Predicate;
use Google\AdsApi\AdWords\v201809\cm\PredicateOperator;
use Google\AdsApi\AdWords\v201809\cm\Selector;
use Google\AdsApi\Common\OAuth2TokenBuilder;

/**
 * This code example gets all image assets. To upload an image asset, run
 * UploadImageAsset.php.
 */
class GetAllImageAssets
{

    const PAGE_LIMIT = 500;

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

        // Create selector.
        $selector = new Selector();
        $selector->setFields(
            [
                'AssetName',
                'AssetStatus',
                'ImageFileSize',
                'ImageWidth',
                'ImageHeight',
                'ImageFullSizeUrl'
            ]
        );
        // Filters for image assets only.
        $selector->setPredicates(
            [
                new Predicate(
                    'AssetSubtype',
                    PredicateOperator::IN,
                    [AssetType::IMAGE]
                )
            ]
        );
        $selector->setPaging(new Paging(0, self::PAGE_LIMIT));

        $totalNumEntries = 0;
        $i = 1;
        do {
            // Gets the image assets.
            $page = $assetService->get($selector);

            // Display the results.
            if ($page->getEntries() !== null) {
                $totalNumEntries = $page->getTotalNumEntries();
                foreach ($page->getEntries() as $imageAsset) {
                    printf(
                        "%d) Image asset with ID = '%s', name = '%s', "
                        . "and status = '%s' was found.%s",
                        $i,
                        $imageAsset->getAssetId(),
                        $imageAsset->getAssetName(),
                        $imageAsset->getAssetStatus(),
                        PHP_EOL
                    );
                    printf(
                        "  Size is %dx%d and asset URL is %s.%s",
                        $imageAsset->getFullSizeInfo()->getImageWidth(),
                        $imageAsset->getFullSizeInfo()->getImageHeight(),
                        $imageAsset->getFullSizeInfo()->getImageUrl(),
                        PHP_EOL
                    );
                    $i++;
                }
            }

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

        printf(
            "Number of image assets found: %d.%s",
            $totalNumEntries,
            PHP_EOL
        );
    }

    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);
    }
}

GetAllImageAssets::main();

Get all images and videos

<?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\v201809\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\v201809\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201809\cm\MediaService;
use Google\AdsApi\AdWords\v201809\cm\OrderBy;
use Google\AdsApi\AdWords\v201809\cm\Paging;
use Google\AdsApi\AdWords\v201809\cm\Predicate;
use Google\AdsApi\AdWords\v201809\cm\PredicateOperator;
use Google\AdsApi\AdWords\v201809\cm\Selector;
use Google\AdsApi\AdWords\v201809\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()
                        );
                    } elseif ($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\v201809\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\v201809\cm\Image;
use Google\AdsApi\AdWords\v201809\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201809\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 image asset

<?php
/**
 * Copyright 2018 Google LLC
 *
 * 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\v201809\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\v201809\cm\AssetOperation;
use Google\AdsApi\AdWords\v201809\cm\AssetService;
use Google\AdsApi\AdWords\v201809\cm\ImageAsset;
use Google\AdsApi\AdWords\v201809\cm\Operator;
use Google\AdsApi\Common\OAuth2TokenBuilder;

/**
 * This code example uploads an image asset. To get images, run
 * GetAllImageAssets.php.
 */
class UploadImageAsset
{

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

        // Create an image asset.
        $imageAsset = new ImageAsset();
        // Optional: Provide a unique friendly name to identify your asset. If
        // you specify the assetName field, then both the asset name and the
        // image being uploaded should be unique, and should not match another
        // ACTIVE asset in this customer account.
        // $imageAsset->setAssetName('Jupiter Trip #' . uniqid());
        $imageAsset->setImageData(file_get_contents('https://goo.gl/3b9Wfh'));

        // Create an asset operation.
        $operation = new AssetOperation();
        $operation->setOperand($imageAsset);
        $operation->setOperator(Operator::ADD);

        // Adds the image asset on the server.
        $result = $assetService->mutate([$operation]);

        if (!empty($result->getValue())) {
            // Print out some information about the added image asset.
            $addedImageAsset = $result->getValue()[0];
            printf(
                "Image asset with ID = '%s' and name = '%s' was created.%s",
                $addedImageAsset->getAssetId(),
                $addedImageAsset->getAssetName(),
                PHP_EOL
            );
        } else {
            print 'No image asset was created.' . PHP_EOL;
        }
    }

    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);
    }
}

UploadImageAsset::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\v201809\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\v201809\cm\MediaBundle;
use Google\AdsApi\AdWords\v201809\cm\MediaMediaType;
use Google\AdsApi\AdWords\v201809\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.