-
TECHNISCHES GEBIET
-
Die vorliegende Spezifikation bezieht sich auf automatisiertes Auffinden von Informationen, zum Beispiel durch eine Suchmaschine.
-
HINTERGRUND
-
Über das Internet verfügbare digitale Inhalte werden oft von Benutzern auf mobilen Geräten konsumiert. Mobile Geräte beinhalten beispielsweise native Anwendungen, die Benutzern Zugriff auf digitale Inhalte bereitstellen. Der Konsum von digitalen Inhalten ist eine Art von Benutzerverhalten, die verwendet werden kann, um die Genauigkeit von dem Benutzer bereitgestellten Suchergebnissen zu verbessern.
-
KURZDARSTELLUNG
-
Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Verfahren ausgeführt sein, die Inhalte nativer Anwendungen, auf die ein Benutzer zugreift, für eine Suchmaschine verfügbar machen. Zum Beispiel kann die Suchmaschine in Reaktion auf ein Empfangen einer Suchanfrage, die sich auf betrachtete Inhalte bezieht, Suchergebnisse erzeugen, die Referenzen auf die betrachteten Inhalte beinhalten. Insbesondere kann die Suchmaschine auf einen Datensatz zugreifen, der innerhalb eines Indexes mit den Inhalten nativer Anwendungen assoziiert ist, und in Reaktion auf ein Empfangen der Suchanfrage kann die Suchmaschine den gespeicherten Datensatz verwenden, um eine Seite mit Suchergebnissen zu erzeugen, die die betrachteten Inhalte referenziert, und stellt einen Link zu den betrachteten Inhalten bereit, der, wenn er aktiviert wird, die native Anwendung startet.
-
Für Situationen, in denen die hier erörterten Systeme persönliche Informationen über Benutzer sammeln oder personenbezogene Informationen nutzen können, kann den Benutzern die Möglichkeit eingeräumt werden, zu steuern, ob Programme oder Merkmale personenbezogene Informationen sammeln, z. B. Informationen über das soziale Netzwerk eines Benutzers, soziale Handlungen oder Aktivitäten, Beruf, Benutzerpräferenzen oder der aktuelle Standort eines Benutzers, oder um zu steuern, ob und/oder wie Inhalte von dem Server für betrachtete Inhalte empfangen werden, die für den Benutzer von größerer Relevanz sein können. Zusätzlich können gewisse Daten auf einem oder mehreren Wegen anonymisiert werden, bevor sie gespeichert oder verwendet werden, so dass personenbezogene Informationen entfernt werden. Eine Benutzeridentität kann beispielsweise so anonymisiert werden, dass keine persönlichen identifizierbaren Informationen für den Benutzer bestimmt werden können, oder ein geografischer Standort des Benutzers kann verallgemeinert werden, wobei Standortinformationen entnommen werden, wie beispielsweise eine Stadt, Postleitzahl oder ein Bundesland, sodass ein bestimmter Standort eines Benutzers nicht bestimmt werden kann. Somit kann der Nutzer Kontrolle darüber haben, wie Informationen über ihn oder sie erhoben und von einem Inhaltsserver verwendet werden.
-
Implementierungen können zudem eine oder mehrere der folgenden Funktionen beinhalten. Zum Beispiel Empfangen, durch eine Suchmaschine und von einem mobilen Gerät, eines Datensatzes, der durch eine native Anwendung auf dem mobilen Gerät erzeugt wird, wobei der Datensatz Folgendes beinhaltet: (i) Daten, die die native Anwendung identifizieren, (ii) eine Darstellung betrachteter Inhalte und (iii) einen Link zu den betrachteten Inhalten, der, wenn er ausgewählt wird, die betrachteten Inhalte in der nativen Anwendung startet; Speichern, durch die Suchmaschine, (i) der Daten, die die native Anwendung identifizieren, und (ii) des Links zu den betrachteten Inhalten in Verbindung mit den betrachteten Inhalten; und Verwenden des gespeicherten Datensatzes beim Erzeugen eines Suchergebnisses, das (i) die betrachteten Inhalte referenziert und (ii) den Link zu den betrachteten Inhalten beinhaltet, der, wenn er ausgewählt wird, die betrachteten Inhalte in der nativen Anwendung startet.
-
Andere Versionen beinhalten entsprechende Systeme und Computerprogramme, die so konfiguriert sind, dass sie Aktionen von Verfahren durchführen, die auf Computerspeichergeräten codiert sind.
-
Eine oder mehrere Implementierungen können die folgenden optionalen Merkmale beinhalten. In einigen Implementierungen wird zum Beispiel das Suchergebnis in Reaktion auf eine empfangene Suchanfrage an ein Benutzergerät zurückgeleitet. Als weiteres Beispiel beinhaltet die Darstellung betrachteter Inhalte in einigen Implementierungen Schlüsselwörter aus den betrachteten Inhalten oder eine mit den betrachteten Inhalten assoziierte Kennung.
-
In einigen Implementierungen beinhaltet der Datensatz des Weiteren (iv) Informationen, die einen Benutzer des mobilen Geräts identifizieren.
-
In einigen Implementierungen spezifiziert die Zugriffskontrollliste, ob die betrachteten Inhalte als private Inhalte oder öffentliche Inhalte klassifiziert sind.
-
In einigen Implementierungen beinhaltet der Link zu den betrachteten Inhalten einen Deep-Link.
-
In einigen Implementierungen beinhaltet ein Verwenden des gespeicherten Datensatzes beim Erzeugen des Suchergebnisses: Empfangen, von einem zweiten mobilen Gerät, einer Suchanfrage; Identifizieren der betrachteten Inhalte als Reaktion auf die Suchanfrage; Bestimmen, dass die native Anwendung auf dem zweiten mobilen Gerät installiert ist; und in Reaktion auf ein Bestimmen, dass die native Anwendung auf dem zweiten mobilen Gerät installiert ist, Erzeugen eines Suchergebnisses, das (i) die betrachteten Inhalte referenziert und (ii) den Link zu den betrachteten Inhalten beinhaltet, der, wenn er ausgewählt wird, die betrachteten Inhalte in der nativen Anwendung startet. Alternativ kann das Verfahren, wenn nach einem Empfangen der Suchanfrage und einem Identifizieren der betrachteten Inhalte als reaktiv auf die Suchanfrage bestimmt wird, dass die native Anwendung nicht auf dem zweiten mobilen Gerät installiert ist, ein Bestimmen einer anderen kompatiblen Plattform zum Anzeigen der assoziierten Inhalte auf dem zweiten mobilen Gerät umfassen.
-
Bestimmte Implementierungen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile realisieren. Zum Beispiel können im Anwendungsseitenindex von Seiten nativer Anwendungen gespeicherte Informationen aus tatsächlichen Anwendungsseitendaten gewonnen werden und können somit eine umfassendere Beschreibung von Anwendungsinhalten bereitstellen als die, die durch Metadaten bereitgestellt wird, die extern zur nativen Anwendung sind und die native Anwendung beschreiben. Dies kann wiederum einer Suchmaschine die Möglichkeit bereitstellen, Relevanzmaße zu bestimmen, die genauer sind als auf die native Anwendung beschreibenden Metadaten basierende Relevanzmaße. Insbesondere kann der Anwendungsseitenindex von Seiten nativer Anwendungen einer Suchmaschine die Möglichkeit bereitstellen, Suchergebnisse für native Anwendungen auszugeben, die die tatsächlich innerhalb der Anwendungsseiten bereitgestellten Daten der nativen Anwendung berücksichtigen. Dies kann potenziell genauer sein als sich nur auf Metadaten zu stützen, die eine native Anwendung beschreiben, wie etwa mit einem Titel und einer Beschreibung der nativen Anwendung, und kann auch Herausgebern von Inhalten die Aufgabe abnehmen, Suchmaschinenoptimierungen an den Metadaten vorzunehmen, um sicherzustellen, dass die nativen Anwendungen in Reaktion auf bestimmte Anfragen identifiziert werden. Implementierungen des in dieser Spezifikation beschriebenen Gegenstands können somit verbessertes Suchen und Auffinden bereitstellen, zum Beispiel insofern, dass aufgefundene Dokumente genauer der Suchanfrage entsprechen.
-
Implementierungen, in denen in binärer Form auf Anwendungsseitendaten zugegriffen wird, können die Wahrscheinlichkeit von Beschreibungsfehlern reduzieren, die auftreten können, wenn Techniken verwendet werden, die diese Daten ableiten, wie etwa Fehler bei der optischen Zeichenerkennung. Zusätzlich kann ein Zugreifen auf die Daten in binärer Form auch Daten identifizieren, die sonst nicht in einem Darstellungsfeld sichtbar wären, wie etwa in dem Fall, bei dem ein scrollbares Element bedient werden muss, um das Darstellungsfeld innerhalb einer Anwendungsumgebung zu bewegen. Dieses Sammeln von Anwendungsseitendaten kann die native Anwendung als Quelle der Anwendungsseitendaten verwenden und somit kann ein Sammeln von die Anwendung beschreibenden Daten rascher erreicht werden als beim Sammeln von Metadaten von mehreren verschiedenen Websites. Ebenso kann das Sammeln von Anwendungsseitendaten auf diese Weise skalierbarer sein als das Sammeln von Metadaten von mehreren verschiedenen Websites.
-
Die Details einer oder mehrerer Implementierungen sind in den nachstehenden begleitenden Zeichnungen und der Beschreibung dargelegt. Weitere potenzielle Merkmale und Vorteile werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
-
Andere Implementierungen dieser Aspekte beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die so konfiguriert sind, dass sie Aktionen von Verfahren durchführen, die auf Computerspeichergeräten codiert sind.
-
Figurenliste
-
- 1 veranschaulicht ein beispielhaftes System, das zum Indexieren von Daten nativer Anwendungen verwendet werden kann.
- 2 veranschaulicht beispielhafte Prozesse, die zum Indexieren von Daten nativer Anwendungen verwendet werden können.
- 3 ist ein Blockdiagramm von Computergeräten, auf denen die hierin beschriebenen Prozesse oder Teile von diesen implementiert werden können.
-
In den Zeichnungen bezeichnen gleiche Referenznummern durchgängig gleiche Teile.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Gemäß einer allgemeinen Implementierung kann eine Suchmaschine, angesichts dessen, dass der Konsum von Inhalten in nativen Anwendungen mit der Zunahme von verfügbaren Inhalten auf mobilen Geräten stark zugenommen hat, auf durch diese nativen Anwendungen erzeugte Benutzeraktivitätsdaten zugreifen. Insbesondere kann eine Suchmaschine zusätzlich zu Benutzeraktivitätsdaten, wie etwa zuvor eingegebenen Suchanfragen, Inhalte, auf die durch Webbrowser zugegriffen wurde, oder Benutzerreaktionen auf dargestellte Suchergebnisse, auf Benutzeraktivitätsdaten zugreifen, die durch native Anwendungen erzeugt werden, die unabhängig von Suchmaschinen betrieben werden. Diese Benutzeraktivitätsdaten ermöglichen, wenn sie von Suchmaschinen berücksichtigt werden, dass zu erzeugende Suchergebnisse wesentliche Teile von Benutzeraktivitäten auf mobilen Geräten abbilden, was die Leistung von Suchanfragen verbessert.
-
Dementsprechend werden Techniken zum zur Verfügung stellen von nativen Anwendungen für eine Suchmaschine zum Erzeugen von Suchergebnissen in Reaktion auf eine nachfolgende Suchanfrage beschrieben, die mit den Inhalten der nativen Anwendung in Beziehung steht. Insbesondere kann die Suchmaschine einen mit der nativen Anwendung assoziierten Datensatz innerhalb eines Indexes speichern und in Reaktion auf ein Empfangen einer verwandten Suchanfrage den gespeicherten Datensatz verwenden, um einen Satz von Suchergebnissen zu erzeugen, der die betrachteten Inhalte referenziert, und einen Link zu den betrachteten Inhalten bereitstellen, der, wenn er aktiviert wird, die native Anwendung startet.
-
Wie hierin verwendet, kann eine native Anwendung Anwendungsseiten zur Anzeige auf einem mobilen Gerät innerhalb einer Umgebung der nativen Anwendung erzeugen und kann unabhängig von einer Browser-Anwendung auf dem mobilen Gerät betrieben werden. Zum Beispiel kann eine native Anwendung eine Anwendung sein, die speziell für den Betrieb auf einem bestimmten Betriebssystem und Maschinen-Firmware für mobile Geräte entwickelt wurde. Native Anwendungen unterscheiden sich somit von browserbasierten Anwendungen und vom Browser wiedergegebenen Ressourcen. Letztere können erfordern, dass alle, oder zumindest einige, Elemente oder Anweisungen jedes Mal, wenn sie instantiiert oder wiedergegeben werden, von einem Webserver heruntergeladen werden. Zusätzlich können browserbasierte Anwendungen und vom Browser wiedergegebene Ressourcen durch alle netzfähigen mobilen Geräte innerhalb des Browsers verarbeitet werden und sind somit nicht spezifisch für ein Betriebssystem.
-
Um Daten für eine native Anwendung zu indexieren, kann das System eine virtuelle Maschine instantiieren, die ein auf einem mobilen Gerät betriebenes Betriebssystem emuliert. Innerhalb der virtuellen Maschine kann das System eine native Anwendung instantiieren, die spezifisch für das Betriebssystem ist. Die native Anwendung kann beispielsweise Anwendungsseiten zur Anzeige auf einem mobilen Gerät innerhalb der nativen Anwendung erzeugen und unabhängig von einer Browser-Anwendung auf dem mobilen Gerät betrieben werden.
-
Das System kann innerhalb der virtuellen Maschine auf Anwendungsseiten der nativen Anwendung zugreifen. Das System kann beispielsweise unter Verwendung eines automatisierten Prozesses, der mehrere Menüs und Auswahlmöglichkeiten für jede Anwendungsseite und jede folgende Anwendungsseite erkundet, auf die Seiten zugreifen. Alternativ kann das System auf bestimmte Anwendungsseiten zugreifen, die durch einen bestimmten Herausgeber der nativen Anwendung spezifiziert werden.
-
Das System kann für jede der Anwendungsseiten Anwendungsseitendaten erzeugen, die die Inhalte der Anwendungsseite beschreiben. Die durch die Anwendungsseitendaten beschriebenen betrachteten Inhalte können zum Beispiel Text beinhalten, den ein mobiles Gerät auf der Anwendungsseite anzeigt, wenn das mobile Gerät die Anwendungsseite anzeigt, Bilddaten, die ein Bild der Anwendungsseite definieren, das in der nativen Anwendung wiedergegeben würde, Listen-/Menüdaten, die mehrere Listen und Menüs der Anwendungsseite beschreiben, oder andere Daten, die andere Funktionen der Anwendungsseite beschreiben.
-
Die Anwendungsseiten für die native Anwendung können in einem durch eine Suchmaschine durchsuchbaren Index indexiert werden. Die Suchmaschine kann beispielsweise Webressourcen-Suchergebnisse, die Webressourcen referenzieren, die in einer Browser-Anwendung auf einem mobilen Gerät wiedergegeben werden können, und Suchergebnisse von nativen Anwendungen, die die native Anwendung spezifizieren, kombinieren. Die Suchergebnisse für native Anwendungen können teilweise in Reaktion auf eine Suche von Indizes der Anwendungsseiten für native Anwendungen erzeugt werden.
-
Ein Betrieb des Systems, das Anwendungsseitendaten indexiert, und das Verarbeiten von Suchergebnissen für Anwendungsseiten wird nachfolgend ausführlicher beschrieben.
-
1 veranschaulicht ein beispielhaftes System 100, das zum Indexieren von Daten nativer Anwendungen verwendet werden kann. Im Allgemeinen verwendet ein Benutzer 102a eine native Anwendung 104a auf einem ersten mobilen Gerät 106a, um auf Inhalte zuzugreifen, die als ein Datensatz 108a an eine Suchmaschine 110 gesendet und in einem Index 120 gespeichert werden können. Die Suchmaschine 110 kann dann eine nachfolgende Suchanfrage 108b von einem zweiten mobilen Gerät 106b empfangen und in Reaktion auf die empfangene Suche 108b eine Suchergebnisseite 130 erzeugen. Der Benutzer 102b des zweiten mobilen Geräts kann dann eine Benutzereingabe 134 an einem Link 132 bereitstellen, der in der Suchergebnisseite 130 enthalten ist, welcher dann die native Anwendung 104b auf dem zweiten mobilen Gerät 106b startet. (Es sollte klar sein, dass die Begriffe „erstes mobiles Gerät“ und „zweites mobiles Gerät“ lediglich aus Gründen der Einfachheit der Beschreibung verwendet werden, und dass das erste mobile Gerät 106a und das zweite mobile Gerät 106b prinzipiell dasselbe mobile Gerät sein könnten - obwohl 1 die nachfolgende Suchanfrage 108b als von einem mobilen Gerät 106b gesendet zeigt, das vom mobilen Gerät 106a verschieden ist, das die native Anwendung 104a verwendet hat, um auf Inhalte zuzugreifen, ist es prinzipiell möglich, dass die nachfolgende Suchanfrage durch das selbe mobile Gerät 106a gesendet wird, das die native Anwendung 104a verwendet hat, um auf Inhalte zuzugreifen.)
-
Ausführlicher gesagt, können die mobilen Geräte 106a-106b jedwede Art von mobilen Computergeräten sein, die mobile Betriebssysteme beinhalten, wie etwa beispielsweise Smartphones, Tablet-Computer oder Laptop-Computer. Die nativen Anwendungen 104a-104b können mobile Anwendungen sein, die jeweils auf computerlesbaren Speichermedien der mobilen Geräte 106a-106b installiert und dazu konfiguriert sind, auf den Betriebssystemen der mobilen Geräte 106a-106b ausgeführt zu werden. Die nativen Anwendungen 104a-104b können entweder Anwendungen sein, die innerhalb der Betriebssysteme der mobilen Geräte 106a-106b enthalten sind, z. B. eine E-Mail-Anwendung, eine Kurznachrichtenanwendung, oder Anwendungen, die aus einem Anwendungs-Store installiert werden, z. B. eine Newsreader-Anwendung einer dritten Partei. In einigen Fällen können die nativen Anwendungen 104a-104b auch durch Inhaltsanbieter bereitgestellt werden, um es den Benutzern 102a-102b zu ermöglichen, auf die betrachteten Inhalte zuzugreifen, die jeweils durch die nativen Anwendungen 104a-104b angezeigt werden.
-
In einigen Implementierungen kann die native Anwendung 104a Daten extrahieren, die Darstellungen der betrachteten Inhalte beinhalten, auf die durch den Benutzer 102a in der nativen Anwendung 104a zugegriffen wird. Die Darstellungen der betrachteten Inhalte können Schlüsselwörter beinhalten, die aus den betrachteten Inhalten extrahiert werden, oder einen Hyperlink, der einen Benutzer 102a zu einer Anzeige der betrachteten Inhalte in der nativen Anwendung 104a leitet. In einigen Fällen können die Schlüsselwörter häufig auftretende Begriffe innerhalb der betrachteten Inhalte sein, die verwendet werden können, um die betrachteten Inhalte zu identifizieren. In anderen Fällen kann der Hyperlink ein Deep-Link sein, der Anweisungen an das mobile Gerät 106a überträgt, die native Anwendung 104a auszuführen, um die betrachteten Inhalte zu sehen.
-
In einigen Implementierungen kann der Datensatz 108 zusätzlich Benutzerinformationen des Benutzers 102a beinhalten. Die Benutzerinformationen können eine Hardware-Gerätekennung des mobilen Geräts 106a, Kontoinformationen, die im Zusammenhang mit einem Benutzerkonto oder einem Abonnement für die native Anwendung 104a stehen, oder andere Arten von Informationen beinhalten, die es der Suchmaschine 110 ermöglichen, den Datensatz 108 mit dem Benutzer 102a zu assoziieren. In einigen Fällen können zum Beispiel demografische Informationen im Zusammenhang mit dem Benutzer 102a in Aggregatdaten gesammelt werden, die aus bestimmten Arten von Inhalten gesammelt werden, die über die native Anwendung 104a verfügbar sind.
-
In einigen Implementierungen kann der Datensatz 108 zusätzlich eine Zugriffskontrollliste beinhalten, die beispielsweise spezifiziert, ob die betrachteten Inhalte, auf die durch den Benutzer 102a zugegriffen wird, als private Inhalte oder öffentliche Inhalte klassifiziert werden sollten. Die Zugriffskontrollliste kann beispielsweise bestimmte Benutzer identifizieren und für jeden Benutzer gewährte, verweigerte oder revidierte Zugriffsrechte spezifizieren. Zum Beispiel können Daten, die als privat klassifiziert werden, personenbezogene Benutzerinformationen, wie etwa Benutzernamen und Passwörter, Zahlungsinformationen oder andere Arten von Informationen, die der Benutzer 102a privat halten möchte, beinhalten. In anderen Beispielen können Daten, die als öffentlich klassifiziert werden, Informationen beinhalten, die verwendet werden können, um Benutzeraktivitätsdaten von mehreren Benutzern zu sammeln, die auf bestimmte Inhalte in der nativen Anwendung 104a zugreifen. Beispielsweise können Daten, die angeben, dass die Artikel durch den Benutzer 102a gelesen wurden, oder durch den Benutzer 102a in der nativen Anwendung 104a bereitgestellte Suchanfragen angeben, verwendet werden, um Daten von mehreren Benutzern zu sammeln, um Benutzeraktivitätsmuster im Zusammenhang mit den betrachteten Inhalten in der nativen Anwendung 104a zu bestimmen.
-
Wie im Beispiel in 1 gezeigt, kann der Benutzer 102a Inhalte im Zusammenhang mit Nachrichten in der nativen Anwendung 104a betrachten, die eine Newsreader-Anwendung sein kann, die dem Benutzer 102a Nachrichtenartikel von digitalen Anbietern bereitstellt. Wie abgebildet kann der Benutzer 102b die Newsreader-Anwendung verwenden, um einen Artikel mit dem Titel „Endlich Leben auf dem Mars nachgewiesen“ zu lesen. Die Newsreader-Anwendung kann den Datensatz 108a sammeln, der Benutzeraktivität in der nativen Anwendung 104a darstellt, wie etwa Informationen im Zusammenhang mit den Nachrichtenartikeln, auf die durch den Benutzer 102a zugegriffen wird.
-
Die Suchmaschine 110 kann ein Software-System sein, das eine Suchinfrastruktur zum Empfangen des Datensatzes 108 im Zusammenhang mit Inhalten in der nativen Anwendung 104a beinhaltet und dazu entwickelt ist, basierend auf dem empfangenen Datensatz 108a und Suchanfrage 108b im Internet nach Informationen zu suchen. Die Suchmaschine kann beispielsweise durch ein mit den mobilen Geräten 106a-106b gekoppeltes Netzwerk mit der Suchinfrastruktur gekoppelt sein. Die Suchmaschine 110 kann in Software, Firmware, Hardware oder jedweder Kombination implementiert sein. Die Suchmaschine 110 kann zum Beispiel in einigen Implementierungen in einen Server integriert sein, der mit einem Webserver (nicht abgebildet) kommunizieren kann oder Teil von diesem ist. In den Implementierungen kann die Suchmaschine 110 durch entsprechende auf entfernten Client-Geräten, wie etwa beispielsweise die mobilen Geräte 106a und 106b, laufende Browser über das Internet nach Informationen suchen.
-
Die Suchmaschine 110 kann auf den empfangenen Datensatz 108a zugreifen, um Informationen aus dem Datensatz 108a zu extrahieren und die Informationen innerhalb des Indexes 120 zu speichern. Die Suchmaschine 110 kann beispielsweise gängige Suchmaschinenindexierungstechniken verwenden, die durch Suchmaschinenarchitekturen verwendet werden, um den Index 120 zu erzeugen. Die extrahierten Informationen innerhalb des Indexes 120 können in der Informationstabelle für betrachtete Inhalte 122 gespeichert werden.
-
Wie in dem Beispiel in 1 gezeigt, kann die Informationstabelle für betrachtete Inhalte 122 Informationen im Zusammenhang mit den betrachteten Inhalten beinhalten, auf die durch den Benutzer 102a in der nativen Anwendung 104a zugegriffen wurde. Wie abgebildet beinhaltet die Informationstabelle für betrachtete Inhalte 122 zum Beispiel einen „ZEITSTEMPEL“, der angibt, wann der Benutzer 102a in der nativen Anwendung 104a auf die betrachteten Inhalte zugegriffen hat, eine „LINKINFORMATION“, die das durch die native Anwendung 104a zum Laden der betrachteten Inhalte verwendete Kommunikationsprotokoll angibt, eine „ANWENDUNGSKENNUNG“, die eine mit der nativen Anwendung 104a assoziierte eindeutige Anwendungskennung darstellt, und eine „INHALTSART“, die die Art von Inhalten klassifiziert, die in der nativen Anwendung 104a wiedergegeben werden.
-
Die Suchmaschine 110 kann auch Suchanfragen von Benutzern empfangen. Die Suchmaschine 110 empfängt beispielsweise, wie im Beispiel in 1 gezeigt, eine Suchanfrage 108b nach dem Begriff „PLANET“, die unter Verwendung des mobilen Geräts 106b vom Benutzer 102b gesendet wird. In Reaktion auf Empfangen der Suchanfrage 108b kann die Suchmaschine 110 basierend auf einem Vergleichen der in der Suchanfrage 108b enthaltenen Begriffe mit den im Index 120 enthaltenen Informationen Informationen innerhalb der Informationstabelle für betrachtete Inhalte 122 bestimmen, die für die in der Suchanfrage 108b enthaltenen Begriffe relevant sind. Zum Beispiel kann die Suchmaschine 110, wie abgebildet, bestimmen, dass die in der nativen Anwendung 104a dargestellten betrachteten Inhalte relevant für die Suchanfrage 108b „PLANET“ sind, weil die Informationstabelle für betrachtete Inhalte 122 angibt, dass der Titel des Nachrichtenartikels „Endlich Leben auf dem Mars nachgewiesen“ den verwandten Begriff „MARS“ beinhaltet. Die Suchmaschine 110 kann dann in Reaktion auf ein Empfangen der Suchanfrage 108b eine Suchergebnisseite 130 auf dem mobilen Gerät 106b erzeugen. Die Suchergebnisseite 130 kann beispielsweise in einem Webbrowser auf dem mobilen Gerät 106b gezeigt werden.
-
Wie im Beispiel in 1 gezeigt, beinhaltet die Suchergebnisseite 130 Referenzen zu den betrachteten Inhalten in der nativen Anwendung 104a, basierend darauf, dass die Suchmaschine 110 bestimmt, dass die Suchanfrage 108 im Zusammenhang mit den in der Informationstabelle für betrachtete Inhalte 122 des Indexes 120 enthaltenen Informationen steht. Die Suchergebnisseite 130 beinhaltet den Link 132, der durch die Benutzereingabe 134 aktiviert werden kann. Die Benutzereingabe 134 kann beispielsweise einen „One-Click“ unter Verwendung einer Maus oder eine Berührungseingabe über dem Text des Links 132 beinhalten. Sobald der Link 132 aktiviert wird, startet das mobile Gerät 106b die betrachteten Inhalte in der nativen Anwendung 104b.
-
In einigen Implementierungen kann der Link 132 ein Deep-Link mit eingebetteten Informationen sein, der dem mobilen Gerät 106b einen Satz von computerimplementierten Anweisungen bereitstellt, die native Anwendung 104b zu starten, um Inhalte, die mit in der Informationstabelle für betrachtete Inhalte 122 enthaltenen Informationen assoziiert sind, abzubilden.
-
In einigen Implementierungen kann die Suchmaschine 110 in Reaktion auf ein Empfangen der Suchanfrage 108b zusätzliche oder alternative Operationen im Zusammenhang mit der nativen Anwendung 104b durchführen. Zum Beispiel kann die Suchmaschine 110 anfänglich bestimmen, ob die betrachteten Inhalte in der Informationstabelle für betrachtete Inhalte 112 reaktiv auf die Suchanfrage 108b sind, und in Reaktion auf ein Bestimmen, dass die betrachteten Inhalte reaktiv auf die Suchanfrage 108b sind, die Suchergebnisseite 130 erzeugen. In diesen Fällen kann die Suchmaschine 110 möglicherweise nur den Link 132 in die Suchergebnisseite 130 aufnehmen, wenn bestimmt wird, dass die betrachteten Inhalte reaktiv auf die Suchanfrage 108b sind. Wenn die Suchanfrage 108b keine Begriffe beinhaltet, die im Zusammenhang mit den Informationen innerhalb der Informationstabelle für betrachtete Inhalte 122 stehen, kann die Suchmaschine den Datensatz 108a innerhalb von Index 120 beim Erzeugen der Suchergebnisseite 130 ignorieren.
-
Wie im Beispiel in 1 gezeigt, beinhaltet die Suchergebnisseite 130 einen Hyperlink zur nativen Anwendung „News Reader“, die die Nachrichtenartikelinhalte mit dem Titel „Endlich Leben auf dem Mars nachgewiesen“ zeigt. Nach einem Empfangen einer Benutzereingabe, die den Hyperlink aktiviert, kann das mobile Gerät 106b dann die native Anwendung „News Reader“ starten, um den Nachrichtenartikel „Endlich Leben auf dem Mars nachgewiesen“ zu zeigen. Wie im Beispiel abgebildet, kann das System 100 verwendet werden, um gemeinsame Nachrichtenartikelinhalte, die von Interesse sein können, zwischen den Benutzern 102a und 102b zu assoziieren, basierend auf einem Empfangen von Daten durch die Suchmaschine 110, die angeben, dass die Benutzer 102a und 102b möglicherweise an ähnlichen Themen im Zusammenhang mit dem Weltraum interessiert sein können.
-
In einigen Implementierungen kann das mobile Gerät 106b dann, nachdem der Benutzer 102b den Link 132 aktiviert hat, einen Datensatz 108c an die Suchmaschine 110 übertragen, die dann die Informationstabelle für betrachtete Inhalte 112 für die zwischen den nativen Anwendungen 104a und 104b geteilten Inhalte aktualisieren kann. In diesen Implementierungen kann die Suchmaschine 110 den Index 120 rekursiv erzeugen, nachdem nachfolgende Benutzer auf die assoziierten betrachteten Inhalte zugegriffen haben, um aggregierte Informationen von betrachteten Inhalten, basierend auf Inhalten von mehreren Benutzern, zu sammeln.
-
In einigen Fällen kann die native Anwendung 104b eine von der nativen Anwendung 104a verschiedene Anwendung sein, die dieselben Inhalte anzeigt. In diesen Fällen können die betrachteten Inhalte durch einen Inhaltsanbieter auf verschiedene Arten von auf mobilen Geräten betriebenen nativen Anwendungen bereitgestellt werden. Die betrachteten Inhalte können zum Beispiel ein Nachrichtenartikel sein, der auf mehreren mobilen Plattformen veröffentlicht wird, und auf den durch mehrere native Anwendungen zugegriffen wird.
-
In einigen Fällen, in denen die native Anwendung 104b nicht auf dem mobilen Gerät 106b installiert ist, wenn der Benutzer 102b den Link 132 aktiviert, kann das System 100 stattdessen eine andere kompatible Plattform bestimmen, um die assoziierten Inhalte anzuzeigen. Bei dem Beispiel in 1 kann das mobile Gerät 106b, statt die native Anwendung 104b zu betreiben, den Nachrichtenartikel in einer Webbrowser-Anwendung auf dem mobilen Gerät 106b anzeigen.
-
2 veranschaulicht den beispielhaften Prozess 200, der zum Indexieren von Daten nativer Anwendungen verwendet werden kann. Kurz gefasst kann der Prozess 200 ein Empfangen eines Datensatzes (210), ein Speichern des Datensatzes (220) und ein Verwenden des gespeicherten Datensatzes (230) beinhalten.
-
Ausführlicher kann der Prozess 200 ein Empfangen eines Datensatzes (210) beinhalten. Die Suchmaschine 110 kann zum Beispiel vom mobilen Gerät 106a einen Datensatz 108a empfangen, der durch die native Anwendung 104a auf dem mobilen Gerät 106a erzeugt wird. Der Datensatz 108a kann Daten, die die native Anwendung 104a identifizieren, eine Darstellung betrachteter Inhalte und einen Link zu den betrachteten Inhalten beinhalten, der, wenn er ausgewählt wird, die betrachteten Inhalte in der nativen Anwendung 104a startet. Beispielsweise können die betrachteten Inhalte, wie in 1 gezeigt, ein Nachrichtenartikel sein, der in der nativen Anwendung 104a gezeigt wird, die eine Newsreader-Anwendung sein kann.
-
Der Prozess 200 kann ein Speichern des Datensatzes (220) beinhalten. Die Suchmaschine 110 kann zum Beispiel die Daten, die die native Anwendung 104a identifizieren, und den Link zu den betrachteten Inhalten in Verbindung mit den betrachteten Inhalten speichern. Beispielsweise kann der Index 120, wie in 1 gezeigt, die Informationstabelle für betrachtete Inhalte 122 beinhalten, die Informationen aus dem empfangenen Datensatz 108a beinhaltet. Die Informationen können zum Beispiel einen Zeitstempel, der darstellt, wann der Benutzer 102a auf die betrachteten Inhalte zugegriffen hat, Informationen im Zusammenhang mit dem Link zu den betrachteten Inhalten, eine Kennung der nativen Anwendung, die die native Anwendung 104a identifiziert, oder eine Klassifikation der betrachteten Inhalte beinhalten.
-
Der Prozess 200 kann ein Verwenden des gespeicherten Datensatzes (230) beinhalten. Die Suchmaschine 110 kann zum Beispiel den im Index 120 gespeicherten Datensatz beim Erzeugen einer Suchergebnisseite 130 in Reaktion auf eine Suchanfrage, zum Beispiel der Suchanfrage 108b vom mobilen Gerät 106b, verwenden. Beispielsweise kann die Suchergebnisseite 130 die betrachteten Inhalte referenzieren und kann den Link 132 beinhalten, der, wenn er ausgewählt wird, die betrachteten Inhalte in der nativen Anwendung 104b startet. Der Benutzer kann den Link 132 unter Verwendung der Benutzereingabe 134 auswählen. In einigen Fällen, nach der Benutzereingabe 134, kann der Datensatz 108c an die Suchmaschine 110 übertragen werden, die dann den Index 120 aktualisiert, nachdem das mobile Gerät 106b auf die native Anwendung 104b zugreift.
-
3 ist ein Blockdiagramm von Computergeräten 300, die verwendet werden können, um die Systeme und Verfahren, die in diesem Dokument beschrieben werden, als entweder ein Client oder als ein Server oder mehrere Server zu implementieren. Computergerät 300 soll verschiedene Formen von Digitalcomputern, zum Beispiel Laptops, Desktops, Workstations, persönliche digitale Assistenten, Server, Blade-Server, Mainframes und andere geeignete Computer, darstellen.
-
Das Computergerät 300 beinhaltet einen Prozessor 302, einen Speicher 304, eine Speichervorrichtung 306, eine Hochgeschwindigkeitsschnittstelle 308 für die Verbindung mit Speicher 304 und Hochgeschwindigkeitserweiterungsanschlüssen 310, und eine Niedergeschwindigkeitsschnittstelle 312 für die Verbindung mit dem Niedergeschwindigkeitsbus 314 und dem Speichergerät 306. Alle Komponenten 302, 304, 306, 308, 310 und 312 sind unter Verwendung verschiedener Busse miteinander verbunden und können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein. Prozessor 302 kann Anweisungen zum Ausführen im Computergerät 300 verarbeiten, einschließlich im Speicher 304 oder auf dem Speichergerät 306 gespeicherter Anweisungen, zum Anzeigen grafischer Informationen auf einer grafischen Benutzeroberfläche (GUI) auf einem externen Eingabe-/Ausgabegerät, wie einem mit einer Hochgeschwindigkeitsschnittstelle 308 gekoppelten Display 316. Bei anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse je nach Bedarf zusammen mit mehreren Speichern und Speicherarten verwendet werden. Es können außerdem auch mehrere Computergeräte 300 verbunden sein, wobei jedes Gerät Teile der notwendigen Operationen bereitstellt, z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem.
-
Das Computergerät 300 kann, wie in der Figur ersichtlich, in einer Reihe verschiedener Formen implementiert sein. Es kann beispielsweise als Standardserver 320 oder mehrfach in einer Gruppe jener Server implementiert sein. Es kann außerdem als Teil eines Rackserversystems 324 implementiert sein. Darüber hinaus kann es in einem Personal-Computer, wie z. B. Laptop-Computer 322, implementiert sein. Alternativ können Komponenten von Computergerät 300 mit anderen Komponenten in einem mobilen Gerät (nicht dargestellt) kombiniert sein. Jedes dieser Geräte kann ein oder mehrere Computergerät(e) 300 enthalten, während ein gesamtes System aus mehreren miteinander kommunizierenden Computergeräten 300 zusammengesetzt sein kann.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Verfahren können in digitaler elektronischer Schaltung, integrierter Schaltung, in speziell konstruierten ASICs (anwendungsspezifischen integrierten Schaltungen), in Computer-Hardware, Firmware, Software und/oder Kombinationen dieser Implementierungen realisiert werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der für spezifische oder für allgemeine Zwecke sein kann und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Befehlen an ein Speichersystem, mindestens ein Eingabegerät und mindestens ein Ausgabegerät gekoppelt ist. Diese mehreren Implementierungen können zusätzlich oder alternativ eine Implementierung in einem computerlesbaren Medium beinhalten, auf dem Anweisungen gespeichert sind, die, wenn sie durch einen oder mehrere Computer ausgeführt werden, den einen oder die mehreren Computer veranlassen, ein Verfahren der Erfindung durchzuführen.
-
Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet, z. B. als Datenserver, oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, beinhaltet oder das eine Front-End-Komponente, z. B. einen Client-Rechner, der eine grafische Benutzeroberfläche aufweist oder einen WebBrowser verwendet, durch die ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann, oder eine beliebige Kombination solcher Back-End, Middleware- oder Front-End-Komponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN“), ein Großraumnetzwerk („WAN“) und das Internet.
-
Eine Reihe von Ausführungsformen wurde beschrieben. Es versteht sich jedoch, dass verschiedene Modifikationen vorgenommen werden können, ohne vom Sinn und Umfang der Erfindung abzuweichen. Außerdem erfordern die in den Figuren dargestellten logischen Abläufe nicht die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. Darüber hinaus können andere Schritte vorgesehen sein oder Schritte aus den beschriebenen Abläufen eliminiert und andere Komponenten zu den beschriebenen Systemen hinzugefügt oder aus denselben entfernt werden. Dementsprechend befinden sich andere Ausführungsformen innerhalb des Umfangs der folgenden Ansprüche.