この記事は David Wihl による Google Ads Developer Blog の記事 "Reducing RMF to help migration to the Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...
この記事は David Wihl による Google Ads Developer Blog の記事 "Reducing RMF to help migration to the Google Ads API" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Ads API v9 以降では、Google Ads API を使う際の必要機能の要件(RMF)を大幅に削減しています。これは、2022 年 4 月 27 日の AdWords API の提供終了の前に新しい API への移行を推進しつつ、エンジニアリング チームの負荷を減らすための方策です。AdWords API の要件は変わりません。

影響されるツールは以下のとおりです。
  • フルサービス
  • ショッピング専用、スマート ショッピング専用、ホテル専用、アプリ プロモーション専用の API ツール
  • キャンペーンの作成や管理機能を提供する特殊目的ツール
  • レポーティング専用ツール
RMF の対象とならない内部専用ツールは影響されません

厳密な内容については、Google Ads API の更新版の必要機能の要件をご覧ください。

以下の機能は変更されず、今後も必須となります
アイテム番号 機能
C.10 キャンペーンの作成
C.96 入札オプションの設定 : 目標コンバージョン単価(ポートフォリオと標準)
C.97 入札オプションの設定 : 目標広告費用対効果(ポートフォリオと標準)
C.98 入札オプションの設定 : コンバージョン数の最大化(標準)
C.120 予算の設定
C.260 キーワードの追加
C.300 キーワードのマッチタイプの設定
M.96 入札オプションの編集 : 目標コンバージョン単価(ポートフォリオと標準)
M.97 入札オプションの編集 : 目標広告費用対効果(ポートフォリオと標準)
M.98 入札オプションの編集 : コンバージョン数の最大化(標準)
M.110 キャンペーンの一時停止 / 有効化 / 削除
M.130 広告の一時停止 / 有効化 / 削除
M.140 キーワードの一時停止 / 有効化 / 削除
R.40 広告グループ広告
R.50 キーワード ビュー
R.70 検索キーワード ビュー
R.130 入札戦略

以下の機能が必須である点は変わりませんが、簡素化またはスコープの縮小が行われています
アイテム番号 機能 変更
C.20 地域ターゲッティングの有効化 必須。ユーザーベースに 1 つの国のみが関連する場合、ユーザーへの公開は任意。
C.30 言語ターゲッティングの有効化 必須。ユーザーベースに 1 つの言語のみが関連する場合、ユーザーへの公開は任意。
C.65 ウェブサイト / 通話コンバージョンの作成とコード スニペットの生成 少なくとも 1 種類のコンバージョン トラッキングが必須。
C.75 コールアウト表示オプション アカウント レベルのみ必須。
C.80 コールアウト表示オプション アカウント レベルのみ必須。
C.190 広告グループの作成 任意 : 複数の広告グループを作成する機能。
C.270 広告グループ除外キーワードの追加 広告グループレベルからキャンペーン レベルに変更。
M.10 キャンペーン設定の編集 作成時に必須の設定のみが変更時に必須(例 : C.50 は必須でなくなるので、編集時に NetworkSettings は必須でなくなる)。
R.10 顧客 1 つのキャンペーンを実施する場合のみ任意。
R.20 キャンペーン segments.ad_network_type と segments.device の要件を削除。
R.100 動的検索広告検索キーワード ビュー 動的検索広告を実装する場合のみ必須。

以下の機能は必須ではなくなります。デベロッパーは(すでに提供が終了しているものは除き)これらの機能を使い続けても構いませんが、Google Ads API の利用規約に準拠する上で必須ではなくなります。すでに提供が終了しているものは除き、これらの機能はすべて任意と見なされます。

