ハイライト
15分間維持されるソフィアのアドレスが必要ですか。Proxy Finderで指定可能になりました。Premium出口では地域、都市、ネットワーク、デバイスタイプ、有効期間を指定でき、返されるproxy IDによってSingleおよびBrowserでもその場所が引き継がれます。Dashboardでは検索可能フィールドがモバイル端末でも正常に動作するようになり、新規アカウントのOverviewにおける読み込み中のレイアウト崩れを解消しました。また、PlaygroundでのAuto実行がHistoryに記録されるようになりました。以下に記載するすべての機能はすでに本番環境で利用可能であり、大半はchangelogにも掲載されています。
新機能
地域、都市、ネットワーク、デバイス指定のPremium出口
ターゲットによっては、国だけでなく正確な接続元が判定基準になります。都市ごとに変動する価格設定、店舗検索、あるいは家庭用回線とモバイルキャリアを区別するサイトなどが該当します。Proxy FinderのPremium出口で、新たに5つのフィールドが指定可能になりました。
exitState、exitCity、exitAsnは、出口の地域、都市、またはネットワーク(AS番号単位)を指定します。これらを使用するにはexitCountriesで国を1つだけ指定する必要があります。exitOsは、アドレスが属するデバイスタイプ(windows、android、ios、mac)を指定します。exitLifetimeMinは、同一アドレスを3分から1,440分まで保持します。
これらの指定にはexitClass: "premium"が必要となり、リクエストはPremium出口経由でのみ送信されます。標準プールでは場所の固定に対応していないためです。地域、都市、ネットワーク、デバイスの指定には、ジオターゲティング対応プランも必要です。Premiumトラフィックを使い切った場合、リクエストはX-FourA-Limit: plan_limit_premiumを含む403で拒否されるため、意図しない場所から送信されることはありません。
この機能の利点は初回の呼び出し後にあります。レスポンス内のproxy IDに場所情報が保持されるため、SingleまたはBrowserでの後続リクエストにはそのIDを指定するだけで済みます。
import requests
H = {"X-API-Key": "pk_live_..."}
r = requests.post(
"https://api.foura.ai/api/proxy",
headers=H,
json={
"exitClass": "premium",
"exitCountries": ["BG"],
"exitCity": "sofia",
"exitLifetimeMin": 15,
"request": {"method": "GET", "url": "https://example.com/"},
},
).json()
# Same city, same address, for the lifetime you asked for
page = requests.post(
"https://api.foura.ai/api/single",
headers=H,
json={"url": "https://example.com/stores", "proxy": r["proxy"]},
).json()
これらは、proxy portがstate、city、asn、osにすでに対応している指定値であるため、ポート側で調整したターゲティングをそのまま引き継ぐことができます。すべてのルールはexit location referenceに記載されており、Dashboard playgroundのProxyタブにはExit locationグループがあるため、コードを書く前にロケーションをテストできます。
もう1点変更があります。国リストを指定したプレミアムイグジットはそのリスト内に留まるようになり、レスポンス内のexitCountryには、標準プールと同様にリクエストの送信元となった国名が示されます。
Browserがproxy IDから国を読み取る仕様に変更
Webページはブラウザのタイムゾーンと検知したアドレスの国を比較することが可能であり、この不一致は最も低コストで検知できるBotシグナルの1つです。Browserはこの2つを自動的に整合させます。proxy IDのみからタイムゾーンを取得するようになったため、/api/browserのexitCountryフィールドは廃止されました。このフィールドを送信し続けるリクエストも動作は継続し、単に値が無視されます。
スマートフォン対応と新規アカウント向けのDashboard改善
Dashboardの検索可能なドロップダウンがスマートフォン上で正常に動作するようになりました。iPhoneでタップしてもページが拡大されず、他の場所をタップすればリストが閉じ、リストを開いてもキーボードは表示されず、キーボード表示領域に収まるよう配置されます。ラベル横の小さな (i) をタップしても、下にあるフィールドが開くことはなくなりました。
新規アカウントのOverviewでは、セットアップガイドがページの他の要素と同時に読み込まれるようになりました。そのため、一度表示されたフィルターが後から下にずれることがなくなりました。まだAPIトラフィックがないアカウントでは、APIパネルにのみ「Sample」ラベルが表示されます(proxy portのみを利用している場合、Proxyパネルにはラベルなしで実際の実績値が表示されます)。
Autoの実行履歴がHistoryに対応
Dashboard playgroundでのAutoの実行結果が、Single、Proxy、Browserと並んでHistoryに記録されるようになり、Autoリクエストをプリセットとして保存できるようになりました。Autoは本番運用用の経路ではなく最適なパスを探索するための機能です。Webサイトへの有効なアクセス方法を特定し、返されたセッションをSingle、Proxy Finder、またはBrowserで大量にリプレイして利用します。実行結果がHistoryに残るため、見つかったルートを後から再確認でき、「Carry」ボタンを使うことでそのユーザーエージェントとproxy IDを他のタブに移行できます。
月次後払いプラン向けの請求書発行
月次後払いのプランをご利用の場合、各請求月が終了した時点で請求書が自動発行され、支払期日は7日後となります。メールにはPDF、振込先口座情報、および支払リファレンスとして使用する請求書番号が記載されます。同じ請求書はBillingのInvoicesからも確認できます。
内部仕様のアップデート
Browserサーバーが自身の作業用メモリを自律的に解放するようになりました。メモリが不足した場合でも、復旧するまでローテーションから自動的に除外され、リクエストは正常に処理を完了できるサーバーにルーティングされます。APIサーバーにも同様の改善が適用されました。ヘルスチェックが停止の要因になり得る処理を待たない設計になったため、正常に処理できないサーバーは迅速に検知され、トラフィックは他のサーバーへと再割り当てされます。
かつてproxy IDといえば単一のイグジットを指していました。現在では、都市、ネットワーク、そして15分間という時間枠を意味する場合があります。