Ticker

6/recent/ticker-posts

Header Ads Widget

クエリビルダー ブログシリーズ: パート 4 - リソース サービスの作成

この記事は Devin Chasanoff による Google Ads Developer Blog の記事 "The Query Builder Blog Series: Part 4 - Creating the Resource Service" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


このブログシリーズでは、新しく改善されたインタラクティブ Google 広告クエリビルダー ツールの構築過程についてお伝えしています。シリーズのパート 3 では、GoogleAdsFieldService を使って詳細な JSON リソース スキーマを作成する方法について説明しました。これが、Angular アプリケーションで使う正規データセットとなります。パート 4 では、アプリケーションのさまざまな部分でどのフィールドがユーザーに表示されるかを決めるリソース サービスを作成する方法について説明します。

背景

新しいインタラクティブ Google 広告クエリビルダーのメリットの 1 つは、ユーザーの選択内容に応じてフィールドが動的に更新され、フィールドが選択できるかどうかが表示されることです。選択できない場合は、なぜそのフィールドが選択できないかがわかるフィードバックがユーザーに返されます。これを実現するには、Google Ads Query Language(GAQL)文字列の FROM 句のメインリソースに基づいて、その GAQL 文字列のそれぞれの句で選択できるフィールドのリストを提示する必要があります。そのロジックを含む、ResourceService という名前のサービスを作成します。すると、Angular のサービスと依存関係の注入モデルを使って適切なフィールドと関連情報を取得し、任意のコンポーネントに設定できるようになります。

目的

このアプリは、FROM リソースがユーザーの現在の URL によって決まるように設計されています。そのため、FROM 句のリソースとすべての利用可能なフィールドのリストは、その URL によって決まる定数となります。この投稿では、SELECTWHEREORDER BY という 3 つの GAQL 句のみについて考えることにします。動的にフィールドを設定できる句はこれだけだからです。LIMIT は整数のみを受け付け、PARAMETERS には 1 つの選択肢しかありません。


ユーザー エクスペリエンスを向上するため、それぞれの句では、利用可能なフィールドを属性フィールド指標セグメント属性付きリソース フィールドの 4 つのカテゴリに分類します。ここでの目的は、指定された句とカテゴリに応じて、関連フィールドを提供する ResourceService を作成することです。

実装

前回生成したリソース スキーマを活用すると、URL によって決まる FROM 句のメインリソースに対するエントリを選択し、フィールドのサブエントリを絞り込んで、特定の条件に一致する fields だけを提供できます。


まずは、句によってフィールドを分類するところから始めます。
  • SELECT 句のフィールドは、selectable プロパティが true に等しい
  • WHERE 句のフィールドは、filterable プロパティが true に等しい
  • ORDER BY 句のフィールドは、sortable プロパティが true に等しい
このフィールド リストは、さらに属性フィールド、指標、セグメント、属性付きリソース フィールドに分類できます。指定された句から指標とセグメントを取得するのは簡単です。リソース スキーマには指標とセグメント(セグメント化リソースを含む)のリストが含まれているからです。それぞれの句について、句に関連する前述の条件を満たすすべてのセグメントと指標を含めます。

同じように、FROM 句のリソースの attributes を調べ、リソース名で始まり、その後にドットが存在するものを絞り込み、句に関連する前述の絞り込み条件を適用することで、それぞれの句のメイン属性フィールドを取得できます。

attributes エントリのその他のフィールドは、すべて属性付きリソース フィールドです。属性付きリソースのリストは、メインリソースを除くリソースの attributes の一意なプレフィックス(ドットの前のテキスト)を集めることで生成できます。最後に、それぞれの属性付きリソースの名前がプレフィックスになっているフィールドを選択すると、それぞれの属性付きリソースについて、句ごとのフィールド リストを作成できます。

以上のロジックがすべてそろえば、インターフェースを作成し、指定されたカテゴリと句に応じてフィールドのリストを返すメソッドを公開できます。すると、ResourceService に注入される任意のコンポーネントは、対応するメソッドを呼び出すだけで、適切なフィールドのリストを取得できるようになります。

まとめ

以上で、アプリで表示している句とカテゴリに基づいて GAQL クエリを作成しているユーザーに、関連フィールドを表示する ResourceService を作成できました。今回の投稿では、以下について説明しました。

Google Ads API での GAOL クエリの構築について理解が深まれば幸いです。ご質問やさらにサポートが必要なことがありましたら、フォーラムまたは googleadsapi-support@google.com にご連絡ください。





source https://developers-jp.googleblog.com/2021/06/4.html

Post a Comment

0 Comments