ショッピング専用機能(* 印)は、ショッピング専用ツールに必須である点は変わりませんが、フルサービスのツールには必須ではなくなっています。
アイテム番号 機能
C.14 モバイル プラットフォームの入札単価調整の設定
C.15 タブレットとパソコン プラットフォームの入札単価調整の設定
C.21 距離ターゲッティングの有効化
C.25 地域入札単価調整の設定
C.41 拡張動的検索広告の設定
C.42 キャンペーン DSA 設定の設定
C.50 ネットワークのオプトイン / オプトアウト
C.70 住所表示オプション
C.72 アプリリンク表示オプション
C.90 入札オプションの設定 : 個別クリック単価
C.95 入札オプションの設定 : 拡張クリック単価
C.101 入札オプションの設定 : クリック数の最大化(ポートフォリオ)
C.140 配信方法の設定
C.191 広告グループ上限クリック単価入札の設定
C.192 広告グループ上限コンバージョン単価の設定
C.193 広告グループ目標広告費用対効果の設定
C.200 拡張テキスト広告の追加
C.290 キーワード上限クリック単価の設定
C.311 キーワード最終ページ URL の設定
C.320 アカウントレベル トラッキング テンプレート
C.321 キャンペーンレベル トラッキング テンプレート
C.325 キャンペーンレベル カスタム パラメータ
C.326 広告グループレベル カスタム パラメータ
C.328 アカウントレベル最終ページ URL サフィックス
C.329 キャンペーンレベル最終ページ URL サフィックス
C.500 ショッピング キャンペーンの作成 *
C.505 販売者識別子の設定 *
C.506 販売国の設定 *
C.510 商品フィルタの設定 *
C.520 商品広告の作成 *
C.525 最初の(ルート)商品パーティションの追加 *
C.530 ローカル在庫広告 *
C.610 電話専用広告
C.700 ユーザーリストを対象とする / 除外した広告グループ / キャンペーン条件の作成
C.710 検索ネットワーク キャンペーンと広告グループでのユーザーリストをターゲットとする入札単価調整の設定
M.15 モバイル、タブレット、パソコン プラットフォームの入札単価調整の編集
M.20 広告グループ設定の編集(作成機能での広告グループに関連するすべての必須設定)
M.25 地域入札単価調整の編集
M.35 広告のローテーションの有効化
M.40 キーワード上限クリック単価の編集
M.100 拡張テキスト広告の編集
M.101 入札オプションの編集 : クリック数の最大化(標準)
M.120 広告グループの一時停止 / 有効化 / 削除
M.150 商品フィルタの編集 *
M.160 分類(商品パーティションの追加)*
M.170 商品パーティションの削除 *
M.180 商品パーティションの上限クリック単価の編集 *
M.190 商品パーティションの除外(委譲)*
M.320 作成機能のすべてのトラッキング テンプレートの管理
M.325 作成機能のすべてのカスタム パラメータの管理
M.328 作成機能のすべての最終ページ URL サフィックスの管理
M.700 ユーザーリストを対象とする / 除外した広告グループ / キャンペーン条件の編集
M.710 検索ネットワーク キャンペーンと広告グループでのユーザーリストをターゲットとする入札単価調整の編集
R.30 広告グループ
R.80 地域ビュー
R.110 ショッピング パフォーマンス ビュー *
R.120 商品グループ ビュー *
R.150 キャンペーン オーディエンス ビュー
広告グループ オーディエンス ビュー

* フルサービス ツールでは、これらの機能は必須ではありません。ショッピング専用 RMF ツールでは、今後もこれらの機能を実装する必要があります

RMF に関して具体的な質問がある方は、Google Ads API コンプライアンス チームにお問い合わせください。
 
API について、ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。


この記事はプライバシーとデータ保護オフィス、プロダクト マネージャー、Miguel Guevara による Google Developers Blog の記事 "Expanding access to Differential Privacy to create a safer online ecosystem" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google は、プライバシー技術へのアクセスを拡大し、あらゆる人が利用できるものにしたいと考えています。私たちは、研究者、政府機関、非営利団体、企業などのデベロッパー コミュニティが、差分プライバシーに対応した新しいアプリケーションを作って公開するうえで役立つ無料ツールを作成しています。差分プライバシーは、個人に関する情報を一切明かすことなく、有用な知見やサービスを提供できるようにする技術です。データ プライバシー デーである今日(元記事公開当時)は、その作業に関する最新情報をお知らせします。プライバシーを考慮した設計のプロダクトによって、すべてのインターネット ユーザーにとって安全なエコシステムを作るために、業界を前進させることができれば幸いです。

この記事はプライバシーとデータ保護オフィス、プロダクト マネージャー、Miguel Guevara による Google Developers Blog の記事 "Expanding access to Differential Privacy to create a safer online ecosystem" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google は、プライバシー技術へのアクセスを拡大し、あらゆる人が利用できるものにしたいと考えています。私たちは、研究者、政府機関、非営利団体、企業などのデベロッパー コミュニティが、差分プライバシーに対応した新しいアプリケーションを作って公開するうえで役立つ無料ツールを作成しています。差分プライバシーは、個人に関する情報を一切明かすことなく、有用な知見やサービスを提供できるようにする技術です。データ プライバシー デーである今日(元記事公開当時)は、その作業に関する最新情報をお知らせします。プライバシーを考慮した設計のプロダクトによって、すべてのインターネット ユーザーにとって安全なエコシステムを作るために、業界を前進させることができれば幸いです。

差分プライバシーを利用できるデベロッパーを増やす

