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