Data Model
The CData JDBC Driver for Google Ad Manager models Google Ad Manager objects as relational tables and views. A Google Ad Manager object has relationships to other objects; in the tables, these relationships are expressed through foreign keys. The following sections show the available API objects and provide more information on executing SQL to Google Ad Manager APIs.
Schemas for most database objects are defined in simple, text-based configuration files. However, schemas for Saved Query Reports are dynamically obtained.
Accessing Saved Query Reports
When you connect, the driver retrieves the list of reports and the metadata for the tables by calling the appropriate web services. Any changes you make to the Saved Query Reports, such as adding a new report, adding new fields, or changing the data type of a field, will immediately be reflected when you connect using the driver.
The driver offloads as much of the SELECT statement processing as possible to the Google Ad Manager APIs and then processes the rest of the query in memory. See SupportEnhancedSQL for more information on how the driver circumvents API limitations with in-memory client-side processing.
Inserting custom fields
When executing an Insert statement and you've specified a custom field, the value of the custom field must be an aggregate. The aggregate must contain the ID of the custom field and the value that you want to give it. You can get custom fields' IDs by querying CustomFields table. Currently, only custom fields of type "Text" are supported for Insert. Other types are not insertable/updatable.
Below is an example of inserting into Orders table while specifying the "MyOwnCustomField" custom field. The ID of the custom field is 1238676 and its value is "Sample text here".
INSERT INTO Orders (Name, Notes, AdvertiserId, TraffickerId, CreatorId, Status, MyOwnCustomField) VALUES ('T-Shirt', 'Note description', '7412504329', '452586926', '9521226', 'DRAFT', '<customFieldId> 1238676 </customFieldId><value xsi:type="TextValue"><value> Sample text here </value></value>')