blob: 1052eae5d9240cf0e88161a53f22b08be0a36ef2 [file] [log] [blame]
Joe Gregoriob071ca72012-03-29 17:01:32 -04001#!/usr/bin/python
2#
3# Copyright 2012 Google Inc. All Rights Reserved.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17"""This example illustrates how to submit a new creative for its verification.
18
19Tags: creatives.insert
20"""
21
22__author__ = 'david.t@google.com (David Torres)'
23
24import pprint
25import sys
26import gflags
27from oauth2client.client import AccessTokenRefreshError
28import sample_utils
29
30# Declare command-line flags, and set them as required.
31gflags.DEFINE_string('account_id', None,
32 'The ID of the account to which submit the creative',
33 short_name='a')
34gflags.MarkFlagAsRequired('account_id')
35gflags.DEFINE_string('adgroup_id', None,
36 'The pretargeting adgroup id that this creative will be '
37 'associated with',
38 short_name='g')
39gflags.MarkFlagAsRequired('adgroup_id')
40gflags.DEFINE_string('buyer_creative_id', None,
41 'A buyer-specific id identifying the creative in this ad',
42 short_name='c')
43gflags.MarkFlagAsRequired('buyer_creative_id')
44
45
46def main(argv):
47 sample_utils.process_flags(argv)
48 account_id = gflags.FLAGS.account_id
49 adgroup_id = gflags.FLAGS.adgroup_id
50 buyer_creative_id = gflags.FLAGS.buyer_creative_id
51 pretty_printer = pprint.PrettyPrinter()
52
53 # Authenticate and construct service.
54 service = sample_utils.initialize_service()
55
56 try:
57 # Create a new creative to submit.
58 creative_body = {
59 'accountId': account_id,
60 'adgroupId': adgroup_id,
61 'buyerCreativeId': buyer_creative_id,
62 'HTMLSnippet': ('<html><body><a href="http://www.google.com">'
63 'Hi there!</a></body></html>'),
64 'clickThroughUrl': ['http://www.google.com'],
65 'width': 300,
66 'height': 250,
67 'advertiserName': 'google'
68 }
69 creative = service.creatives().insert(body=creative_body).execute()
70 # Print the response. If the creative has been already reviewed, its status
71 # and categories will be included in the response.
72 pretty_printer.pprint(creative)
73 except AccessTokenRefreshError:
74 print ('The credentials have been revoked or expired, please re-run the '
75 'application to re-authorize')
76
77if __name__ == '__main__':
78 main(sys.argv)