C++、Java、Go によるオープンソース版の基本差分プライバシー ライブラリを公開したのは、2019 年のことでした。そのときの目標は、透明性を実現し、研究者がコードを調査できるようにすることでした。自分たちのアプリケーションでこのライブラリを使いたいというデベロッパーから、大きな関心が寄せられ、その中には、さまざまな医療機関がプライバシーを保護しつつ、医療データから学習できるようにした Arkhn のようなスタートアップ企業もあれば、プライベートであることを証明できるデータを通して科学的発見を加速したオーストラリアのデベロッパーもありました。

その後も、私たちは差分プライバシーを広く利用できるようにするために、さまざまなプロジェクトや新手法に取り組み続けています。今回は、オープンソース デベロッパー団体 OpenMined と連携して 1 年間の開発を行ってきた結果として、差分プライバシー フレームワークの新たなマイルストーンを発表いたします。それは、あらゆる Python デベロッパーが差分プライバシーを用いてデータを処理できるプロダクトです。

これまでの差分プライバシー ライブラリは、3 つのプログラミング言語で利用できました。しかし、Python で利用できるようになった今、世界中のデベロッパーのほぼ半数にお届けできることになります。つまり、膨大な数のデベロッパー、研究者、企業が、業界をリードするプライバシー技術を使ったアプリケーションを作り、個人のプライバシーを保護、尊重しつつ、データセットから知見を得たりトレンドを観測したりできるようになります。

すでにこの新しい Python ライブラリを使い、新たなユースケースの実験を始めている組織もあります。たとえば、匿名で集計し、サイトで最もアクセスされているページを国ごとに表示するユースケースです。このライブラリの特徴は、大規模データ処理エンジンを代表する 2 つのフレームワークである Spark と Beam を使っており、柔軟な利用や実装ができることです。また、新たな差分プライバシー ツールとして、差分プライバシー情報を生成するために使うパラメータの視覚化やチューニングを行えるツールもリリースします。さらに、差分プライバシーをペタバイトとそれ以上のデータセットに効率的にスケールアップする技法をまとめた論文も公開します。

すべてのオープンソース プロジェクトと同じように、技術と成果がどれほどのものになるかはコミュニティ次第です。社内では、モビリティ レポートや Google マップの混雑状況機能を支えるインフラストラクチャなど、差分プライバシー ソリューションを開発するチームのトレーニングを行っています。私たちは目標を実現する一環として、差分プライバシー技術の導入方法を学びたい方を助けるために、OpenMined が Google 外部のエキスパート チームを編成することもサポートしました。

今後に向けて

世界中のデベロッパーの皆さんには、この機会を活用して、統計分析や機械学習などの差分プライバシーのユースケースを試してみることをおすすめします。しかし何よりも、フィードバックをお送りいただけることを願っています。皆さんが開発できるアプリケーションや、その過程で私たちが提供できる機能について、ぜひお知らせください。

私たちは、今後も重要なプライバシー強化技術へのアクセスを拡大する努力を続けるとともに、デベロッパーの皆さんがユーザビリティを向上し対象範囲を拡大する作業に加わっていただけることを願っています。先ほども述べましたが、世界中のすべてのインターネット ユーザーがワールドクラスのプライバシーに値するというのが私たちの考えです。その目標に向かうために、これからも多くの組織と連携を続けてゆきたいと思います。


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Google Maps Platform プロダクト マネージャーの Matt Brightman による Google Cloud Blog の記事 "Announcing Quick Builder, a new low-code tool for you to build location-based experiences" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
この記事は Google Maps Platform プロダクト マネージャーの Matt Brightman による Google Cloud Blog の記事 "Announcing Quick Builder, a new low-code tool for you to build location-based experiences" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google では、Google Maps Platform においてローコード開発の取り組みを進めています。15 年以上にわたり、Google はロケーションベースのカスタム ソリューションをスクラッチから開発して ArgosDunzoRedfin などのお客様を支援してきました。このアプローチは高いレベルのカスタマイズを想定したものですが、すべてのお客様がこのような実装を行うだけのリソースやパワーを持っているわけではないことも理解しています。Google において最も重要な理念のひとつが「誰でも利用可能」とすることです。その理念にもとづき、予算や専門知識の有無にかかわらず優れたロケーションベースのソリューションを簡単に構築できる Quick Builder を開発しました。まずは、ローコードとは何か、またなぜそのムーブメントに賛同しているのかについて説明します。

ローコード開発とは

