The Query Builder Blog Series: Part 8 – Conclusion

This blog series follows the journey of building the new and improved Interactive Google Ads Query Builder tool. If you’ve read this entire series up to this point, you should understand many details and nuances of the Google Ads Query Language (GAQL). Part 8 will wrap up our journey and discuss what we’ve learned along the way.

Creating the User Interface

With the ResourceService, SelectionService, and ValidationService in place, all that is left to do is create the components that will comprise the user interface. In some cases, we can pull data directly from our services. In other cases, such as tracking selectability, selection status, or query validity, we can subscribe to our services so that the components always reflect the current state of the application.


This blog series has walked through several integral parts of the Query Builder application with an emphasis on those which can be useful in understanding GAQL. Let’s recap our learnings from each post:

Part 1 - Setting the Stage

Part 2 - Designing a Resource Schema
  • What a schema might look like for our application.

Part 3 - Creating a Resource Schema
  • How to use the GoogleAdsFieldService to retrieve field metadata.
  • Field compatibility in GAQL.
  • The REST discovery API.

Part 4 - Creating the Resource Service
  • GAQL query structure.
  • The various types of fields that can appear in GAQL clauses.
  • Field properties and how they correspond to different GAQL clauses.

Part 5 - Determining Field Selectability
  • Field compatibility and how to determine if a field is selectable.

Part 6 - Selecting and Deselecting Fields
  • GAQL query structure.
  • Additional detail regarding selectability.
  • Using Observables in Angular.

Part 7 - Query Validation
  • The various facets of GAQL query validation.


In addition to everything we’ve learned about the Google Ads Query Language, I hope you’ve also picked up some tips about writing Angular applications. This was my first time using Angular, and I’ve found it to be a powerful framework for quickly building complex applications. Using Angular services with dependency injection along with observables has been an efficient way to manage app-wide state.

Hopefully this series deepened your understanding of how to construct GAQL queries with the Google Ads API. If you have any questions or need additional help, contact us via the forum or at [email protected].