The code samples below provide examples of miscellaneous management functions available in the AdWords API. Client Library.
Get all images and videos
#!/usr/bin/perl -w # # 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. # # This code example gets all videos and images. # Use the Google Ads website to upload new videos. # To upload an image, run misc/upload_image.pl. use strict; use lib "../../../lib"; use Google::Ads::AdWords::Client; use Google::Ads::AdWords::Logging; use Google::Ads::AdWords::v201809::OrderBy; use Google::Ads::AdWords::v201809::Paging; use Google::Ads::AdWords::v201809::Predicate; use Google::Ads::AdWords::v201809::Selector; use Google::Ads::Common::MapUtils; use Google::Ads::AdWords::Utilities::PageProcessor; use Cwd qw(abs_path); use constant PAGE_SIZE => 500; # Example main subroutine. sub get_all_images_and_video { my $client = shift; # Create predicates. my $media_type_predicate = Google::Ads::AdWords::v201809::Predicate->new({ field => "Type", operator => "IN", values => ["IMAGE", "VIDEO"] } ); # Create selector. my $paging = Google::Ads::AdWords::v201809::Paging->new({ startIndex => 0, numberResults => PAGE_SIZE } ); my $selector = Google::Ads::AdWords::v201809::Selector->new({ fields => ["MediaId", "Name", "MimeType", "Width", "Height"], predicates => [$media_type_predicate], ordering => [ Google::Ads::AdWords::v201809::OrderBy->new({ field => "Name", sortOrder => "ASCENDING" } ) ], paging => $paging } ); # Paginate through results. # The contents of the subroutine will be executed for each image/video. Google::Ads::AdWords::Utilities::PageProcessor->new({ client => $client, service => $client->MediaService(), selector => $selector } )->process_entries( sub { my ($media) = @_; if ($media->isa("Google::Ads::AdWords::v201809::Image")) { my $dimensions = Google::Ads::Common::MapUtils::get_map($media->get_dimensions()); printf "Image with id \"%s\", dimensions \"%dx%d\", and MIME type " . "\"%s\" was found.\n", $media->get_mediaId(), $dimensions->{"FULL"}->get_width(), $dimensions->{"FULL"}->get_height(), $media->get_mimeType(); } else { printf "Video with id \"%s\" and name \"%s\" was found.\n", $media->get_mediaId(), $media->get_name(); } } ); return 1; } # Don't run the example if the file is being included. if (abs_path($0) ne abs_path(__FILE__)) { return 1; } # Log SOAP XML request, response and API errors. Google::Ads::AdWords::Logging::enable_all_logging(); # Get AdWords Client, credentials will be read from ~/adwords.properties. my $client = Google::Ads::AdWords::Client->new({version => "v201809"}); # By default examples are set to die on any server returned fault. $client->set_die_on_faults(1); # Call the example get_all_images_and_video($client);
Upload an image
#!/usr/bin/perl -w # # 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. # # This example uploads an image. To get images, run # misc/get_all_images_and_video.pl. use strict; use lib "../../../lib"; use Google::Ads::AdWords::Client; use Google::Ads::AdWords::Logging; use Google::Ads::AdWords::v201809::Image; use Google::Ads::Common::MapUtils; use Google::Ads::Common::MediaUtils; use Cwd qw(abs_path); # Example main subroutine. sub upload_image { my $client = shift; # Create image. my $image_data = Google::Ads::Common::MediaUtils::get_base64_data_from_url( "https://goo.gl/3b9Wfh"); my $image = Google::Ads::AdWords::v201809::Image->new({ data => $image_data, type => "IMAGE" } ); # Upload image. $image = $client->MediaService()->upload({media => [$image]}); # Display images. if ($image) { my $dimensions = Google::Ads::Common::MapUtils::get_map($image->get_dimensions()); printf( "Image with id \"%s\", dimensions \"%dx%d\", and MIME type \"%s\" " . "was uploaded.\n", $image->get_mediaId(), $dimensions->{"FULL"}->get_width(), $dimensions->{"FULL"}->get_height(), $image->get_mimeType() ); } else { print "No image was uploaded.\n"; } return 1; } # Don't run the example if the file is being included. if (abs_path($0) ne abs_path(__FILE__)) { return 1; } # Log SOAP XML request, response and API errors. Google::Ads::AdWords::Logging::enable_all_logging(); # Get AdWords Client, credentials will be read from ~/adwords.properties. my $client = Google::Ads::AdWords::Client->new({version => "v201809"}); # By default examples are set to die on any server returned fault. $client->set_die_on_faults(1); # Call the example upload_image($client);
Upload an HTML5 zip file as a MediaBundle
#!/usr/bin/perl -w # # 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. # # This example uploads an HTML5 zip file as a MediaBundle. use strict; use lib "../../../lib"; use Google::Ads::AdWords::Client; use Google::Ads::AdWords::Logging; use Google::Ads::AdWords::v201809::MediaBundle; use Google::Ads::Common::MapUtils; use Google::Ads::Common::MediaUtils; use Cwd qw(abs_path); # Example main subroutine. sub upload_media_bundle { my $client = shift; # Create $zip media. my $html5_zip = Google::Ads::Common::MediaUtils::get_base64_data_from_url( "https://goo.gl/9Y7qI2"); # Create a media bundle containing the zip file with all the HTML5 components. my $media_bundle = Google::Ads::AdWords::v201809::MediaBundle->new({ data => $html5_zip, type => "MEDIA_BUNDLE" }); # Upload HTML5 zip. $media_bundle = $client->MediaService()->upload({media => [$media_bundle]}); # Display HTML5 zip. if ($media_bundle) { my $dimensions = Google::Ads::Common::MapUtils::get_map($media_bundle->get_dimensions()); printf( "Media bundle with ID %d, dimensions \"%dx%d\", and MIME type \"%s\ " . "was uploaded.\n", $media_bundle->get_mediaId(), $dimensions->{"FULL"}->get_width(), $dimensions->{"FULL"}->get_height(), $media_bundle->get_mimeType() ); } else { print "No media bundle was uploaded.\n"; } return 1; } # Don't run the example if the file is being included. if (abs_path($0) ne abs_path(__FILE__)) { return 1; } # Log SOAP XML request, response and API errors. Google::Ads::AdWords::Logging::enable_all_logging(); # Get AdWords Client, credentials will be read from ~/adwords.properties. my $client = Google::Ads::AdWords::Client->new({version => "v201809"}); # By default examples are set to die on any server returned fault. $client->set_die_on_faults(1); # Call the example upload_media_bundle($client);