ローコードとは、できるだけコードをゼロから書かなくてもよいよう、視覚的にソフトウェアを開発できるようにしようというアプローチです。ローコード ツールは、コードの書き方を知らなくても、誰でも使用できる直感的な自然言語ベースのインターフェースにコーディングを抽象化するため、これを使用することで、高度なテクノロジーを簡単に利用でき、データや設計、機能に関する重要な決定を行えるようになります。ステークホルダー向けのデモを作成したり、なんらかの決定事項のトレードオフを具体的に示したりするような作業は、ほとんどの場合にユーザー インターフェースのボタンをクリックするだけで実行できます。

その結果、自分でコードを書く場合よりも短時間で、デプロイ状態でのテストを完了することができ、本番環境に対応したカスタムのコードを作成できます。出力されたものをそのままコードベースにコピーして貼り付けることや、テンプレートとして使用することで、自由にカスタマイズや拡張をすることができます。

ローコード ツールを使えば高品質なソフトウェアの設計と開発がこれまでになく簡単になることから、世界中の組織がローコード ツールを重視しています。ガートナーのレポートでは、ローコードは今後も進化し続け、2025 年までにローコードの新たなクライアントのうち半分を IT 業界以外の事業者が占めるようになると予測しています。ローコードなら、たとえコードの書き方を知らなくても、アプリケーションを構築でき、設計上の決定を簡単かつ迅速にすることができます。

Quick Builder のご紹介

直感的なツールである Quick Builder を活用すれば、マッピングのニーズに適した API を見つけて試し、デプロイすることができます。過去の技術スキルや経験のレベルにかかわらず、このツールをビジネスの成長に役立て、本番環境に短時間でデプロイし、学習やテストにかかる時間を短縮することが可能になるのです。

Quick Builder の住所選択ソリューションのデモ


Google は、さまざまなエクスペリエンスを蓄積しています。Google Cloud Console の Google Maps Platform セクションにはローコード テンプレートのライブラリがあります。サンプルとして、一般的なロケーションベースのエクスペリエンス例を 3 つご紹介します。

  • 店舗の集客数を増やす : Locator Plus
    Locator Plus はユーザーが地図上で店舗の場所を見つけられるようにします。店舗側は営業時間や利用可能なサービス、ユーザーのレビュー、各場所の写真といった主な詳細情報を簡単に記入できます。ユーザーは Locator Plus を使って簡単に最適な行き先を見つけることができるので、小売業者がオンライン購入品の店舗受け取りオプションを導入する場合や、銀行が利用者に案内したい ATM がわかりにくい場所にある場合などに役立ちます。

  • 購入手続きを高速化してコンバージョン率を増やす : Address Selection
    ユーザーが自分の住所を手入力しなくてはならない場合、間違いがあると、コンバージョンの低下や、荷物が届かない、クレジット カードの請求ができないなどユーザー エクスペリエンスの低下につながることがあります。Place Autocomplete API で動く Address Selection を使えば、数文字を入力するだけで正確な住所が適切な形式で提示されるので、利用者がログインや購入手続きをすばやく簡単に行うのに役立ちます。

  • 地域に密着した情報で地図を強化する : Neighborhood Discovery
    不動産会社や旅行会社の利用者にとって、職場に近い場所にあるかやお気に入りのレストランやカフェが近くにあるかなど、近隣の情報は大きな関心事です。Neighborhood Discovery を使用すれば、利用者の好みに合わせておすすめの施設やアトラクションを動的マップで表示して、地域密着型のエクスペリエンスを提供できます。

Quick Builder は、ローコードによる学習を好む方にとっては便利なツールです。データを追加し、リアルタイム プレビューで確認して、提案されたデザインの中から自社のビジネス ニーズに最適なものを選択します。気に入るものができたら、カスタムのサンプルコードをエクスポートするか、Google の クラウド ホスティング機能を使用することにより、たった 1 行のコードでウェブサイトにソリューションを埋め込むことができます。Quick Builder を使って、かつてないほど短時間で本番環境対応のカスタマイズ されたコードを取得して、本番環境にデプロイしましょう。

将来を見据えて

これは始まりにすぎません。Google は、お客様がデプロイした Google Maps Platform を最大限に活用できるようにするにはどうすればよいかを常に模索しています。今後、ローコード ソリューションのテンプレートを Quick Builder ライブラリに追加していきますので、ぜひご期待ください。Quick Builder の詳細については、MapsOnAir ウェビナーをご覧ください。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。



Posted by 丸山 智康 (Tomoyasu Maruyama) - Developer Relations Engineer

この記事は Nick Birine による Google Ads Developer Blog の記事 "Announcing DSA Page Feeds and Dynamic Remarketing Feeds are migrating to Assets" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...
この記事は Nick Birine による Google Ads Developer Blog の記事 "Announcing DSA Page Feeds and Dynamic Remarketing Feeds are migrating to Assets" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Ads API の動的検索広告(DSA)ページフィードと動的リマーケティング フィードの、アセットへの移行予定についてお知らせします。これらのアセットは、Google Ads API のみで利用できます。

