IDマッピングアルゴリズムを説明すると、最初のいくつかの重要な概念を言います:
MAC(メディアアクセス制御)、MACアドレスは、IDカードのために、一意のネットワークデバイスを識別します。
IMEI(国際モバイル機器アイデンティティ)は、通常の電話のシリアル番号、携帯電話の「シリアル番号」は、個々の携帯電話や携帯電話網内の各ユニットの他の移動体通信装置を特定するステップと、コンセンサス15桁のシリアル番号、最初の6(TAC )電話のタイプを表すタイプ承認番号、です。次に、図2(FAC)が起源の代わりに、最終組立の数です。6(SNR)の後にシリアル番号、代表的な製造シーケンス番号です。最後の(SP)は、一般的に0であり、使用するためのチェックコードです。
同じ番号0-9を用いて、以下15の全長、IMSI(国際移動SubscriberIdentification番号)は、SIMカードに格納され、モバイルユーザが有効な情報を区別する。前記MCCは3桁の数字を表し、MCCが所定中国460で、モバイル国コード、ユーザが所属あり、MNCが2桁までの、モバイルネットワーク番号であり、移動通信ネットワークは、モバイルユーザが所属識別、MSINモバイルユーザ移動通信ネットワークにおいてモバイル加入者を識別するための識別コード。
AndroidシステムIDがランダムに生成される64ビットデバイスIDは、デバイスが寿命を知ることができ、それを通してコード(16進数の文字列)の列(デバイスまたはブラシをリセット工場後に、値が変化してもよい)です。
UDID(一意のデバイス識別子)、40個の文字の英数字の組成から成る固有の識別コードアップルIOSデバイスは、保護ユーザのプライバシーするためにAppleが禁止識別を読み取りました。
UUID(汎用一意識別子)、ユーザがアプリケーションを使用するときに限り、ユーザがアプリケーションを完全に除去しないように、その後、UUIDは同じままである、単一のアプリケーション上のiOSデバイスに基づいています。ユーザーがアプリケーションを削除し、再度インストールした場合は、このUUIDが変更されました。欠点は、基本的に関連性を得ることができない、あなたが開発したプログラムを削除し、ユーザーデータの前ということです。
OpenUDIDではなく、Appleの関係者は、ソリューションの欠点を開発する第3の選択肢UDIDであるあなたは完全にすべてのアプリケーション(など回収システム、など)OpenUDID SDKパッケージと、その後OpenUDID再生成し、前の値を削除することで、それは違うだろう。
IDFA(識別子広告)は、妥協案を思い付いた、と広告効果を監視するために企業のためのハードウェアに依存しない識別子の別のセットを提供するために、AppleのUDIDを無効にした後、これがIDFAです。ユーザー、携帯電話の設定で文字のこの文字列を変更することができ、長期的なビジネスにつながる可能性は、ユーザーの行動を追跡する方法はありません。
telphone(電話番号)。電話番号は、ユーザを識別することができます。同じ携帯電話番号の2人は同時にはできませんので。
上述したこれらの情報には、一意のユーザID番号として、ユーザを識別することができます。
2番目の電話に電話を使用して、ユーザージョー・スミス、Baiduのマップ上の最初の携帯電話の使用、iPadのBaiduのiQIYI時計ビデオ、Baiduのアプリを仮定し、利用BaiduはPCのコンピュータ上で検索し、どのようにするのと同じこれらの異なるエンドユーザの情報集約一緒のユーザー?
ID情報に関連したこの問題の主な解決策を、IDマッピング。
アルゴリズムの考え方
それぞれの端部で収集我々ユーザID情報は、2つのログを入力するものとします。
ライン1:<MAC1、MAC2> <imei1> <TEL1>
LINE2:<MAC1> <imei2> <TEL1、TEL2>
上から下に2つのユーザー行動ログは、次の2件のデータが同一ユーザーである必要があり、彼らはMAC1を持っている参照してください。
地図削減重合法、やって地図データブロックの複数のラウンドを使用すると、マージを行う減らします
最初のラウンド、およびマップのMAC1 MAC2キーフィールドへと削減
地図出力:
MAC1 LINE1 <MAC1、MAC2> <imei1> <TEL1>
MAC2 LINE1 <MAC1、MAC2> <imei1> <TEL1>
MAC1 LINE2 <MAC1> <imei2> <TEL1、TEL2>
出力の削減:
LINE1 <MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
LINE1 <MAC1、MAC2> <imei1> <TEL1>
LINE2 <MAC1、MAC2> <imei2、imei1> <TEL1、TEL2>
マップへLINE1のLINE2とキーフィールドするために、第2ラウンド、および軽減
地図出力:
LINE1 <MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
LINE1 <MAC1、MAC2> <imei1> <TEL1>
LINE2 <MAC1、MAC2> <imei2、imei1> <TEL1、TEL2>
出力の削減:
LINE1 <MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
LINE2 <MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
<MAC1、MAC2>の第三ラウンドは、マップのキーで、フィールドを軽減します
地図出力:
<MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
<MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
出力の削減:
<MAC1、MAC2> <imei1、imei2> <TEL1、TEL2>
順次<ID>上記のプロセスはないマージまで繰り返される指定します
データとインデックスのデザイン
データベーステーブルの設計を主グローバルIDキー、(ロールID番号と同様)として提供され、他のフィールドは、ユーザーIDの複数を表すために使用され、(マップ<文字列、整数>)を複数持つことができ。
//データシート
global_id文字列、
IMEIマップの<string、int型>
MACマップ<文字列、整数>
IMSIマップの<string、int型>
PHONE_NUMBERマップ<文字列、整数>
IDFAマップ<文字列、整数>
openudidマップの<string、int型>
uidのマップの<string、int型>
やったマップの<string、int型>
1
2
3
4
5
6
7
8
9
10
たとえば、この4つのレコードは、ユーザーが実際に保存されたときにそれらをキーとしてglobal_idを持つユーザーとして保存入れ、見ることができます。
このようにして得られました
global_id <=> IMEIとの間のマッピングは、MAC、IMSI、PHONE_NUMBER、IDFA、openudid、uidが、やりました。
//インデックステーブル
id文字列
global_id文字列
1
2
3
4
場合オンライン問い合わせ、それはglobal_id MACインデックステーブルを取得するために応じて、MAC1取得した種別IDを想定し、データテーブルglobal_idによるユーザIMEI、PHONE_NUMBER他のID情報を取得しています。
IDは、質問を期限切れ
データを保存するためにゾンビユーザー、またはユーザーのない長期の場合は意味がありませんデータが正確ではないかもしれませんした後、資源の浪費と長期のデータが更新されません。
IDは、一方では、ユーザに代わって活動のレベルは、一つのIDの記憶を制御するために行うことができ、各アクティビティ・パラメータのために添加することができます。
ユーザー行動データ:ユーザの活動を表し、テーブルに活動データが0に設定されています
IDマッピング過去のデータ:ユーザーのデータの代わりに毎週アップデート先週、反復、1アクティビティ
ユーザ情報の総量:ユーザデータの全体量を表すが、適切な値にアクティブセットのパラメータを導入します。(例:60)