Mobileアプリの開発・運用において、アプリのパフォーマンスやクラッシュ情報をリアルタイムに把握することは、優れたユーザー体験を維持するために極めて重要です。しかし近年、広告ブロックの手法として VPNやDNSによるブロック(DNSレベルのブロッキング) が広く利用されるようになり、運用上の思わぬ課題が生じています。
こうした広告ブロックアプリの影響により、アプリの稼働状況を観測するNew Relic Mobile Agentからのテレメトリデータ(パフォーマンスやクラッシュなどのデータ)の送信が遮断されてしまうケースがあるのです。
本記事では、このような状況下でも確実にアプリのデータを収集し、モバイルアプリの可観測性(オブザーバビリティ)を維持するための具体的な解決策をご紹介します。
💡 対応方針:お客様ドメインを経由させた中継(プロキシ)送信
基本的なアプローチは、 「newrelic.com のエンドポイントに直接データを送信するのではなく、お客様自身が所有するドメインを経由して送信する」 というシンプルなものです。
ユーザーがお客様のアプリを正常に利用するためには、アプリの通信先であるお客様自身のドメインへのアクセスがあらかじめ許可されている必要があります。この特性を活かし、テレメトリデータを一度お客様のドメイン(プロキシ等)に中継させ、そこからNew Relicへ転送することで、広告ブロックによる影響を賢く回避できます。
送信先ドメインの変更が可能な理由
New RelicのMobile Agentには、米国の政府基準であるFedRAMP対応の一環として、テレメトリデータの送信先ドメインを設定でカスタマイズできる機能が標準で備わっています。
以前ご紹介したBrowser Agentでの対策と同様に、お客様の環境内に中継用エンドポイントを用意し、Mobile Agentの送信先をそちらに切り替えることで対応可能です。
🛠️ 具体的な対応手順
対応は、以下の2つのステップで進めます。
ステップ 1:中継用エンドポイント(プロキシ)の作成
Browser Agentでの対策同様、AWSのAmazon CloudFront を使用した中継設定の構成例をご紹介します。
中継(プロキシ)が必要となるエンドポイントは、以下の2種類です。
-
mobile-collector(通常のデータ送信用) -
mobile-crash(クラッシュデータ送信用)
CloudFrontの具体的な設定手順は、以前のブログ記事内の「Agent of データ送信用ディストリビューション」向けの設定内容に準拠して行ってください。その際、CloudFrontに設定する「オリジンドメイン(転送先)」は、ご利用のデータセンター(DC)に合わせて以下の宛先を指定します。
データセンター(DC)別のオリジンドメイン一覧
-
US(米国データセンター)
- 通常データ:
mobile-collector.newrelic.com - クラッシュデータ:
mobile-crash.newrelic.com
- 通常データ:
-
EU(欧州データセンター)
- 通常データ:
mobile-collector.eu01.nr-data.net - クラッシュデータ:
mobile-crash.eu01.nr-data.net
- 通常データ:
-
JP(日本データセンター)
- 通常データ:
mobile-collector.jp.nr-data.net - クラッシュデータ:
mobile-crash.jp.nr-data.net
- 通常データ:
ステップ 2:Mobile Agent側の設定変更
中継用エンドポイント(CloudFront等)の準備が整ったら、Mobile Agentの初期化ロジックに送信先ドメインを適用します。
各SDKで提供されている設定用API(iOSの場合:andCollectorAddress および andCrashCollectorAddress)を使用し、ステップ1で作成した中継ドメインを指定します。これだけでエージェント側の設定変更は完了です。
⚠️ 導入時の注意事項
この中継(プロキシ)構成を導入するにあたり、1点だけ事前にご留意いただきたい仕様があります。
テレメトリデータを中継して送信する場合、New Relicに到達するパケットの送信元IPアドレスは「エンドユーザーのデバイスIP」ではなく、 「中継サーバー(CloudFront等)のIPアドレス」 に置き換わります。
これにより、収集データに以下の影響が生じます。
- 送信されてきた各種Eventに自動付与される
asn(Autonomous System Number: 自治システム番号) - および
asnから始まる関連フィールドに保存される情報
これらのフィールドには、エンドユーザーが接続している実際のモバイルキャリアやISPの情報ではなく、 「中継エンドポイント(CloudFront等のプロバイダ)」 に紐づくネットワーク情報が記録されることになります。地理的情報の分析やキャリア別のトラフィック分析などを行っている場合は、この変化にご注意ください。