現在の Google Ads API のフィード サービスは、アセットベースの構成に置き換わります。すべての既存の DSA と動的リマーケティングのフィードは、アセットに移行されます。API ユーザーには、自動移行日が来る前に、既存のフィードを手動で移行することをおすすめしています。すべての既存のフィードは自動移行日以降に削除され、アセットベースの同等なものに置換されます。以前のフィードと自動移行されたアセットは一切リンク付けされません。そのため、このリンク付けの維持が重要なユースケースがある場合、API ユーザーには、フィードを手動移行することを推奨します。

以前のタイプ 利用できるアセット 自動移行の日付
DSA ページフィード
動的リマーケティング :
  • 教育
Google Ads API v9 2022 年 4 月 27 日
動的リマーケティング :
  • カスタム
  • フライト
  • ホテル
  • 不動産
  • 旅行
  • 地域
  • 求人
Google Ads API v10_1 2022 年 10 月 5 日


行うべきこと
できる限り早急に、DSA ページフィードと動的リマーケティング フィードを移行して新しいアセットタイプを使うようにする必要があります。移行後は、フィードベースのエンティティを削除してください。移行期間中には、以前のフィードとアセットベースのフィードが混在し、キャンペーンで両方が提供される可能性があります。詳しくは、DSA と動的リマーケティングの移行ガイドをご覧ください。テスト アカウントを使って、アセットベースの実装を作成してテストすることをご検討ください。

自動移行日以降は、AdWords API と Google Ads API で以前のフィードの取得や作成、変更はできなくなります。

なお、フィードのアップロードや管理に Google 広告 UI しか使っていない場合は、自動的にアセットに移行されるので、追加で何かを行う必要はありません。

ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。



この記事は David Stevens による Google Ads Developer Blog の記事 "Updated schedule of Google Ads API 2022 releases and sunsets" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...
この記事は David Stevens による Google Ads Developer Blog の記事 "Updated schedule of Google Ads API 2022 releases and sunsets" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

デベロッパーの皆さんが AdWords API から移行することをサポートするために、2022 年の Google Ads API のリリースと提供終了のスケジュールを更新したことをお知らせします。Google Ads API v7 と v8 は、AdWords API の提供終了と合わせて、2022 年 4 月 / 5 月に提供終了となる予定です。

以下の日付はあくまで想定であり、今後変更される可能性があること、ご容赦ください。リリースの追加や削除、メジャー版とマイナー版の切り替えが発生する可能性もあります。最新情報は、リリースノートサポートの終了スケジュールにてご確認ください。

注 : AdWords API は、2022 年 4 月に提供が終了する予定です。Google 広告アカウントの管理を続けるには、それまでにすべてのリクエストを Google Ads API に移行してください。

更新版リリース スケジュール :
バージョン 計画されているリリースの
種類 *
リリース予定 * 提供終了予定 *
v7 メジャー 2021 年 4 月 28 日(リリース済み) 2022 年 4 月 / 5 月
v8 メジャー 2021 年 6 月 9 日(リリース済み) 2022 年 4 月 / 5 月
v8_1 マイナー 2021 年 8 月 11 日(リリース済み) 2022 年 4 月 / 5 月
v9 メジャー 2021 年 10 月(リリース済み) 2022 年 6 月 / 7 月
v10 メジャー 2022 年 2 月 / 3 月 2022 年 10 月 / 11 月
v10_1 マイナー 2022 年 4 月 / 5 月 2022 年 10 月 / 11 月
v11 メジャー 2022 年 6 月 / 7 月 2023 年 3 月 / 4 月
v11_1 マイナー 2022 年 8 月 / 9 月 2023 年 3 月 / 4 月
v12 メジャー 2022 年 10 月 / 11 月 2023 年 6 月 / 7 月
* 想定であり、変更される可能性があります

さらに詳しく知りたい方へ
以下のリソースは、開発の計画を立てるうえで役立ちます。
ご質問やさらにサポートが必要なことがありましたら、フォーラムからご連絡ください。





Reviewed by Thanet Knack Praneenararat - Ads Developer Relations Team

この記事は Developer Relations Engineer の Chris Arriola による Google Cloud Blog の記事 "A video guide to reactive programming with Google Maps Platform" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。 ...

この記事は Developer Relations Engineer の Chris Arriola による Google Cloud Blog の記事 "A video guide to reactive programming with Google Maps Platform" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Maps Platform Android SDK は、非同期操作を管理するコードを記述するのに役立つ、リアクティブ プログラミングの拡張機能をサポートしています。

