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.