新しい Google 広告スクリプトのインフラストラクチャは、Google Ads API をベースとしています。API のアーキテクチャが異なるため、既存のスクリプトの更新が必要になる場合があります。Google は、下位互換性を可能な限り確保するよう努めているため、これらの変更は軽微です。
レポート
多くの AWQL レポートは引き続き機能します。新しいインフラストラクチャを使用すると、スクリプトによって AWQL クエリが GAQL(Google Ads API の新しいクエリ言語)に変換され、新しいバックエンドに対して実行され、その結果が AWQL レポートで最初に使用されている形式に戻されます。GAQL を使用したクエリはそのまま通過します。
このオーバーヘッドがあるため、できる限りスクリプトを確認し、AWQL クエリを GAQL に更新することをおすすめします。クエリ移行ツールを使用できます。このツールはスクリプトと同じロジックを使用して、特定の AWQL クエリに対応する GAQL クエリを決定します。また、インタラクティブ クエリビルダーを使用してクエリを作成することもできます。
AWQL から GAQL への自動変換には次のような制限があります。
- すべての AWQL クエリが GAQL クエリに明確に変換されるわけではありません。この場合は、問題の原因の詳細を示すエラー メッセージがログに記録されるので、手動で修正できます。
- AWQL のすべてのレポートタイプが GAQL でサポートされているわけではありません。
- GAQL では「ゼロ インプレッション行」はサポートされていません。レポートに 0 インプレッションを含めるように指定すると、エラーが発生します。
- 一部のあいまいなフィールドはフィルタでは使用できません。たとえば、「見出し」は任意の数の広告フィールドを参照できます。
- フィールドによっては、異なる形式で結果を返すことがあります。たとえば、1 つの結果を多数の列に分割する場合などです。
セレクタの整理
スクリプトを使用してリソースを取得する場合は、withCondition
と orderBy
の呼び出しを使用して、イテレータの結果を制限または並べ替えるのが一般的です。これらの呼び出しのフィールドには、新しい Google Ads API の名前が使用されるようになりました。たとえば、キャンペーン名でフィルタするには、以前は次のようにしていました。
.withCondition('CampaignName = "SOME_CAMPAIGN_NAME"')
可能であれば、これらの条件には新しいフィールド名を使用してください。
.withCondition('campaign.name = "SOME_CAMPAIGN_NAME"')
ただし、古い名前と新しい名前のマッピングを含めるようにしました。スクリプトで引き続き CampaignName
を使用している場合は、スクリプトが引き続き動作するように、実行時に自動的に campaign.name
に置き換えられます。古いスタイル名で問題が発生した場合は、トラブルシューティングの最初の手順として、新しいスタイル名を使用するようにスクリプトを更新します。
上限
多くの上限は古いインフラストラクチャと同じであり、ここで行った変更は一般的にパフォーマンスの向上に役立ちます。
- 時間制限は同じです。スクリプトは 30 分間実行されます。
- 1 つのイテレータはデフォルトで 50,000 個のエンティティを返しますが、これはオーバーライドできます。以前は、この 50,000 件の上限はカスタマイズできませんでした。
- 1 つのセレクタで処理できる ID は最大 10,000 個です(変更なし)。
- 新しいインフラストラクチャでは、1 つのスクリプトで処理できるエンティティの数に上限はありません。以前の上限は 250,000 です。
- 新しいインフラストラクチャでは、実行ごとに作成できるキーワードまたは広告の数に制限はありません。以前の上限は 250,000 です。
- ロギング出力は 100 KB で切り捨てられます(変更なし)。
- Apps Script サービス(SheetApp、MailApp など)の割り当ては変更されません。
- Google 広告の割り当ては、API を使用している場合と同様に適用されます。つまり、スクリプトは API レート制限の対象になりますが、より多くのレポートにアクセスしたり、実行ごとにより多くの変更を行ったりできる柔軟性が向上します。
その他の変更点
リニューアル版では割り当てが適用されなくなったため、ExecutionInfo
は getRemainingCreateQuota()
または getRemainingGetQuota()
を公開しなくなります。