Google Maps Platform を使ってリアクティブでレスポンシブなマッピング アプリケーションを構築する

ユーザーのタッチイベントから、ネットワーク呼び出し完了の待機やプッシュ通知の受け取りに至るまで、モバイルアプリでは非同期イベントはあらゆるタイミングで発生する可能性があります。こうしたイベントを考慮しながら他の非同期イベントと組み合わせてコードを記述するのは、アプリ デベロッパーにとって手間のかかる作業です。リアクティブ プログラミングを使えば個々のイベントのコールバックを渡す必要がなくなるため、非同期イベントを扱うプロセスを簡素化できます。リアクティブ プログラミングでは、イベントはストリーミングとしてモデル化され、アイテムが 1 つずつ処理されます。


リアクティブなコード記述には、Kotlin Flows と RxJava の 2 つのライブラリを使用できます。次の 2 つの動画で、それぞれのライブラリの使い方を説明します。

Kotlin を使ってリアクティブでレスポンシブなアプリケーションを作成する

Kotlin でコルーチンと Flow を使用する場合は、KTX ライブラリを使えば Kotlin Flow でイベントを受け取ることができます。Maps KTX ライブラリには Kotlin Flow オブジェクトを返す拡張機能が含まれているため、リアクティブにイベントをリッスンできます。Kotlin Flows では、アクティビティを一時停止して 1 個の値を返すのではなく、時間の経過とともに複数の値を 1 個ずつ返すことができます。例えばカメラのように時間の経過とともに変化するイベントも、Flow を使って受け取ることができます。アプリで Kotlin Flow を使うには、build.gradle ファイルの依存関係セクションに Maps KTX ライブラリを追加します。


RxJava で Android 向けにリアクティブな地図を作る

一般に広く使用されている Android ライブラリ RxJava を Google Maps Platform の SDK に統合します。RxJava はリアクティブ拡張機能を Java で実行するもので、観測可能なシーケンスを使って非同期かつイベントベースのプログラムを記述するためのライブラリです。RxJava を使えば、連鎖的に発生する変化をコールバック ベースの非同期コードで記述できます。この仕組みと、RxJava のその他の使い方を 3 つ目の動画で説明します。


今回の 3 部構成の YouTube 動画シリーズでリアクティブ プログラミングの考え方について理解を深め、レスポンシブでリアクティブなモバイルアプリの作成にお役立ていただければ幸いです。役に立つ動画のアイデアがあれば、私たちの動画のコメント欄に投稿してください(どの動画でもかまいません)。最新情報、チュートリアル、お客様事例などをお届けする Google Maps Platform の YouTube チャンネルに、ぜひご登録ください。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。


この記事は Chromium Blog の記事 "Chrome 98 Beta: Color Gradient Vector Fonts, Region Capture Origin Trial, and More" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、リンクまたは ChromeStatus.com の一覧でご確認ください。2022 年 1 月 10 日の時点で Chrome 98 はベータ版です。PC 向けの最新版は Google.com で、Android では Google Play ストアでダウンロードできます。 

この記事は Chromium Blog の記事 "Chrome 98 Beta: Color Gradient Vector Fonts, Region Capture Origin Trial, and More" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


特に記載のない限り、下記の変更は Android、Chrome OS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、リンクまたは ChromeStatus.com の一覧でご確認ください。2022 年 1 月 10 日の時点で Chrome 98 はベータ版です。PC 向けの最新版は Google.com で、Android では Google Play ストアでダウンロードできます。 

COLRv1 カラー グラデーション ベクター フォント

このバージョンの Chrome は、新しく追加されたフォント形式として COLRv1 カラー グラデーション ベクター フォントをサポートします。カラーフォントのグリフには複数の色が含まれています。例として、絵文字や国旗、多色文字などが挙げられます。

COLRv1 は COLRv0 フォント形式が進化したもので、ウェブでのカラーフォントの普及を目的としています。COLRv1 フォントは、グラデーション、座標変換、合成などのさまざまな視覚表現に対応しながらも、フォントのサイズはとても小さくなっています。また、COLRv1 フォントは OpenType のバリエーションもサポートしています。フォントのサイズがとても小さいのは、内部形状の再利用とコンパクトなフォント形式定義、効率的な圧縮によるものです。

次のイメージは、Noto Color Emoji の例を示しています。これはビットマップ フォントでは約 9 MB ですが、COLRv1 ベクター フォントでは 1.85 MB しかありません(WOFF2 圧縮後)。

