(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6972191
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】モバイルアプリケーションアクティビティ検出器
(51)【国際特許分類】
G06F 11/34 20060101AFI20211111BHJP
G06F 13/00 20060101ALI20211111BHJP
【FI】
G06F11/34 138
G06F13/00 530A
【請求項の数】20
【外国語出願】
【全頁数】24
(21)【出願番号】特願2020-784(P2020-784)
(22)【出願日】2020年1月7日
(62)【分割の表示】特願2017-556915(P2017-556915)の分割
【原出願日】2017年6月7日
(65)【公開番号】特開2020-74135(P2020-74135A)
(43)【公開日】2020年5月14日
【審査請求日】2020年1月22日
(31)【優先権主張番号】15/436,167
(32)【優先日】2017年2月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ロクサーナ・モアッター−アリアバディ
(72)【発明者】
【氏名】アルパナ・ホサベットゥ
(72)【発明者】
【氏名】アジャイ・アナンス・クリシュナ
(72)【発明者】
【氏名】タル・マックス・アカバス
【審査官】
多胡 滋
(56)【参考文献】
【文献】
特開2015−079302(JP,A)
【文献】
特開2013−080319(JP,A)
【文献】
米国特許出願公開第2014/0236742(US,A1)
【文献】
特開2016−048476(JP,A)
【文献】
特開2013−008233(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
第2のアプリケーション内の指定されたユーザアクションの発生に応答してクライアントデバイスから、(i)前記第2のアプリケーション内の前記指定されたユーザアクションの前記発生と、前記第2のアプリケーションとは異なる第1のアプリケーションにおいて提示され、かつ前記指定されたユーザアクションの前記発生の前にユーザによってインタラクトされた、所与のインタラクティブアイテムを識別する所与のインタラクティブアイテム識別子とを指定するイベントデータを受信するステップと、
前記所与のインタラクティブアイテム識別子を、それぞれのインタラクティブアイテム識別子に対応するそれぞれのインタラクティブアイテムとのユーザインタラクションを一意に識別する、対応するユーザインタラクション識別子に前記それぞれのインタラクティブアイテム識別子を各々がリンクする複数のデータエントリと比較するステップと、
前記比較に少なくとも基づいて、前記指定されたユーザアクションが、前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子と、データ記憶デバイスに記憶された対応するユーザインタラクション識別子にリンクするインタラクティブアイテム識別子との間の一致に基づいて、前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定するステップと、
前記指定されたユーザアクションが、前記所与のインタラクティブアイテムとの前記ユーザインタラクションから発生したとの前記決定に基づいて、前記所与のインタラクティブアイテムについての性能測定値を更新するステップと、
前記更新された性能測定値を表現のために提供するステップと
を含む、方法。
【請求項2】
前記クライアントデバイスから、かつ前記イベントデータを受信する前に、(i)第1のモバイルアプリケーション内の前記インタラクティブアイテムとの前記ユーザインタラクションを一意に識別する所与のユーザインタラクション識別子と、(ii)前記所与のインタラクティブアイテムを識別する前記所与のインタラクティブアイテム識別子とを指定するインタラクションデータを受信するステップであって、前記クライアントデバイスが、前記第1のモバイルアプリケーション内の前記所与のインタラクティブアイテムとのユーザインタラクションに応答して前記インタラクションデータを送信し、前記所与のインタラクティブアイテムが、前記第2のアプリケーションに対してコンテンツを提示する、ステップと、
前記インタラクションデータを受信するステップに応答して、前記複数のデータエントリのうちの1つとして、前記所与のユーザインタラクションアイテム識別子を前記所与のインタラクティブアイテム識別子にリンクするデータエントリを記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
各データエントリが、インタラクションデータが受信されたデバイスを一意に識別するそれぞれのデバイス識別子を含み、前記方法が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定するステップと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定するステップに応答して、前記イベントデータが受信された前記クライアントデバイスについての所与のデバイス識別子を、前記複数のデータエントリの各々の前記それぞれのデバイス識別子と比較するステップと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定するステップが、前記所与のデバイス識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのデバイス識別子と一致するか判定するステップを含む、
請求項2に記載の方法。
【請求項4】
各データエントリが、インタラクティブアイテムとのユーザインタラクションが発生したアプリケーションを一意に識別するそれぞれのアプリケーション識別子を含み、前記方法が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定するステップと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定するステップに応答して、前記第1のアプリケーションについての所与のアプリケーション識別子を、前記複数のデータエントリの各々の前記それぞれのアプリケーション識別子と比較するステップと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定するステップが、前記所与のアプリケーション識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのアプリケーション識別子と一致するか判定するステップを含む、
請求項2に記載の方法。
【請求項5】
前記イベントデータを受信するステップが、前記クライアントデバイス上で実行しているモバイルアプリケーション管理アプリケーションから前記イベントデータを受信するステップを含み、前記モバイルアプリケーション管理アプリケーションが、前記ユーザに、前記クライアントデバイスへのアプリケーションのダウンロードを可能にする、請求項1に記載の方法。
【請求項6】
前記インタラクティブアイテムとのユーザインタラクションの検出が、前記クライアントデバイスに、前記第2のアプリケーションをダウンロードするために前記モバイルアプリケーション管理アプリケーションを開始させ、
前記指定されたイベントが、前記モバイルアプリケーション管理アプリケーションを使用して前記第2のアプリケーションをダウンロードすることを含む、
請求項5に記載の方法。
【請求項7】
前記インタラクティブアイテムとのユーザインタラクションの検出が、前記クライアントデバイスに、前記第2のアプリケーションについてのコンテンツを購入するために前記モバイルアプリケーション管理アプリケーションを開始させ、
前記指定されたイベントが、前記モバイルアプリケーション管理アプリケーションを使用した前記第2のアプリケーションについての前記コンテンツの前記購入を含む、
請求項5に記載の方法。
【請求項8】
システムであって、
1つまたは複数のデータ処理装置と、
データ記憶媒体であって、前記データ処理装置によって実行されたとき、前記データ処理装置に、
第2のアプリケーション内の指定されたユーザアクションの発生に応答してクライアントデバイスから、(i)前記第2のアプリケーション内の前記指定されたユーザアクションの前記発生と、前記第2のアプリケーションとは異なる第1のアプリケーションにおいて提示され、かつ前記指定されたユーザアクションの前記発生の前にユーザによってインタラクトされた、所与のインタラクティブアイテムを識別する所与のインタラクティブアイテム識別子とを指定するイベントデータを受信することと、
前記所与のインタラクティブアイテム識別子を、それぞれのインタラクティブアイテム識別子に対応するそれぞれのインタラクティブアイテムとのユーザインタラクションを一意に識別する、対応するユーザインタラクション識別子に前記それぞれのインタラクティブアイテム識別子を各々がリンクする複数のデータエントリと比較することと、
前記比較に少なくとも基づいて、前記指定されたユーザアクションが、前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子と、データ記憶デバイスに記憶された対応するユーザインタラクション識別子にリンクするインタラクティブアイテム識別子との間の一致に基づいて、前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することと、
前記指定されたユーザアクションが、前記所与のインタラクティブアイテムとの前記ユーザインタラクションから発生したとの前記決定に基づいて、前記所与のインタラクティブアイテムについての性能測定値を更新することと、
前記更新された性能測定値を表現のために提供することと
を含む動作を実施させる、データ記憶媒体と
を含む、システム。
【請求項9】
前記動作が、
前記クライアントデバイスから、かつ前記イベントデータを受信する前に、(i)第1のモバイルアプリケーション内の前記インタラクティブアイテムとの前記ユーザインタラクションを一意に識別する所与のユーザインタラクション識別子と、(ii)前記所与のインタラクティブアイテムを識別する前記所与のインタラクティブアイテム識別子とを指定するインタラクションデータを受信することであって、前記クライアントデバイスが、前記第1のモバイルアプリケーション内の前記所与のインタラクティブアイテムとのユーザインタラクションに応答して前記インタラクションデータを送信し、前記所与のインタラクティブアイテムが、前記第2のアプリケーションに対してコンテンツを提示する、受信することと、
前記インタラクションデータを受信することに応答して、前記複数のデータエントリのうちの1つとして、前記所与のユーザインタラクションアイテム識別子を前記所与のインタラクティブアイテム識別子にリンクするデータエントリを記憶することと
をさらに含む、請求項8に記載のシステム。
【請求項10】
各データエントリが、インタラクションデータが受信されたデバイスを一意に識別するそれぞれのデバイス識別子を含み、前記動作が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定することと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定することに応答して、前記イベントデータが受信された前記クライアントデバイスについての所与のデバイス識別子を、前記複数のデータエントリの各々の前記それぞれのデバイス識別子と比較することと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することが、前記所与のデバイス識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのデバイス識別子と一致するか判定することを含む、
請求項9に記載のシステム。
【請求項11】
各データエントリが、インタラクティブアイテムとのユーザインタラクションが発生したアプリケーションを一意に識別するそれぞれのアプリケーション識別子を含み、前記動作が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定することと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定することに応答して、前記第1のアプリケーションについての所与のアプリケーション識別子を、前記複数のデータエントリの各々の前記それぞれのアプリケーション識別子と比較することと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することが、前記所与のアプリケーション識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのアプリケーション識別子と一致するか判定することを含む、
請求項9に記載のシステム。
【請求項12】
前記イベントデータを受信することが、前記クライアントデバイス上で実行しているモバイルアプリケーション管理アプリケーションから前記イベントデータを受信することを含み、前記モバイルアプリケーション管理アプリケーションが、前記ユーザに、前記クライアントデバイスへのアプリケーションのダウンロードを可能にする、請求項8に記載のシステム。
【請求項13】
前記インタラクティブアイテムとのユーザインタラクションの検出が、前記クライアントデバイスに、前記第2のアプリケーションをダウンロードするために前記モバイルアプリケーション管理アプリケーションを開始させ、
前記指定されたイベントが、前記モバイルアプリケーション管理アプリケーションを使用して前記第2のアプリケーションをダウンロードすることを含む、
請求項12に記載のシステム。
【請求項14】
前記インタラクティブアイテムとのユーザインタラクションの検出が、前記クライアントデバイスに、前記第2のアプリケーションについてのコンテンツを購入するために前記モバイルアプリケーション管理アプリケーションを開始させ、
前記指定されたイベントが、前記モバイルアプリケーション管理アプリケーションを使用した前記第2のアプリケーションについての前記コンテンツの前記購入を含む、
請求項12に記載のシステム。
【請求項15】
コンピュータプログラムで符号化された非一時的コンピュータ記憶媒体であって、前記コンピュータプログラムが、1つまたは複数のデータ処理装置によって実行されたとき、前記データ処理装置に、
第2のアプリケーション内の指定されたユーザアクションの発生に応答してクライアントデバイスから、(i)前記第2のアプリケーション内の前記指定されたユーザアクションの前記発生と、前記第2のアプリケーションとは異なる第1のアプリケーションにおいて提示され、かつ前記指定されたユーザアクションの前記発生の前にユーザによってインタラクトされた、所与のインタラクティブアイテムを識別する所与のインタラクティブアイテム識別子とを指定するイベントデータを受信することと、
前記所与のインタラクティブアイテム識別子を、それぞれのインタラクティブアイテム識別子に対応するそれぞれのインタラクティブアイテムとのユーザインタラクションを一意に識別する、対応するユーザインタラクション識別子に前記それぞれのインタラクティブアイテム識別子を各々がリンクする複数のデータエントリと比較することと、
前記比較に少なくとも基づいて、前記指定されたユーザアクションが、前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子と、データ記憶デバイスに記憶された対応するユーザインタラクション識別子にリンクするインタラクティブアイテム識別子との間の一致に基づいて、前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することと、
前記指定されたユーザアクションが、前記所与のインタラクティブアイテムとの前記ユーザインタラクションから発生したとの前記決定に基づいて、前記所与のインタラクティブアイテムについての性能測定値を更新することと、
前記更新された性能測定値を表現のために提供することと
を含む動作を実施させる、非一時的コンピュータ記憶媒体。
【請求項16】
前記動作が、
前記クライアントデバイスから、かつ前記イベントデータを受信する前に、(i)第1のモバイルアプリケーション内の前記インタラクティブアイテムとの前記ユーザインタラクションを一意に識別する所与のユーザインタラクション識別子と、(ii)前記所与のインタラクティブアイテムを識別する前記所与のインタラクティブアイテム識別子とを指定するインタラクションデータを受信することであって、前記クライアントデバイスが、前記第1のモバイルアプリケーション内の前記所与のインタラクティブアイテムとのユーザインタラクションに応答して前記インタラクションデータを送信し、前記所与のインタラクティブアイテムが、前記第2のアプリケーションに対してコンテンツを提示する、受信することと、
前記インタラクションデータを受信することに応答して、前記複数のデータエントリのうちの1つとして、前記所与のユーザインタラクションアイテム識別子を前記所与のインタラクティブアイテム識別子にリンクするデータエントリを記憶することと
をさらに含む、請求項15に記載の非一時的コンピュータ記憶媒体。
【請求項17】
各データエントリが、インタラクションデータが受信されたデバイスを一意に識別するそれぞれのデバイス識別子を含み、前記動作が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定することと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定することに応答して、前記イベントデータが受信された前記クライアントデバイスについての所与のデバイス識別子を、前記複数のデータエントリの各々の前記それぞれのデバイス識別子と比較することと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することが、前記所与のデバイス識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのデバイス識別子と一致するか判定することを含む、
請求項16に記載の非一時的コンピュータ記憶媒体。
【請求項18】
各データエントリが、インタラクティブアイテムとのユーザインタラクションが発生したアプリケーションを一意に識別するそれぞれのアプリケーション識別子を含み、前記動作が、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致するかを判定することと、
前記イベントデータによって指定された前記所与のインタラクティブアイテム識別子が、複数のデータエントリの前記それぞれのインタラクティブアイテム識別子と一致すると判定することに応答して、前記第1のアプリケーションについての所与のアプリケーション識別子を、前記複数のデータエントリの各々の前記それぞれのアプリケーション識別子と比較することと
をさらに含み、
前記指定されたユーザアクションが前記第1のアプリケーション内の前記所与のインタラクティブアイテムとの前記所与のユーザインタラクションから発生したと決定することが、前記所与のアプリケーション識別子が、前記複数のデータエントリのうちの少なくとも1つの前記それぞれのアプリケーション識別子と一致するか判定することを含む、
請求項16に記載の非一時的コンピュータ記憶媒体。
【請求項19】
前記イベントデータを受信することが、前記クライアントデバイス上で実行しているモバイルアプリケーション管理アプリケーションから前記イベントデータを受信することを含み、前記モバイルアプリケーション管理アプリケーションが、前記ユーザに、前記クライアントデバイスへのアプリケーションのダウンロードを可能にする、請求項15に記載の非一時的コンピュータ記憶媒体。
【請求項20】
前記インタラクティブアイテムとのユーザインタラクションの検出が、前記クライアントデバイスに、前記第2のアプリケーションをダウンロードするために前記モバイルアプリケーション管理アプリケーションを開始させ、
前記指定されたイベントが、前記モバイルアプリケーション管理アプリケーションを使用して前記第2のアプリケーションをダウンロードすることを含む、
請求項19に記載の非一時的コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
モバイルアプリケーションは、スマートフォンまたはタブレットコンピュータなどのモバイルデバイス上で動作するように設計されたアプリケーションである。いくつかの一般的なモバイルアプリケーションには、ゲーム、生産性アプリケーション、ビジネスアプリケーション、ならびにニュースおよび情報アプリケーションがある。ネイティブアプリケーションは、特定のタイプのデバイスまたは特定のプラットフォーム上で動作するように設計されたアプリケーション(たとえば、モバイルアプリケーション)である。一部のプラットフォームは、それらのプラットフォームで動作するように設計されたアプリケーションにソフトウェア開発キット(SDK)をインストールする必要がある。SDKは、アプリケーションの追加機能を提供することができる。
【発明の概要】
【課題を解決するための手段】
【0002】
本明細書は、モバイルアプリケーション内で発生するユーザ開始イベントを検出し、アプリケーションのコードを変更することなしにイベントを他のイベントと相関させるためのシステム、方法、デバイス、および技法について説明する。
【0003】
一般に、本明細書に記載される主題の1つの革新的な態様は、モバイルアプリケーションのコードを変更することなしにアプリケーション内のユーザ開始イベントを検出するためのシステムにおいて実装することができる。本システムは、ユーザのクライアントデバイス上にインストールされたモバイルアプリケーション管理アプリケーションから、(i)第1のモバイルアプリケーションにおいて、クライアントデバイスにインストールされた第2のモバイルアプリケーションのコンテンツを提示するインタラクティブアイテムとのユーザインタラクションのユーザインタラクション識別子と、(ii)インタラクティブアイテムとのユーザインタラクションに応答して、第2のモバイルアプリケーションによってモバイルアプリケーション管理アプリケーションに提出されたインタラクティブアイテム識別子とを指定するインタラクションデータを受信する1つまたは複数のフロントエンドサーバを含むことができる。フロントエンドサーバは、データ記憶デバイスに、インタラクションデータの受信に基づいてインタラクティブアイテム識別子をユーザインタラクション識別子にリンクするデータエントリを記憶することができる。フロントエンドサーバは、モバイルアプリケーション管理アプリケーションから、(i)インタラクティブアイテムとのユーザインタラクション後の、第2のモバイルアプリケーション内の指定されたユーザアクションの発生と、(ii)インタラクティブアイテムのインタラクティブ識別子とを指定するイベントデータを受信することができる。本システムは、指定されたユーザアクションが、イベントデータによって指定されたインタラクティブアイテム識別子と、検出されているデータ記憶デバイス内のインタラクティブアイテムとのユーザインタラクションのユーザインタラクション識別子にリンクするインタラクティブアイテム識別子との間の一致に基づいて、インタラクティブアイテムとのユーザインタラクションから発生したと決定する1つまたは複数のバックエンドサーバを含むことができる。バックエンドサーバは、指定されたユーザアクションがインタラクティブアイテムとのユーザインタラクションから発生したことを示すデータをフロントエンドサーバに提供することができ、1つまたは複数のフロントエンドサーバは、指定されたユーザアクションがインタラクティブアイテムとのユーザインタラクションから発生したことを示すために、ユーザインターフェースをアップデートする。この態様の他の実装形態は、コンピュータ記憶デバイス上で符号化された、方法のアクションを実行するように構成された、対応する装置、方法、およびコンピュータプログラムを含む。
【0004】
これらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意で含むことができる。いくつかの態様では、イベントは、第1のモバイルアプリケーションにおけるインタラクティブアイテムとのユーザインタラクションに続いて、第2のモバイルアプリケーションのユーザインターフェースとのユーザインタラクションによって開始された。
【0005】
いくつかの態様では、ユーザインタラクションデータは、クライアントデバイスのデバイス識別子を含む。イベントデータは、クライアントデバイスのデバイス識別子を含むことができる。1つまたは複数のバックエンドサーバは、イベントデータのデバイス識別子と一致するユーザインタラクションデータのデバイス識別子にさらに基づいて、イベントはインタラクティブアイテムとのユーザインタラクションから発生したと決定することができる。
【0006】
いくつかの態様では、1つまたは複数のバックエンドサーバは、インタラクティブアイテムとのユーザインタラクションが発生した時刻およびイベントが発生した時刻にさらに基づいて、イベントはインタラクティブアイテムとのユーザインタラクションから発生したと決定する。1つまたは複数のバックエンドサーバは、インタラクティブアイテム識別子と1つまたは複数のユーザインタラクション識別子との間のリンクを含む複数のデータエントリを識別し、インタラクティブアイテムとのユーザインタラクションが発生した時刻が、1つまたは複数のユーザインタラクション識別子のそれぞれの時刻よりも最近であることに基づいて、イベントはインタラクティブアイテムとのユーザインタラクションから発生したと決定することができる。
【0007】
いくつかの態様では、第2のモバイルアプリケーションは、インタラクティブアイテムを提示するウェブブラウザアプリケーションを含む。本イベントは、第2のモバイルアプリケーションを使用する製品またはサービスの購入を含むことができる。インタラクティブアイテムは、製品またはサービスに関連するコンテンツを提示することができる。イベントデータは、(i)製品またはサービスの価格、(ii)製品またはサービスの識別子、あるいは(iii)購入のタイプのうちの少なくとも1つを含むことができる。
【0008】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。モバイルアプリケーション内で発生するアプリ内イベントは、アプリケーションのコードを変更することなしに、たとえば、モバイルアプリケーションにSDKを追加したり、モバイルアプリケーションのSDKを変更したりすることなしに、検出し、アプリケーション外で発生する対応するイベントと相関することができる。アプリケーションのコードを変更することなしにイベントを相関させることによって、アプリケーション開発者は、新しいイベントが検出または相関されるたびに、あるいはイベントを検出または相関させるためのルールが変更されるたびに、モバイルアプリケーションのコードをアップデートする必要がなくなる。たとえば、本明細書に記載される技法を使用しない場合、アプリケーション開発者は、モバイルアプリケーションがインストールされている各モバイルデバイスにインストールされている各モバイルアプリケーションのコードを変更することなしに、新しいタイプのアプリ内イベントを検出したり、新しいタイプのアプリ内イベントを、モバイルアプリケーション外で発生する対応するイベントと相関させたりすることができない。アプリケーションのコードをアップデートすること、またはアプリケーション自体をアップデートすることは、アップデートされるモバイルデバイスごとに計算コストが高い(たとえば、多くのCPUサイクルおよび大量のネットワーク帯域幅を必要とする)ので、本明細書に記載される技法によって、アプリケーション開発者はかなりの時間量、コンピューティングリソース、およびネットワークリソースに対する需要を節約することができる。
【0009】
アップデートされたSDKを含むためにモバイルアプリケーションにアップデートをインストールすることはまた、モバイルデバイスのコンピューティングリソースに大きな負担をかける。たとえば、モバイルネットワークからアップデートをダウンロードすることは、モバイルデバイスのトランシーバを独占して、モバイルデバイスが他のデータをダウンロードまたは送信するのを防止し(たとえば、モバイルデバイスの使用を妨害し)、モバイルデバイスのバッテリを放電させてしまう。モバイルアプリケーションをアップデートするために使用されるコードの記憶は、モバイルデバイスの限られたメモリのかなりの量を消費する可能性がある。したがって、アプリ内イベントの検出を可能にするためのモバイルアプリケーションへのアップデートを回避することによって、バッテリ寿命を向上させ、プロセッサおよびネットワークデバイスに対する要求を低減し、モバイルデバイスが他のアクション(たとえば、ユーザによる使用のためにモバイルデバイスを使用可能にする)を実行することを可能にすることにより、モバイルデバイスの性能を改善することができる。
【0010】
モバイルアプリケーションをアップデートすることはまた、長くて厳格なコード開発およびテストのプロセスを含む。たとえば、新しいアプリ内イベントを検出するためのアップデートを必要としないこと、またはアプリ内イベントを検出するために新しいルールを使用することにより、アプリケーションのアップデート回数を最小限に抑えることによって、開発およびテストの量を削減することができる。さらに、テストが完了しても、アップデートされたコードにおけるバグは、アップデートされたコードが展開された後にのみ識別される可能性があり、このことはモバイルアプリケーションのダウンタイムにつながる可能性がある。
【0011】
前述の主題の様々な特徴および利点を、図面に関して以下に説明する。さらなる特徴および利点は、本明細書に記載される主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【0012】
【
図1】モバイルアプリケーション管理システムが、モバイルアプリケーションのコードを変更することなしに、アプリケーション内で発生するイベントを検出し、そのイベントを他のイベントと相関させる例示的な環境を示す図である。
【
図2】アプリケーションのコードを変更することなしに、アプリケーション内のイベントを検出するための例示的なプロセスのフローチャートである。
【
図3】モバイルアプリケーション管理システムにイベントを記述するデータを提供するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0013】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【0014】
一般に、本明細書に記載されるシステムおよび技法は、モバイルアプリケーションのコードを変更することなしに、モバイルアプリケーション内で発生するアプリ内イベントを検出し、イベントを対応するイベント(たとえば、モバイルアプリケーション外で発生するイベント)と相関させることができる。たとえば、本明細書に記載される手法は、新しいSDKをインストールすること、またはモバイルアプリケーションの既存のSDKを変更することなしに、アプリ内イベントの検出および相関付けを可能にする。モバイルアプリケーションのコードを変更することなしにイベントを検出および相関させるために、イベントを相関させるための新規または変更されたイベント、イベントのタイプ、および/またはルールを使用することができる。相関付けは、モバイルアプリケーション外で発生したイベントを識別することを含むことができるが、モバイルアプリケーション内のユーザによって開始されたイベントにつながる。
【0015】
いくつかの実装形態では、クライアントデバイス上で実行するモバイルアプリケーション管理アプリケーションは、モバイルアプリケーションの外およびモバイルアプリケーション内で発生するイベントを記述するデータを取得することができる。次いで、モバイルアプリケーション外で発生したイベントと、モバイルアプリケーション内で、またはモバイルアプリケーションを使用して発生したイベントを相関させるために、このデータを使用することができる。たとえば、モバイルアプリケーションのコンテンツを表すインタラクティブアイテムは、ウェブページ上または異なるモバイルアプリケーション内に提示されてもよい。インタラクティブアイテムがモバイルデバイス上でインタラクション(たとえば、選択)を受信すると、モバイルデバイスは、ユーザがアプリケーションをダウンロードすることができるように(モバイルアプリケーションがモバイルデバイスにインストールされていない場合)、またはモバイルアプリケーションに関連するアクション(たとえば、モバイルアプリケーションへのコンテンツのダウンロード、またはアプリケーションへのアドオンのダウンロード)を実行できるように、モバイルアプリケーション管理アプリケーションを開いてもよい。モバイルアプリケーション管理アプリケーションは、異なるモバイルアプリケーションから、インタラクティブアイテムの識別子およびユーザインタラクションの一意の識別子を受信することができる。モバイルアプリケーション管理アプリケーションは、このデータを、インタラクティブアイテムの識別子をユーザインタラクションの一意の識別子とリンクするモバイルアプリケーション管理システムに送信することができる。
【0016】
インタラクティブアイテムとのユーザインタラクション後、ユーザがモバイルアプリケーション内で(たとえば、モバイルアプリケーションのユーザインターフェースにおいて)指定されたユーザアクションを実行する場合、モバイルアプリケーション管理アプリケーションは、指定されたユーザアクションに関するデータを受信することができる。たとえば、ユーザがコンテンツまたはアドオンをモバイルアプリケーションにダウンロードする場合、モバイルアプリケーション管理アプリケーションは、インタラクティブアイテムを識別するデータおよび指定されたユーザアクションを記述するデータをモバイルアプリケーション管理システムに送信することができる。次いで、モバイルアプリケーション管理システムは、少なくとも、ユーザインタラクションの一意の識別子とインタラクティブアイテムの識別子との間のリンクに基づいて、指定されたユーザアクションとインタラクティブアイテムとのユーザインタラクションとを相関させることができる。
【0017】
図1はモバイルアプリケーション管理システム110が、モバイルアプリケーションのコードを変更することなしに、アプリケーション内で発生するイベントを検出し、そのイベントを他のイベントと相関させる例示的な環境100である。例示的な環境100は、たとえばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク130を介してクライアントデバイス150と通信するモバイルアプリケーション管理システム110を含む。
【0018】
クライアントデバイス150は、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(たとえば、スマートウォッチ)、車載コンピューティングデバイス、および/または他のタイプのモバイルデバイスを含むことができる。クライアントデバイス150は、モバイルアプリケーション152およびモバイルアプリケーション156などのモバイルアプリケーションと、モバイルアプリケーション管理アプリケーション158とを含む。もちろん、クライアントデバイス150は、他の数のモバイルアプリケーションを含むことができる。モバイルアプリケーションは、ウェブブラウザアプリケーション、ゲームアプリケーション、小売業者アプリケーション、ニュースおよび情報アプリケーション、生産性アプリケーション、フィットネスアプリケーション、音楽アプリケーション、映画およびビデオストリーミングアプリケーションなどを含むことができる。
【0019】
モバイルアプリケーション管理アプリケーション158は、クライアントデバイス150が、モバイルアプリケーションをクライアントデバイスにダウンロードし、クライアントデバイス150にインストールされたモバイルアプリケーションをアップデートし、モバイルアプリケーションのための製品を購入し、モバイルアプリケーションにコンテンツをダウンロードし、および/またはモバイルアプリケーションに関する他のアクションを実行することを可能にする。たとえば、ゲームアプリケーションは、ユーザが、モバイルアプリケーション管理アプリケーション158を介して、ゲームのアイテムを取得すること、アップグレードまたはアドオンをゲームにダウンロードすること、あるいはゲームの追加機能をロック解除することを可能にしてもよい。ユーザは、(たとえば、モバイルアプリケーションのユーザインターフェースとインタラクトすることによって)モバイルアプリケーション内でこれらのアクションを開始することができ、モバイルアプリケーションは、クライアントデバイス150に、アクションを完了させるためにモバイルアプリケーション管理アプリケーション158を開かせることができる。たとえば、アクションがアプリケーション開発者からの購入を必要とする場合、モバイルアプリケーション管理アプリケーション158は、ユーザから承認または支払い情報を取得し、アプリケーション開発者との購入を完了することができる。次いで、アプリケーション開発者のアプリケーションサーバは、アイテムをアプリケーションに提供したり、アプリケーション内の機能をロック解除したりすることができる。
【0020】
モバイルアプリケーションは、別のモバイルアプリケーション、または別のモバイルアプリケーション内の特定の位置にリンクする(または、モバイルアプリケーションにリンクをダウンロードさせる)インタラクティブアイテムを提示することができる(たとえば、ディープリンクを使用して)。インタラクティブアイテムは、電子リソース(たとえば、ウェブページおよびモバイルアプリケーション)上に提示することができるコンテンツアイテムであり、インタラクトされると、インタラクティブアイテムを提示しているクライアントデバイスに、別の電子リソースにナビゲートさせる。コンテンツアイテムの例は、電子広告、プロモーション、無料提供、およびモバイルアプリケーションをダウンロードするためのリンクを含む。たとえば、モバイルアプリケーション152は、インタラクティブアイテム154を有するウェブページを提示するウェブブラウザアプリケーションであってもよい。インタラクティブアイテム154は、モバイルアプリケーション156に関連するコンテンツを表してもよい。たとえば、インタラクティブアイテム154は、モバイルアプリケーション156において実行することができるアクション(たとえば、アドオンをダウンロードする、または機能をロック解除する)に関連するコンテンツを表すことができる。インタラクティブアイテム154は、インタラクティブアイテムを提示するためのウェブページまたはアプリケーションページの予約された部分である、バナーなどのインタラクティブアイテムスロットに提示されてもよい。
【0021】
ユーザがインタラクティブアイテム154とインタラクトするとき、モバイルアプリケーション152は、クライアントデバイス150のユーザがインタラクティブアイテム154によって表されたコンテンツに関連するアクションを完了できるように、クライアントデバイス150にモバイルアプリケーション管理アプリケーション158を開かせてもよい。モバイルアプリケーション156がクライアントデバイス150にインストールされていない場合、モバイルアプリケーション管理アプリケーション158は、モバイルアプリケーション156をダウンロードするようにユーザに促してもよい。モバイルアプリケーション156がクライアントデバイス150にインストールされている場合、モバイルアプリケーション管理アプリケーション158は、インタラクティブアイテムに関連するアクションを許可するようにユーザに促してもよい。たとえば、インタラクティブアイテム154は、アドオンをモバイルアプリケーション156にダウンロードするオファーを表してもよい。この例では、モバイルアプリケーション管理アプリケーション158は、アクションを記述するデータに基づいて、クライアントデバイス150にインストールされたモバイルアプリケーション158へのアドオンのダウンロードを承認するようにユーザに促してもよい。
【0022】
インタラクティブアイテム154は、モバイルアプリケーション管理システム110のインタラクション識別子サーバ120へのリンクを含むことができる。ユーザがインタラクティブアイテム154とインタラクトするとき、モバイルアプリケーション152はリンクを識別し、そのリンクを識別することに応答してインタラクション識別子サーバ120に要求を送信してもよい。この要求は、インタラクティブアイテム154のインタラクティブアイテム識別子を指定するデータを含んでもよい。たとえば、各インタラクティブアイテムは一意の識別子を有してもよい。インタラクティブアイテムの各インスタンスは、一意の識別子を含んでもよい。たとえば、複数のモバイルアプリケーションにおいて、複数の異なるウェブページ上に、および/または異なるユーザに、同じインタラクティブアイテムが提示されてもよい。異なるアプリケーションおよびウェブページの各々におけるインタラクティブアイテムの各インスタンスは、インタラクティブアイテムの同じ一意の識別子を含むことができる。
【0023】
インタラクション識別子サーバ120は、インタラクティブアイテム154のインタラクティブアイテム識別子に基づいて、ナビゲーションデータをモバイルアプリケーション152に提供することができる。ナビゲーションデータは、インタラクティブアイテム154によって示されるコンテンツに関連するアクションを完了することができるモバイルアプリケーション156を指定することができる。ナビゲーションデータはまた、アクションの完了を容易にするために、モバイルアプリケーション152にモバイルアプリケーション管理アプリケーション158を開かせるデータを含むことができる。いくつかの実装形態では、ナビゲーションデータは、インタラクティブアイテム154に関連するアクションを記述するデータを含む。たとえば、アクションを記述するデータは、ダウンロードされるコンテンツ、ダウンロードされるアドオン、ロック解除される機能、ゲームアプリケーションに追加されるアイテム、アクションの購入額を指定するデータ、および/またはそのアクションに関する他の適切なデータを含んでもよい。このインタラクション識別子サーバ120は、インタラクティブアイテム154の一意の識別子に基づいてアクションを記述するこのデータを識別することができる。いくつかの実装形態では、モバイルアプリケーション管理アプリケーション158は、アクションを記述するデータを、別のサーバから、たとえば、アプリケーション開発者のサーバから、インタラクティブアイテム識別子を他のサーバに提供することによって取得してもよい。
【0024】
インタラクション識別子サーバ120はまた、要求に応答して、一意のユーザインタラクション識別子をモバイルアプリケーション152に提供することができる。一意のユーザインタラクション識別子は、インタラクティブアイテム154とのユーザインタラクションを一意に識別する。たとえば、同じインタラクティブアイテム154または同じインタラクティブアイテム154の同じインスタンスとの各ユーザインタラクションは、インタラクティブアイテムとの他のユーザインタラクションごとのユーザインタラクション識別子とは異なる一意のユーザインタラクション識別子を有してもよい。
【0025】
モバイルアプリケーション152は、インタラクション識別子サーバ120からナビゲーションデータおよびユーザインタラクション識別子を受信することができる。たとえば、インタラクション識別子サーバ120は、データを指定するパラメータを有するユニバーサルリソースロケーション(URL)またはユニバーサルリソース識別子(URI)の形でデータを提供してもよい。モバイルアプリケーション152は、ユーザがモバイルアプリケーション156をダウンロードし、および/またはインタラクティブアイテム154に関連するアクションを許可することができるように、モバイルアプリケーション管理アプリケーション158を開くためにナビゲーションデータを使用することができる。モバイルアプリケーション152はまた、インタラクティブアイテム154のインタラクティブアイテム識別子、およびインタラクション識別子サーバ120から受信したユーザインタラクション識別子を指定するデータを、モバイルアプリケーション管理アプリケーション158に提供することができる。モバイルアプリケーション管理アプリケーション158は、両方の識別子を記憶する、および/またはモバイルアプリケーション管理システム110のフロントエンドサーバ112に両方の識別子を送信することができる。
【0026】
フロントエンドサーバ112は、インタラクティブアイテム154の受信されたインタラクティブアイテム識別子と、インタラクティブアイテム154とのユーザインタラクションのユーザインタラクション識別子を、アクティビティ検出器114に提供することができ、これは、1つまたは複数のサーバ(たとえば、1つまたは複数のバックエンドサーバ)を使用して実装されてもよい。アクティビティ検出器114は、インタラクションログ116に、ユーザインタラクション識別子とインタラクティブアイテム154のインタラクティブアイテム識別子とをリンクするデータエントリを記憶することができる。いくつかの実装形態では、アクティビティ検出器114はまた、データエントリとともに、ユーザインタラクションが発生した時刻、インタラクションが発生したモバイルアプリケーション152のアプリケーション識別子、インタラクティブアイテムがリンクするモバイルアプリケーション156のアプリケーション識別子、および/またはクライアントデバイス150のデバイス識別子を記憶してもよい。たとえば、モバイルアプリケーション管理アプリケーション158は、このデータを、インタラクティブアイテム154のインタラクティブアイテム識別子およびユーザインタラクション識別子とともにフロントエンドサーバ112に送信することができる。
【0027】
ユーザがモバイルアプリケーション管理アプリケーション158を使用してインタラクティブアイテム154によって表されるコンテンツに関連するアクションを許可する場合/とき、モバイルアプリケーション管理アプリケーション158は、アクションの発生を指定するイベントデータと、インタラクティブアイテム154のインタラクティブアイテム識別子を、フロントエンドサーバ112に提供することができる。モバイルアプリケーション管理アプリケーション158は、たとえユーザがインタラクティブアイテム154とのインタラクション後にアクションを最初に許可しなくても、このデータを提供することができる。たとえば、ユーザは、モバイルアプリケーション管理アプリケーション158が、モバイルアプリケーションをダウンロードすることを可能にしてもよいが、アドオンをダウンロードしたり、アイテムを購入したり、別のタイプのアクションを完了したりしないことを決定してもよい。同様に、モバイルアプリケーション158が、ユーザインタラクションが発生したときにクライアントデバイス150にすでにインストールされている場合、ユーザは依然としてアクションを完了しないことを決定してもよい。
【0028】
ユーザは、モバイルアプリケーション156を使用してアクションを開始および完了することを後に決定してもよい。たとえば、モバイルアプリケーション156がゲームアプリケーションであり、アクションがゲームアプリケーション用のアドオンをダウンロードすることである場合、ユーザは、モバイルアプリケーション156を開いて、ゲームアプリケーションのユーザインターフェースを使用してアドオンのダウンロードを開始してもよい。ダウンロードを完了するために、モバイルアプリケーション156は、ユーザからの承認および/またはユーザからのアドオンに対する支払いを取得するために、モバイルアプリケーション管理アプリケーション158を開いてもよい。承認または支払いが受信されると、モバイルアプリケーション管理アプリケーション158は、アクション(たとえば、アクションのタイプ、アクションの名前、アイテムの名前、アドオン、あるいはダウンロードまたは購入された機能、支払い情報など)、インタラクティブアイテム154のインタラクティブアイテム識別子、インタラクションが発生したモバイルアプリケーション152の識別子、モバイルアプリケーション156の識別子、および/またはクライアントデバイス150のデバイス識別子を記述するイベントデータをフロントエンドサーバ112に送信することができる。フロントエンドサーバ112は、受信したイベントデータおよびインタラクティブアイテム識別子をアクティビティ検出器114に提供することができる。
【0029】
後に完了するアクションのインタラクティブアイテム識別子の提供を容易にするために、モバイルアプリケーション管理アプリケーション158は、クライアントデバイス150におけるインタラクティブアイテムとのユーザインタラクションに応答して、モバイルアプリケーション管理アプリケーション158によって受信されたインタラクティブアイテム識別子を記憶してもよい。たとえば、アプリケーションのダウンロードまたはアクションの完了を容易にするために、モバイルアプリケーション管理アプリケーション158をオープンさせるユーザインタラクションをインタラクティブアイテムが受信するたびに、モバイルアプリケーション管理アプリケーション158は、インタラクティブアイテムのインタラクティブアイテム識別子を記憶してもよい。モバイルアプリケーション管理アプリケーション158はまた、インタラクティブアイテムごとにタイムスタンプを記憶してもよい。タイムスタンプは、ユーザインタラクションが発生した時刻を指定してもよい。このようにして、モバイルアプリケーション管理アプリケーションは、最近インタラクトしたインタラクティブアイテムのインタラクティブアイテム識別子をアクションに割り当てることができる。モバイルアプリケーション管理アプリケーション158がフロントエンドサーバ112にイベントデータを送信すると、モバイルアプリケーション管理アプリケーション158は、最近インタラクトしたインタラクティブアイテムのインタラクティブアイテム識別子をイベントデータとともにアクションに提供することができる。
【0030】
アクティビティ検出器114は、イベントログ118に、イベントデータ、インタラクティブアイテム154のインタラクティブアイテム識別子、インタラクションが発生したモバイルアプリケーション152の識別子、モバイルアプリケーション156の識別子、および/またはクライアントデバイス150のデバイス識別子を含むデータエントリを記憶することができる。アクティビティ検出器114は、イベントデータによって指定されたアクションを、インタラクティブアイテムとのユーザインタラクションに相関させるために、このデータの少なくとも一部を使用することができる。たとえば、アクティビティ検出器114は、インタラクティブアイテムとのどのユーザインタラクションがアクションの完了をもたらしたかを決定するために、データを使用することができる。このようにして、アクティビティ検出器114は、インタラクティブアイテムのアクション完了またはコンバージョン率を追跡することができる。
【0031】
いくつかの実装形態では、アクティビティ検出器114は、モバイルアプリケーション内で発生するイベント(たとえば、アプリケーション内で完了した、指定されたアクション)を他のイベント(たとえば、インタラクティブアイテムとのユーザインタラクション)と相関させるために1つまたは複数のルールを使用する。たとえば、ルールは、しきい値時間内に特定のインタラクティブアイテムとのユーザインタラクションが発生し、特定の指定されたアクションが同じデバイスにおいて(または、異なるデバイスにログインした同じユーザを有する異なるデバイスにおいて)発生したときに、特定のタイプのコンバージョンが発生することを指定することができる。本明細書に記載される技法がない場合、新しいタイプのイベントを相関させるために新しいルールが追加されるたびに、またはルールが変更されるたびに、イベントが検出される各モバイルアプリケーションのコードをアップデートする必要がある。本明細書に記載される技法を使用して、アクティビティ検出器114は、モバイルアプリケーション管理アプリケーション158から受信したデータに基づいてイベントを相関させるために、1つまたは複数のルールを管理し、1つまたは複数のルールを使用することができる。ルールを追加または変更するために各モバイルアプリケーションを変更する代わりに、アクティビティ検出器114のみをアップデートする必要がある。新しいデータがモバイルアプリケーション管理アプリケーション158によってキャプチャされなければならない場合、モバイルアプリケーションを変更することなしに、モバイルアプリケーション管理アプリケーション158をアップデートすることができる。
【0032】
いくつかの実装形態では、アクティビティ検出器114は、イベントのインタラクティブアイテム識別子に基づいてイベントを相関させる。上述したように、インタラクションログ116は、インタラクティブアイテム識別子をユーザインタラクションのユーザインタラクション識別子にリンクするデータエントリを含む。アクティビティ検出器114は、同じインタラクティブアイテム識別子を含むインタラクションログのデータエントリを識別するために、モバイルアプリケーション内で完了した指定されたアクションのイベントデータに含まれるインタラクティブアイテム識別子を使用することができる。このようにして、アクティビティ検出器114は、インタラクティブアイテム識別子によって識別されるインタラクティブアイテムとのどのユーザインタラクションが指定されたアクションの完了をもたらしたかを決定するために、指定されたアクションに対して、同じインタラクティブアイテム識別子を有するものへのデータエントリをフィルタリングすることができる。
【0033】
いくつかの実装形態では、インタラクションログ118が、インタラクティブアイテム識別子をユーザインタラクション識別子にリンクする単一のデータエントリのみを含む場合、アクティビティ検出器114は、ユーザインタラクション識別子によって識別されるユーザインタラクションが、イベントデータの指定されたアクションの実行をもたらしたと決定してもよい。それに応答して、アクティビティ検出器114は、ユーザインタラクション識別子によって特定されたユーザインタラクションを、指定されたアクションと相関させてもよい。
【0034】
アクティビティ検出器114はまた、相関に基づいてインタラクティブアイテムの統計をアップデートしてもよい。たとえば、アクティビティ検出器114は、インタラクティブアイテムについて、インタラクティブアイテムがユーザインタラクションを受信した後に、指定されたアクションが完了するレートをアップデートしてもよい。次いで、これらの統計を、インタラクティブアイテムが配信されるエンティティに提供することができる。たとえば、アクティビティ検出器114は、たとえば、統計を提示するアプリケーションまたはウェブページにアクセスするエンティティに応答して、アップデートされた統計を反映するようにエンティティのユーザインターフェースをアップデートすることができる。
【0035】
いくつかの実装形態では、アクティビティ検出器114は、インタラクティブアイテムとのユーザインタラクションを、モバイルアプリケーション内で完了した指定されたアクションと相関させるために、追加のデータを使用する。たとえば、アクティビティ検出器114は、ユーザインタラクションを指定されたアクションと相関させるために、ユーザインタラクションが発生したモバイルアプリケーションを識別するアプリケーション識別子、および/またはユーザインタラクションが発生したクライアントデバイスを識別するデバイス識別子を使用することができる。アクティビティ検出器114は、インタラクションログ116内のデータエントリと、同じインタラクティブアイテム識別子、および同じアプリケーション識別子、ならびに/または同じデバイス識別子を有するイベントログ内のデータエントリとを識別することができる。この例では、アクティビティ検出器114は、あるユーザによって作られた同じインタラクティブアイテムとのユーザインタラクションを、異なるユーザによって完了された指定されたアクションと相関させなくてもよい。
【0036】
いくつかの実装形態では、インタラクション識別子サーバ120および/またはアクティビティ検出器114は、異なるシステムの一部であるか、またはモバイルアプリケーションのダウンロードおよびアプリケーションへのアップデートを管理するシステムからの異なるアカウントを必要とする。たとえば、アプリケーション開発者は、アプリケーション開発者によって開発されたモバイルアプリケーションのダウンロードを管理するモバイルアプリケーション管理システムを有する第1のアカウントを有してもよい。モバイルアプリケーション管理システムはまた、アドオンのダウンロード、アイテムの購入、およびアプリケーションのロック解除された機能などを管理してもよい。アプリケーション開発者はまた、開発者のモバイルアプリケーションに関連するインタラクティブアイテムを配布し、インタラクティブアイテムの統計を管理するインタラクティブアイテム配布システムを有する第2のアカウントを有してもよい。この例では、モバイルアプリケーション管理アプリケーションは、インタラクティブアイテムとのユーザインタラクションのインタラクションデータおよびモバイルアプリケーション内で発生する指定されたアクションのイベントデータを、インタラクティブアイテム配信システムに提供してもよい。
【0037】
いくつかの実装形態では、アプリケーション開発者は、開発者のモバイルアプリケーション内で発生する特定のアクションと、開発者のインタラクティブアイテムとのユーザインタラクションとの間の相関関係を含むアプリ内イベントの統計を取得するために、2つのアカウントをリンクするよう要求されるか、そうすることが必要とされてもよい。このようにして、インタラクティブアイテムとのユーザインタラクションから発生する購入金額などの機密データは、開発者にとってはプライベートなままである。
【0038】
図2は、アプリケーションのコードを変更することなしに、アプリケーション内のイベントを検出し、そのイベントを別のイベントに相関させるための例示的なプロセス200のフローチャートである。プロセス200の動作は、たとえば、
図1のモバイルアプリケーション管理システム110などの1つまたは複数のデータ処理装置を含むシステムによって実装することができる。プロセス200はまた、コンピュータ記憶媒体に記憶された命令によって実装することもでき、データ処理装置を含むシステムによる命令の実行により、データ処理装置にプロセス200の動作を実行させる。
【0039】
本システムは、インタラクティブアイテムとのユーザインタラクションのインタラクションデータを受信する(202)。インタラクションデータは、インタラクティブアイテムとのユーザインタラクションの一意のユーザインタラクション識別子を指定することができる。インタラクションデータはまた、インタラクティブアイテムの一意のインタラクティブアイテム識別子を含むことができる。本システムは、ユーザインタラクションが発生したクライアントデバイスにインストールされたモバイルアプリケーション管理アプリケーションからインタラクションデータを受信してもよい。
【0040】
たとえば、ユーザは、第1のモバイルアプリケーション(たとえば、ウェブブラウザアプリケーションまたは別のタイプのモバイルアプリケーション)によって提示されているインタラクティブアイテムとインタラクト(たとえば、選択)してもよい。第1のモバイルアプリケーションは、ユーザインタラクションに応答して、一意のインタラクション識別子およびインタラクティブアイテム識別子をモバイルアプリケーション管理アプリケーションに提供してもよい。次に、モバイルアプリケーション管理アプリケーションは、2つの識別子を含むインタラクションデータをシステムに提供することができる。いくつかの実装形態では、インタラクションデータはまた、ユーザインタラクションが発生した時刻、インタラクションが発生したモバイルアプリケーションのアプリケーション識別子、インタラクティブアイテムがリンクするモバイルアプリケーションのアプリケーション識別子、および/またはユーザインタラクションが発生したクライアントデバイスのデバイス識別子を含むことができる。
【0041】
本システムは、インタラクティブアイテム識別子とユーザインタラクション識別子との間のリンクを指定するデータエントリをデータ記憶デバイスに記憶する(204)。このリンクは、ユーザインタラクション識別子が、インタラクティブアイテム識別子によって識別されるインタラクティブアイテムとのユーザインタラクションを識別することを示す。データエントリはまた、ユーザインタラクションが発生した時刻を指定するデータ、インタラクションが発生したモバイルアプリケーションのアプリケーション識別子、およびインタラクティブアイテムがリンクするモバイルアプリケーションのアプリケーション識別子、ならびに/またはユーザインタラクションが発生したクライアントデバイスのデバイス識別子を含むことができる。
【0042】
本システムは、モバイルアプリケーション内の指定されたユーザアクションの発生を指定するイベントデータを受信する(206)。モバイルアプリケーションは、インタラクティブアイテムがリンクするモバイルアプリケーションであってもよい。指定されたユーザアクションは、モバイルアプリケーションへのアドオンまたはアップグレードのダウンロード、モバイルアプリケーションの追加機能のロック解除、モバイルアプリケーションのアイテムの購入、またはモバイルアプリケーションのユーザによって開始または承認された別の適切なアクションであってもよい。
【0043】
指定されたユーザアクションは、インタラクティブアイテムとのユーザインタラクション後に発生する場合がある。たとえば、ユーザはインタラクティブアイテムを選択し、それに応答して、ユーザがアクションを完了すること、またはモバイルアプリケーションをダウンロードすることを可能にするユーザインターフェースを提示されてもよい。ユーザは、この時点で、またはモバイルアプリケーションをダウンロードした直後に、アクションを完了してもよい。あるいは、ユーザは後で、たとえば、数時間、数日、または数週間後にアクションを完了してもよい。
【0044】
指定されたユーザアクションは、ユーザのクライアントデバイスにインストールされたモバイルアプリケーション管理アプリケーションを使用して完了されてもよい。指定されたユーザアクションが完了すると、モバイルアプリケーション管理アプリケーションはイベントデータをシステムに提供することができる。イベントデータは、指定されたユーザアクション(たとえば、アクションのタイプ、アクションの名前、アイテムの名前、アドオン、あるいはダウンロードまたは購入された機能、支払い情報など)、インタラクティブアイテムのインタラクティブアイテム識別子、インタラクションが発生したモバイルアプリケーションの識別子、モバイルアプリケーションの識別子、および/あるいは指定されたアクションが発生したクライアントデバイスのデバイス識別子を記述するデータを含むことができる。
【0045】
本システムは、モバイルアプリケーション内の指定されたユーザアクションが、インタラクティブアイテムとのユーザインタラクションから発生したと決定する(208)。いくつかの実装形態では、本システムは、インタラクティブアイテムとのユーザインタラクションが指定されたユーザアクションにつながったことを決定するために、受信したインタラクションデータおよび受信したイベントデータを使用してもよい。たとえば、本システムは、ユーザインタラクションをイベントデータによって指定されたインタラクティブアイテムにリンクするデータ記憶デバイスに記憶された1つまたは複数のデータエントリを識別してもよい。1つのデータエントリだけが、ユーザインタラクションをイベントデータによって指定されたインタラクティブアイテムにリンクする場合、本システムは、データエントリのユーザインタラクションが指定されたユーザアクションにつながったと決定してもよい。
【0046】
データ記憶デバイスに記憶された複数のデータエントリが、ユーザインタラクションをイベントデータによって指定されたインタラクティブアイテムにリンクする場合、本システムは、どのユーザインタラクションが指定されたユーザアクションにつながったかを決定するために追加の基準を使用してもよい。たとえば、本システムは、指定されたアクションが発生した同じクライアントデバイス、指定されたアクションが発生した同じモバイルデバイス、指定されたアクションが発生した同じモバイルアプリケーション、および/またはインタラクティブアイテムがユーザインタラクションを受信した同じモバイルアプリケーションを指定するデータエントリを識別してもよい。いくつかの実装形態では、データエントリによって示されるようにインタラクティブアイテムが選択された時刻は、どのユーザインタラクションが指定されたユーザアクションにつながったかを決定するために使用される。たとえば、複数のデータエントリがイベントデータと同じデータを含む場合、指定されたアクションが発生した時刻に最も近い発生時刻を有するユーザインタラクションは、指定されたアクションにつながったユーザインタラクションと見なされてもよい。
【0047】
本システムは、指定されたユーザアクションがインタラクティブアイテムとのユーザインタラクションから発生したことを示すために、ユーザインターフェースをアップデートする(210)。たとえば、本システムは、インタラクティブアイテムとのこのユーザインタラクションが指定されたアクションにつながったことを示すために、インタラクティブアイテムの統計をアップデートすることができる。特定の例では、本システムは、インタラクティブアイテムがユーザインタラクションを受信した後に、指定されたアクションが発生する、または完了するレートをアップデートしてもよい。次いで、これらの統計を、インタラクティブアイテムが配信されるエンティティに提供することができる。たとえば、本システムは、たとえば、統計を提示するアプリケーションまたはウェブページにアクセスするエンティティに応答して、アップデートされた統計を反映するようにエンティティのユーザインターフェースをアップデートすることができる。
【0048】
図3は、モバイルアプリケーション管理システムにイベントを記述するデータを提供するための例示的なプロセス300のフローチャートである。プロセス300の動作は、たとえば、
図1のクライアントデバイス150などの1つまたは複数のデータ処理装置を含むシステムによって実装することができる。プロセス300はまた、コンピュータ記憶媒体に記憶された命令によって実装することもでき、データ処理装置を含むシステムによる命令の実行は、データ処理装置にプロセス300の動作を実行させる。
【0049】
本システムは、インタラクティブアイテムとのユーザインタラクションのユーザインタラクション識別子と、インタラクティブアイテムのインタラクティブアイテム識別子とを受信する(302)。たとえば、インタラクティブアイテムは、第1のモバイルアプリケーションによって提示され、第2のモバイルアプリケーションにリンクしてもよい。識別子は、ユーザインタラクションが発生した第1のモバイルアプリケーションから受信されてもよい。第1のモバイルアプリケーションは、ユーザインタラクションに応答して、インタラクション識別子サーバにインタラクティブアイテム識別子を提供することができる。それに応答して、インタラクション識別子サーバは、インタラクティブアイテムとのユーザインタラクションの一意のユーザインタラクション識別子を第1のモバイルアプリケーションに提供してもよい。次いで、第1のモバイルアプリケーションは、第1のモバイルアプリケーションにおいて同じクライアントデバイスにインストールされたモバイルアプリケーション管理アプリケーションに識別子を提供することができる。
【0050】
本システムは、ユーザインタラクション識別子およびインタラクティブアイテム識別子をモバイルアプリケーション管理システムに送信する(304)。たとえば、モバイルアプリケーション管理アプリケーションは、上述したように、識別子および任意で他のデータをモバイルアプリケーション管理システムに送信してもよい。これに応答して、モバイルアプリケーション管理システムは、ユーザインタラクション識別子をインタラクティブアイテムにリンクするデータエントリを作成してもよい。
【0051】
本システムは、第2のモバイルアプリケーション内で発生する指定されたユーザアクションのイベントデータを受信する(306)。たとえば、第2のモバイルアプリケーションは、アクションのタイプ、アクションの名前、アイテムの名前、アドオン、あるいはダウンロードまたは購入された機能、支払い情報などの指定されたユーザアクションを記述するデータ、あるいは他の適切なデータを、モバイルアプリケーション管理アプリケーションに提供してもよい。
【0052】
本システムは、イベントデータおよびインタラクティブアイテム識別子をモバイルアプリケーション管理システムに送信する(308)。たとえば、モバイルアプリケーション管理アプリケーションは、インタラクティブアイテムのインタラクティブアイテム識別子、インタラクションが発生したモバイルアプリケーションの識別子、モバイルアプリケーションの識別子、および/またはクライアントデバイスのデバイス識別子を記述するイベントデータを、モバイルアプリケーション管理システムに送信することができる。モバイルアプリケーション管理システムは、上述したように、指定されたユーザアクションを、インタラクティブアイテムとのユーザインタラクションと相関させるために、受信したデータを使用することができる。
【0053】
本明細書に記載される主題および動作の実施形態は、本明細書に開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的または追加的に、本プログラム命令は、人工的に生成された伝播信号、たとえばデータ処理装置による実行のための適切なレシーバ装置への送信のために情報を符号化するために生成された機械生成電気信号、光信号、または電磁信号において符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号において符号化されたコンピュータプログラム命令の発信元または宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらに含まれ得る。
【0054】
本明細書に記載される動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されたデータ、または他のソースから受信したデータに対してデータ処理装置によって実行される動作として実装することができる。
【0055】
「データ処理装置」という用語は、たとえば、プログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または前述のものの複数のもの、あるいはそれらの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。本装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを含むことができる。本装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0056】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、また、スタンドアロンプログラムとして、あるいはコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、オブジェクト、またはその他のユニットを含む、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の単一のファイル、あるいは複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されるか複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0057】
本明細書に記載されるプロセスおよび論理フローは、入力データを操作して出力を生成することによって動作を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することができ、また装置はそれらの専用論理回路として実装することもできる。
【0058】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの本質的要素は、命令に従って動作を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクを含むか、それらからデータを受信するように、またはそれらにデータを転送するように、あるいはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえばいくつか例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、あるいはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイスを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイス、内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補完されてもよく、それに組み込まれてもよい。
【0059】
ユーザとのインタラクションを提供するために、本明細書に記載される主題の実施形態は、たとえば、情報をユーザに表示するためのCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を提供することができる、キーボード、およびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装することができる。ユーザとのインタラクションを提供するために他の種類のデバイスを使用することができ、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間で文書を送受信することによって、たとえば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザとインタラクトすることができる。
【0060】
本明細書に記載される主題の実施形態は、たとえば、データサーバとしてのバックエンドコンポーネントを含む、あるいはアプリケーションサーバなどのミドルウェアコンポーネントを含む、あるいは、フロントエンドコンポーネント、たとえばグラフィカルユーザインタフェースを有するクライアントコンピュータ、またはユーザが本明細書に記載される主題の実装とインタラクトすることができるウェブブラウザを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せにおいて実装することができる。本システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、相互接続ネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0061】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔であり、典型的には通信ネットワークを通じてインタラクトする。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスとインタラクトするユーザにデータを表示し、また、そこからユーザ入力を受信する目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信することができる。
【0062】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求される可能性のあるものの範囲の限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載される特定の特徴もまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において記載される様々な特徴もまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は、特定の組合せにおいて作用するものとして上記で説明されており、最初はそのように主張されているが、場合によっては、特許請求された組合せからの1つまたは複数の特徴を組合せから切り出すことができ、特許請求された組合せは、サブコンビネーション、またはサブコンビネーションの変形に導かれてよい。
【0063】
同様に、動作は特定の順序で図面に示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序で、または順番に実行されること、あるいは図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク処理および並列処理が有利な場合がある。さらに、上述の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合することができるか、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。このように、主題の特定の実施形態について説明した。他の実施形態は、添付の特許請求の範囲内にある。場合によっては、請求項に記載された動作を異なる順序で実行することができ、依然として所望の結果を達成することができる。さらに、添付の図面に示されるプロセスは、所望の結果を達成するために、示された特定の順序、または順番を必ずしも必要としない。特定の実装形態では、マルチタスク処理および並列処理が有利な場合がある。
【符号の説明】
【0064】
100 例示的な環境
110 モバイルアプリケーション管理システム
112 フロントエンドサーバ
114 アクティビティ検出器
116 インタラクションログ
118 イベントログ
120 インタラクション識別子サーバ
130 データ通信ネットワーク
150 クライアントデバイス
152 モバイルアプリケーション
154 インタラクティブアイテム
156 モバイルアプリケーション
158 モバイルアプリケーション管理アプリケーション
200 例示的なプロセス
300 例示的なプロセス