blob: e7ba2d7aa4a9fa8cec9a0d2c9744b6bdbe7704cb [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
Joe Gregorio731680a2013-03-18 09:15:57 -040022__author__ = ('david.t@google.com (David Torres)',
23 'jdilallo@google.com (Joseph DiLallo)')
Joe Gregoriob071ca72012-03-29 17:01:32 -040024
Joe Gregorio562c9ba2013-04-05 14:24:30 -040025import argparse
Joe Gregoriob071ca72012-03-29 17:01:32 -040026import pprint
27import sys
Joe Gregoriob071ca72012-03-29 17:01:32 -040028
Joe Gregorio562c9ba2013-04-05 14:24:30 -040029from apiclient import sample_tools
30from oauth2client import client
31
32# Declare command-line flags.
33argparser = argparse.ArgumentParser(add_help=False)
34argparser.add_argument('account_id', type=int,
35 help='The ID of the account to which submit the creative')
36argparser.add_argument('buyer_creative_id',
37 help='A buyer-specific id identifying the creative in'
38 'this ad')
39argparser.add_argument('agency_id', type=int,
40 help='The ID of the agency who created this ad')
Joe Gregoriob071ca72012-03-29 17:01:32 -040041
42
43def main(argv):
Joe Gregoriob071ca72012-03-29 17:01:32 -040044 # Authenticate and construct service.
Joe Gregorio562c9ba2013-04-05 14:24:30 -040045 service, flags = sample_tools.init(
46 argv, 'adexchangebuyer', 'v1.2', __doc__, __file__, parents=[argparser],
47 scope='https://www.googleapis.com/auth/adexchange.buyer')
Joe Gregoriob071ca72012-03-29 17:01:32 -040048
Joe Gregorio562c9ba2013-04-05 14:24:30 -040049 account_id = flags.account_id
50 agency_id = flags.agency_id
51 buyer_creative_id = flags.buyer_creative_id
Joe Gregoriob071ca72012-03-29 17:01:32 -040052 try:
53 # Create a new creative to submit.
54 creative_body = {
55 'accountId': account_id,
Joe Gregoriob071ca72012-03-29 17:01:32 -040056 'buyerCreativeId': buyer_creative_id,
57 'HTMLSnippet': ('<html><body><a href="http://www.google.com">'
58 'Hi there!</a></body></html>'),
59 'clickThroughUrl': ['http://www.google.com'],
60 'width': 300,
61 'height': 250,
62 'advertiserName': 'google'
63 }
Joe Gregorio731680a2013-03-18 09:15:57 -040064 if agency_id:
65 creative_body['agencyId'] = agency_id
Joe Gregoriob071ca72012-03-29 17:01:32 -040066 creative = service.creatives().insert(body=creative_body).execute()
67 # Print the response. If the creative has been already reviewed, its status
68 # and categories will be included in the response.
Joe Gregorio562c9ba2013-04-05 14:24:30 -040069 pprint.pprint(creative)
70 except client.AccessTokenRefreshError:
Joe Gregoriob071ca72012-03-29 17:01:32 -040071 print ('The credentials have been revoked or expired, please re-run the '
72 'application to re-authorize')
73
74if __name__ == '__main__':
75 main(sys.argv)