2 つの国立公園の絵文字。片方は明瞭でもう片方はぼやけている。棒グラフは、ビットマップ フォントと COLRv1 フォントの Noto Emoji のバイナリサイズ(約 9MB と 1.85MB)を比較している。
明瞭な COLRv1 ベクター フォント(左)と、ビットマップ フォント(右)の比較。
WOFF2 圧縮後のビットマップ フォントと  COLRv1 フォントとしての Noto Emoji のフォントサイズ。

詳細については、Chrome 98 の COLRv1 カラー グラデーション ベクター フォントをご覧ください。

3 桁のバージョン番号に対する準備

今年中に Chrome のバージョン 100 がリリースされ、ユーザー エージェント文字列で報告されるバージョン番号の桁数が増える予定です。サイトオーナーが新しい文字列をテストしやすくするために、Chrome 96 では、Chrome のユーザー エージェント文字列として「100」が返されるようにするランタイム フラグが導入されました。この新しいフラグ chrome://flags/#force-major-version-to-100 は、Chrome 96 以降で利用できます。詳細については、Chrome の User-Agent 文字列のメジャー バージョンを強制的に 100 にするをご覧ください。

オリジン トライアル

このバージョンの Chrome には、以下のオリジン トライアルが導入されています。オリジン トライアルとして新機能を試せるようにすることで、ウェブ標準コミュニティにユーザビリティ、実用性、有効性についてのフィードバックを提供することができます。以下の項目を含め、現在 Chrome でサポートされているオリジン トライアルに登録するには、Chrome オリジン トライアル ダッシュボードをご覧ください。Chrome のオリジン トライアルの詳細については、ウェブ デベロッパーのためのオリジン トライアル ガイドをご覧ください。Microsoft Edge は、Chrome とは別に独自のオリジン トライアルを行っています。詳細については、Microsoft Edge オリジン トライアル デベロッパー コンソールをご覧ください。

新しいオリジン トライアル

リージョン キャプチャ

リージョン キャプチャは、自分でキャプチャした動画トラックをクロップするための API です。現在、アプリケーションは、preferCurrentTab の指定の有無にかかわらず、getDisplayMedia() を使ってアプリケーション自体が実行されているタブをキャプチャできます。その際、(通常はリモートに共有する前に)結果の動画トラックをクロップし、コンテンツの一部を削除する場合があります。

今回のリリースに追加されたその他の機能

contain-intrinsic-size に auto キーワードを追加

contain-intrinsic-size に auto キーワードのサポートが追加され、ウェブサイトで最後に記憶した要素のサイズ(存在する場合)が利用できるようになります。これにより、content-visibility: auto が指定された要素よりもユーザー エクスペリエンスが向上します。この機能がない場合、ウェブ デベロッパーは要素がレンダリングされるサイズを推定しなければなりません。この機能と content-visibility: auto を併用すると、要素が飛び回る可能性があります。

AudioContext.outputLatency

新しい AudioContext.outputLatency プロパティは、オーディオ出力のレイテンシを秒単位で推定します。厳密に言えば、これはユーザー エージェントがホストシステムにバッファリングをリクエストした時間から、オーディオ出力デバイスがバッファ内の最初のサンプルを処理した時間までの間隔です。スピーカーやヘッドフォンなど、音響シグナルを生成するデバイスの場合、後者の時間はサンプルのサウンドが生成された時間です。Firefox では、すでにこの機能が実装されています。

CSS の色調整 : color-scheme の 'only' キーワード

color-scheme の仕様に再追加された only キーワードが Chrome でサポートされるようになりました。これにより、特定の単一要素で color-scheme を無効化できるようになります。たとえば、強制的なダーク化を無効化できます。いくつかの例で使い方を示します。

div { color-scheme: light }

これは、div 要素の color-scheme を強制的にダーク以外にします。

div { color-scheme: only light }

これは、上の例と同じく、要素の color-scheme をライトに保ち、ユーザー エージェントによる強制ダーク化を無効にします。

document.adoptedStyleSheets の変更が可能に

仕様に従い、document.adoptedStyleSheets プロパティの変更が可能になります。これにより、push()pop() などの操作ができるようになります。これまでの adoptedStyleSheets の実装は扱いにくく、たとえばシートを追加する場合、配列全体を代入し直さなければなりませんでした。

document.adoptedStyleSheets = [...adoptedStyleSheets, newSheet];

新しい実装では、同じ操作を次のように行うことができます。

document.adoptedStyleSheets.push(newSheet);

ハイ ダイナミック レンジ カラーのメディアクエリ

Chrome で CSS メディアクエリ 'dynamic-range' と 'video-dynamic-range' がサポートされ、現在のディスプレイ デバイスの HDR サポート状況を検出できるようになります。有効な値は、'standard''high' です。このクエリを使うと、ページで CSS ルールを切り替えたり、Window.matchMedia() を使って変更に対応したりできます。

ポップアップ、タブ、ウィンドウのための新たな window.open() の動作

仕様の更新に伴い、このバージョンの Chrome では window.open() で新しいウィンドウやタブを開くかどうかを指定できるようになります。次の例に新しい構文を示します。1 つ目は、ポップアップ ウィンドウを開きます。2 つ目は、新しいタブまたはウィンドウを開きます。

const popup = window.open('_blank','','popup=1');

const tab = window.open('_blank','','popup=0');


また、window.statusbar.visible が正しい値を返すようになります。具体的には、ポップアップでは false を、タブやウィンドウでは true を返します。

Private Network Access なサブリソースに Preflight リクエスト

サブリソースに対するプライベート ネットワーク リクエストの前に CORS Preflight リクエストが送られ、対象サーバーから明示的なパーミッションを求めるようになります。プライベート ネットワーク リクエストとは、パブリックなウェブサイトからプライベート IP アドレスや localhost へのリクエスト、またはプライベートなウェブサイト(イントラネットなど)から localhost へのリクエストを指します。プリフライト リクエストを送ることで、ルーターなどのプライベート ネットワーク デバイスに対する Cross-Site Request Forgery (CSRF) 攻撃のリスクを緩和できます。多くの場合、プライベート ネットワーク デバイスはこのような脅威から保護されていません。

window と worker の structuredClone() メソッド

window と worker が、オブジェクトをディープコピーする structuredClone() メソッドをサポートします。ディープコピーでは、オブジェクトのプロパティがコピーされますが、その際に別のオブジェクトへの参照を見つけると、自身を再帰的に呼び出してそのオブジェクトもコピーします。これにより、2 つのコードで意図せずにオブジェクトが共有され、知らない間にお互いの状態を変更してしまうことがなくなります。ディープコピーの説明や使い方については、structuredClone による JavaScript のディープコピーをご覧ください。

WebAuthn minPinLength 拡張機能

Chrome で、Web Authentication を通して CTAP 2.1 minPinLength 拡張機能が公開されるようになります。これにより、あらかじめセキュリティ キーが構成されているサイトで、認証システムに設定された最小 PIN 長を知ることができるようになります。

インストールした PC ウェブアプリ向けのウィンドウ コントロール オーバーレイ

インストールした PC ウェブアプリでウィンドウ コントロール オーバーレイが有効になっている場合、アプリのクライアント領域が拡張され、タイトルバー領域を含むウィンドウ全体を覆います。そのため、ウィンドウ コントロール ボタン(閉じる、最大化 / 復元、最小化)はクライアント領域の上に重なって表示されます。ウェブ デベロッパーは、ウィンドウ コントロール オーバーレイを除くウィンドウ全体の描画と入力ハンドリングをする必要があります。この機能を使うと、デベロッパーはインストールされた PC ウェブアプリを OS のアプリのように見せることができます。

WritableStream コントローラーの AbortSignal

WritableStreamDefaultController が signal プロパティをサポートします。このプロパティは、必要に応じて WritableStream 操作を停止できる AbortSignal のインスタンスを返します。ストリーム API では、データ ストリームの作成、構成、使用のためのユビキタスで相互運用可能なプリミティブが提供されます。この変更により、ライターからのリクエストがあったときに、下層のシンクが継続中の書き込み操作を即座に中断したりクローズしたりできるようになります。これまでは、writer.abort() が呼び出されても、時間がかかる書き込み操作が完了してからでないとストリームを中断できませんでした。この変更により、書き込みを即座に中断できるようになります。この機能は、JavaScript で作成したストリームだけでなく、プラットフォームが提供する WebTransport などのストリームでも利用できます。

サポートの終了と機能の削除

このバージョンの Chrome では、以下のサポートの終了と機能の削除が行われます。現在サポートが終了している機能以前に削除された機能のリストは、ChromeStatus.com をご覧ください。

WebRTC での SDES 鍵交換の削除

2013 年以降、WebRTC の SDES 鍵交換メカニズムは、関連する IETF 標準で使用禁止と宣言されています。昨年には、Chrome での使用も大幅に減少しました。SDES が削除されるのは、これがセキュリティの問題になっているためです。Javascript にセッションキーが公開されるので、ネゴシエーションの交換にアクセスできるエンティティや Javascript を侵害できるエンティティが、その接続で送信されるメディアを復号化できることになります。


Reviewed by Eiji Kitamura - Developer Relations Team