RU2774319C2 - Deep links for native applications - Google Patents

Deep links for native applications Download PDF

Info

Publication number
RU2774319C2
RU2774319C2 RU2018133614A RU2018133614A RU2774319C2 RU 2774319 C2 RU2774319 C2 RU 2774319C2 RU 2018133614 A RU2018133614 A RU 2018133614A RU 2018133614 A RU2018133614 A RU 2018133614A RU 2774319 C2 RU2774319 C2 RU 2774319C2
Authority
RU
Russia
Prior art keywords
uri
native application
data
native
application
Prior art date
Application number
RU2018133614A
Other languages
Russian (ru)
Other versions
RU2018133614A3 (en
RU2018133614A (en
Inventor
Лоуренс ЧАНГ
Хой СЮЙ
Original Assignee
Гугл Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Гугл Инк. filed Critical Гугл Инк.
Publication of RU2018133614A publication Critical patent/RU2018133614A/en
Publication of RU2018133614A3 publication Critical patent/RU2018133614A3/ru
Application granted granted Critical
Publication of RU2774319C2 publication Critical patent/RU2774319C2/en

Links

Images

Abstract

FIELD: communication.
SUBSTANCE: invention relates to the creation of deep links for native applications. Data defining a pattern of a unified resource identifier (hereinafter – URI) for a native application is received, including a host name and a path prefix, while URI pattern defines a corresponding issuer for this native application, a set of URI is generated from URI pattern for the mentioned native application, wherein each URI includes a host name and a path prefix attached to this host name; a deep link for the mentioned native application is generated for URI of the mentioned set of URI, wherein the deep link includes URI and additional data that is attached to this URI; and the mentioned set of URI is saved to a data storage.
EFFECT: ensuring automatic indexing of deep links for native applications.
15 cl, 4 dwg

Description

Заявление об установлении приоритетаPriority Statement

Данная заявка по закону 35 в Cводе законов США, 119(е) притязает на приоритет заявки на патент США № 62/017.193, поданной 25 июня 2014 г., содержимое которое полностью включено в настоящий документ путем ссылки.This 35 U.S.C. 119(e) application claims priority to U.S. Patent Application No. 62/017.193, filed June 25, 2014, the contents of which are hereby incorporated by reference in their entirety.

Уровень техникиState of the art

Интернет обеспечивает доступ к самой разнообразной информации. Например, по Интернету доступны файлы цифровых изображений, видео- и/или аудиофайлы, а также ресурсы веб-страниц по конкретным темам или конкретным сообщениям печати. Что касается ресурсов веб-страниц, многие из этих ресурсов предназначены для упрощения выполнения конкретных функций, таких как банковские операции, заказ номеров в гостиницах, совершение покупок и т.д., или для предоставления структурированной информации, такой как электронные энциклопедии, базы данных по фильмам и т.д.The Internet provides access to a wide variety of information. For example, digital image files, video and/or audio files, and web page resources on specific topics or specific print messages are available over the Internet. As for web page resources, many of these resources are designed to facilitate specific functions such as banking, hotel reservations, shopping, etc., or to provide structured information such as electronic encyclopedias, databases of films, etc.

Имеется целый ряд поисковых систем для идентификации конкретных ресурсов веб-страниц, доступных по Интернету. С появлением планшетных компьютеров и смартфонов нативные приложения, которые обеспечивают выполнение тех же функций, что обеспечиваются благодаря использованию ресурсов веб-страниц, в настоящее время предоставляются в большом числе.There are a number of search engines available for identifying specific web page resources available on the Internet. With the advent of tablets and smartphones, native applications that provide the same functionality as provided by the use of web page resources are now being provided in large numbers.

Информационные потребности пользователя могут при этом удовлетворяться путем предоставления результатов поиска, в которых устанавливается либо один из конкретных ресурсов веб-страниц, либо нативное приложение (или и то, и другое), которые обеспечивают выполнение тех же функций, что обеспечиваются благодаря использованию ресурсов веб-страниц, или представляют одинаковую или очень похожую информацию в виде ресурса веб-страницы.The information needs of the user can then be met by providing search results that install either one of the specific web page resources or a native application (or both) that provides the same functionality that is provided through the use of web resources. pages, or present the same or very similar information as a web page resource.

Сущность изобретенияThe essence of the invention

Настоящее изобретение относится к созданию глубинных ссылок нативных приложений и, в частности, к системам и способам для автоматического генерирования глубинных ссылок нативных приложений.The present invention relates to deep linking of native applications, and more particularly to systems and methods for automatically generating native application deep links.

В целом, один аспект изобретения, излагаемого в данном описании, может быть осуществлен в способах, которые включают в себя действия приема данных привязки к издателям для нативных приложений, которые задают, для каждого нативного приложения, связанного издателя для нативного приложения; для каждого нативного приложения из набора нативных приложений - определения на основе данных привязки к издателям того, связано ли оно с издателем, который предоставляет контент, адресуемый с помощью URI, определяемых для нативного приложения; только для нативных приложений, которые определены как связанные с издателем, который предоставляет контент, адресуемый с помощью URI, определяемых для нативного приложения: выбора URI на основе шаблона URI для нативного приложения, индексирования контента, доступного с помощью URI для нативного приложения в индексе, который допускает возможность поиска поисковой системой. Другие варианты осуществления данного аспекта включают в себя соответствующие системы, устройство и компьютерные программы, выполненные с возможностью осуществления действий способов, кодированных на запоминающих устройствах компьютера.In general, one aspect of the invention set forth herein can be implemented in methods that include the steps of receiving publisher binding data for native applications that define, for each native application, an associated publisher for the native application; for each native application in the set of native applications, determining, based on the publisher binding data, whether it is associated with a publisher that provides content addressed by the URIs defined for the native application; only for native apps that are identified as being associated with a publisher that provides content addressed by URIs defined for the native app: selecting a URI based on the native app URI pattern, indexing content accessed by the native app URI in an index that allows searching by a search engine. Other embodiments of this aspect include related systems, apparatus, and computer programs capable of performing the actions of the methods encoded on computer storage devices.

Еще один аспект изобретения, излагаемого в данном описании, может быть осуществлен в способах, которые включают в себя действия определения шаблона унифицированного идентификатора ресурса (URI) для нативного приложения; инстанцирования нативного приложения и выбора первого URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения; индексирования данных страницы приложения на странице приложения в индексе, который допускает возможность поиска поисковой системой; итеративной обработки связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка включает в себя для каждой итерации, определение по странице приложения исходящих URI, в том числе, на первой странице приложения; выбор одного или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения; индексирование данных страницы приложения для каждой из этих одной или более следующих страниц приложения в индексе. Другие варианты осуществления данного аспекта включают в себя соответствующие системы, устройство и компьютерные программы, выполненные с возможностью осуществления действий способов, кодированных на запоминающих устройствах компьютера.Yet another aspect of the invention set forth herein can be implemented in methods that include the steps of defining a Uniform Resource Identifier (URI) template for a native application; instantiating the native application and selecting a first URI based on the URI template to generate an application page in the native application display environment; indexing the application page data on the application page in an index that is searchable by a search engine; iteratively processing the linked application pages for the native application until a stop event occurs, the iterative processing including, for each iteration, determining, from the application page, outgoing URIs, including those on the first page of the application; selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment; indexing application page data for each of those one or more next application pages in the index. Other embodiments of this aspect include related systems, apparatus, and computer programs capable of performing the actions of the methods encoded on computer storage devices.

Конкретные варианты осуществления изобретения, излагаемого в данном описании, могут быть осуществлены таким образом, чтобы реализовать одно или более из следующих преимуществ. Генерирование глубинных ссылок облегчает разработчикам приложений возможность участия в индексировании нативных приложений, что, в свою очередь, помогает управлять использованием и повторным задействованием их приложений. Система также снижает барьер для участия.Specific embodiments of the invention set forth in this description, can be implemented in such a way as to realize one or more of the following advantages. Deep link generation makes it easier for app developers to participate in the indexing of native apps, which in turn helps manage the usage and re-engagement of their apps. The system also lowers the barrier to participation.

Детали одного или более вариантов осуществления изобретения, излагаемого в данном описании, объясняются в прилагаемых чертежах и приведенном ниже описании. Другие признаки, аспекты и преимущества изобретения станут понятными из описания, чертежей и формулы изобретения.Details of one or more embodiments of the invention set forth in this specification are explained in the accompanying drawings and the description below. Other features, aspects and advantages of the invention will become apparent from the description, drawings and claims.

Краткое описание чертежейBrief description of the drawings

Фиг. 1 представляет блок-схему примера среды, в которой генерируются глубинные ссылки для нативных приложений.Fig. 1 is a block diagram of an example environment in which deep links are generated for native applications.

Фиг. 2 представляет блок-схему системы обхода и индексирования.Fig. 2 is a block diagram of a traversal and indexing system.

Фиг. 3 представляет функциональную схему примера процесса для генерирования глубинных ссылок для нативных приложений.Fig. 3 is a flow diagram of an example process for generating deep links for native applications.

Фиг. 4 представляет функциональную схему еще одного примера процесса для генерирования глубинных ссылок для нативных приложений.Fig. 4 is a flow diagram of another example process for generating deep links for native applications.

Одинаковые ссылочные позиции и обозначения на различных чертежах означают одинаковые элементы.Like reference numerals and designations throughout the various drawings refer to like elements.

Подробное описаниеDetailed description

Система предоставляет результаты поиска нативных приложений. В данном контексте нативное приложение действует независимо от программы-браузера пользовательского устройства. Нативное приложение представляет собой приложение, специально предназначенное для выполнения на конкретной операционной системе пользовательского устройства и машинных микропрограммных средствах, а не в браузере. Нативные приложения при этом отличаются от браузеров, браузерных приложений и визуализируемых браузерами ресурсов. Последним требуются все или, по меньшей мере, некоторые элементы или команды, загружаемые с веб-сервера каждый раз, когда они инстанцируются или визуализируются. Кроме того, браузерные приложения и визуализируемые браузерами ресурсы могут обрабатываться всеми поддерживающими сеть мобильными устройствами в браузере и, следовательно, не являются специфическими для операционной системы, поскольку являются нативными приложениями. Кроме того, в данном контексте результат поиска нативного приложения представляет собой результат поиска, который соответствует конкретному нативному приложению и который при выборе вызывает конкретное нативное приложение.The system provides search results for native applications. In this context, the native application operates independently of the browser program of the user device. A native application is an application specifically designed to run on a specific user device operating system and native firmware, rather than in a browser. Native apps, however, are distinct from browsers, browser-based apps, and browser-rendered resources. The latter requires all or at least some of the elements or commands to be downloaded from the web server each time they are instantiated or rendered. In addition, browser-based applications and browser-rendered resources can be handled by all web-enabled mobile devices in a browser and are therefore not operating system-specific as they are native applications. Also, in this context, a native application search result is a search result that matches a particular native application and that, when selected, invokes the particular native application.

Примеры нативного приложения включают в себя приложения для создания текстовых документов, редактирования фотографий, проигрывания музыки, взаимодействия с системой дистанционного банковского обслуживания и так далее. Мобильные нативные приложения предназначены для работы на мобильных устройствах, таких как смартфоны, планшеты и так далее. Нативные веб-приложения предназначены для исполнения в рамках (и визуально, и функционально) программных средств веб-браузера. На очень высоком уровне нативные приложения, или попросту «приложения», предоставляют пользователю доступ к контенту и/или функциональным возможностям.Examples of a native application include applications for creating text documents, editing photos, playing music, interacting with a remote banking system, and so on. Mobile native apps are designed to run on mobile devices such as smartphones, tablets, and so on. Native web applications are designed to run within (both visually and functionally) web browser software. At a very high level, native applications, or simply "apps", provide the user with access to content and/or functionality.

Поисковые системы Интернета предоставляют возможность поиска индексированной подборки веб-страниц, которые существуют в Интернете. Типичная поисковая система предоставляет в ответ на запрос список результатов, соответствующих запросу, часто с гиперссылками, позволяющими пользователю быстро перемещаться к интересующему результату. Пользователь может получать указываемый ссылкой результат, благодаря чему ему предоставляется веб-страница (страницы), содержащая контент о знаменитости, продукте, бизнесе и т.д. Ссылки могут быть на «домашнюю страницу» сайта (например, на стартовую страницу с поиском для сайта, собирающего информацию о приготовлении пищи, такую как рецепты) или на «страницу с контентом», доступ к которой пользователь может осуществлять при перемещении с домашней страницы сайта (например, конкретный рецепт на сайте с информацией о приготовлении пищи). Ссылки на страницы с контентом, в отличие от домашних страниц, называются «глубинными ссылками» (а процесс обхода, индексирования и обслуживания указанных страниц с контентом аналогичным образом называется «созданием глубинных ссылок»).Internet search engines provide the ability to search an indexed collection of web pages that exist on the Internet. A typical search engine provides, in response to a query, a list of results matching the query, often with hyperlinks to allow the user to quickly navigate to the result of interest. The user may receive a referenced result, thereby providing the web page(s) containing content about the celebrity, product, business, etc. Links can be to the "home page" of the site (for example, to the search start page for a site that collects cooking information such as recipes) or to a "content page" that a user can access when navigating away from the site's home page. (e.g. a specific recipe on a site with cooking information). Links to content pages, as opposed to home pages, are referred to as "deep linking" (and the process of crawling, indexing, and serving said content pages in a similar manner is referred to as "deep linking").

Возможность перемещения посредством навигации на страницу, а также доступность контента и функциональные возможности, которые предоставляет страница, обусловлены отчасти характером публикуемой страницы. Например, некоторые страницы могут содержать динамический контент (например, асинхронный JavaScript и XML (AJAX), Adobe Flash и т.д.), который сложно или невозможно обходить и получать. Следовательно, эти страницы могут оказаться недоступными в ответ на поиск, пользователь может не суметь сохранить страницу в виде закладки или подобном виде, а перемещение по странице с помощью элементов управления браузера (например, вперед или назад по истории) может не действовать в соответствии с назначением.The ability to navigate by navigating to a page, and the accessibility of the content and functionality that a page provides, is due in part to the nature of the page being published. For example, some pages may contain dynamic content (such as asynchronous JavaScript and XML (AJAX), Adobe Flash, etc.) that is difficult or impossible to crawl and retrieve. Consequently, these pages may not be available in response to a search, the user may not be able to save the page as a bookmark or the like, and navigating the page using browser controls (for example, forward or backward through history) may not function as intended. .

Некоторые нативные приложения не имеют некоторых из основных свойств веб-сайтов касательно создания ссылок. Во-первых, когда поисковая система обходит нативное приложение, она не может просто проверить существующую ссылку на страницу в исходящих ссылках страницы, как она может путем просмотра HTML веб-страницы. Во-вторых, многие нативные приложения не ссылаются друг на друга так, как веб-сайты делают по своей природе, поэтому поисковые системы не могут опираться на обход сети для обнаружения глубинных ссылок приложения, как они могут для обнаружения веб-ссылок. Это представляет сложность для поисковых систем нативных приложений в том отношении, что намного труднее обнаруживать ссылки, которые поддерживают нативные приложения. Если поисковая система нативного приложения не может обнаруживать ссылки, то она не может индексировать их, получать их и предоставлять их пользователям.Some native apps don't have some of the basic link building properties of websites. First, when a search engine crawls a native application, it cannot simply check for an existing link to a page in the page's outbound links, as it can by viewing the HTML of a web page. Second, many native apps don't link to each other the way websites naturally do, so search engines can't rely on web traversal to discover app deep links as they can to discover web links. This presents a challenge to native app search engines in that it is much more difficult to discover links that support native apps. If the native app's search engine can't detect links, then it can't index them, get them, and serve them to users.

Кроме того, некоторые нативные приложения имеют соответствующие веб-страницы для URI, доступ к которым осуществляют нативные приложения, а другие не имеют. Из тех, которые не имеют соответствующих веб-приложений, некоторые нативные приложения сохраняют дубликат или соответствующий контент и функциональные возможности между нативным приложением и веб-платформами, а другие нативные приложения имеют небольшую или большую степень различий между мобильными платформами и веб-платформами.In addition, some native apps have corresponding web pages for the URIs accessed by native apps, while others do not. Of those that do not have corresponding web apps, some native apps retain duplicate or matching content and functionality between native app and web platforms, and other native apps have little or more difference between mobile platforms and web platforms.

Некоторые системы для индексирования нативных приложений опираются на то, что разработчики публикуют свои глубинные ссылки нативных приложений либо в виде разметки HTML на своих веб-страницах, либо на своих существующих картах веб-сайта. То есть, поставщик нативного приложения должен иметь и веб-платформу, и, по меньшей мере, карту для страниц нативного приложения на веб-сайте. Некоторые службы, обеспечивающие создание глубинных ссылок нативных приложений, также опираются на разработчиков, публикующих свои глубинные ссылки нативных приложений на своих веб-страницах.Some systems for indexing native apps rely on developers to publish their native app deep links either as HTML markup on their web pages or on their existing website maps. That is, the native app provider must have both a web platform and at least a map for the native app pages on the website. Some services that provide native app deep linking also rely on developers to publish their native app deep links on their web pages.

В соответствии с настоящим изобретением, глубинные ссылки нативных приложений могут автоматически генерироваться в целях индексирования. Имеется множество способов для генерирования глубинных ссылок нативных приложений в зависимости от характера глубинных ссылок нативных приложений. Например, некоторые нативные приложения поддерживают глубинные ссылки, имеющие URI, которые соответствуют основанным на веб-технологии унифицированным указателям ресурса (URL), таким как http://www.example.com и т.д. Другие нативные приложения используют специальный URI, который не обязательно соответствует конкретному протоколу НТТР.In accordance with the present invention, native application deep links can be automatically generated for indexing purposes. There are many ways to generate native application deep links depending on the nature of the native application deep links. For example, some native applications support deep links that have URIs that correspond to web-based Uniform Resource Locators (URLs) such as http://www.example.com and so on. Other native apps use a special URI that doesn't necessarily match the specific HTTP protocol.

Для нативных приложений, которые поддерживают создание глубинных ссылок на основе основанных на веб-технологии URL, процесс генерирования глубинных ссылок нативных приложений включает в себя следующее:For native apps that support deep linking based on web-based URLs, the process of generating native app deep linking includes the following:

1) Разработчики нативных приложений проверяют свой официальный веб-сайт с централизованной службой индексирования. Затем данная служба индексирует нативное приложение на основе ранее индексированных сетевых URL, обнаруживаемых посредством обхода сети.1) Native app developers check their official website with a centralized indexing service. The service then indexes the native app based on previously indexed network URLs discovered through network crawling.

2) Система обхода и индексирования данных нативных приложений проверяет информацию о регистрации, такую как файл манифеста, нативного приложения, чтобы определить, поддерживает ли оно соответствующую URL-структуру веб-сайта.2) The native app data crawling and indexing system checks the registration information, such as the manifest file, of the native app to determine if it supports the corresponding website URL structure.

3) Если наивное приложение все-таки поддерживает соответствующую URL-структуру, система обхода и индексирования данных нативных приложений может определять и приоритизировать ссылки на основе таких критериев, как популярность. Система обхода и индексирования данных нативных приложений будет также учитывать любой неиндексированный тег в информации о регистрации, который задает, какой путь URL не должен индексироваться.3) If the naive app does support an appropriate URL structure, the native app's data crawling and indexing system can determine and prioritize links based on criteria such as popularity. The native app data crawling and indexing system will also take into account any non-indexed tag in the registration information that specifies which URL path should not be indexed.

В соответствии со вторым аспектом настоящего изобретения, для нативных приложений, которые поддерживают специальное создание глубинных ссылок, система реализует способ, включающий в себя следующие этапы:In accordance with the second aspect of the present invention, for native applications that support ad hoc deep linking, the system implements a method including the following steps:

1) Разработчики нативных приложений реализуют прикладной программный интерфейс (API) индексирования нативных приложений, который позволяет задавать адрес URI конкретного документа нативного приложения, его соответствующий URL веб-узла (при его наличии) и все исходящие глубинные ссылки приложений и их соответствующие URL веб-узла (при их наличии), которые находятся в документе.1) Native application developers implement a native application indexing application programming interface (API) that allows you to specify the URI of a specific native application document, its corresponding web site URL (if any), and all outgoing application deep links and their corresponding web site URLs (if any) that are in the document.

2) Как только нативное приложение обновлено в цифровом источнике распространения, система обхода и индексирования данных нативных приложений проверяет нативное приложение, чтобы определить, использует ли оно API индексирования нативных приложений. Если да, то система обхода и индексирования данных нативных приложений запускает нативное приложение и ищет ссылку на «домашнюю страницу» нативных приложений. Система обхода и индексирования данных нативных приложений также ищет любые исходящие URI-ссылки на странице приложения. Если имеются исходящие URI, то система обхода и индексирования данных нативных приложений будет индексировать каждую из этих ссылок (или только связанных ссылок) и будет также, в свою очередь, обрабатывать следующие страницы нативных приложений для исходящих URI. Таким образом, система обхода и индексирования данных нативных приложений способна автоматически обнаруживать ссылки. При этом на каждом этапе система обхода и индексирования данных нативных приложений может проверять текущую ссылку страницы приложения на соответствие ссылке на источник в качестве способа проверки подлинности.2) Once the native app is updated in the digital distribution source, the native app data crawl and indexing system checks the native app to determine if it is using the native app indexing API. If yes, then the native app data crawling and indexing system launches the native app and looks for a link to the native app's "home page". The native app data crawling and indexing system also looks for any outgoing URI links on the app page. If there are outgoing URIs, then the native app data crawling and indexing system will index each of those links (or just related links) and will also in turn process the next native app pages for the outgoing URIs. In this way, the system for crawling and indexing native application data is able to automatically detect links. At the same time, at each stage, the system of crawling and indexing data of native applications can check the current link of the application page against the link to the source as a method of authentication.

3) Система обхода и индексирования данных нативных приложений может использоваться для сохранения списка тех ссылок, которые в действительности просматриваются пользователем в нативном приложении, и предоставлять этот список в систему обхода и индексирования данных нативных приложений. Система обхода и индексирования данных нативных приложений использует этот список в качестве дополнительного источника ссылок помимо автоматического обнаружения, описанного на предыдущем этапе. Кроме того, списки ссылок, которые в действительности просматриваются, могут использоваться для определения популярности ссылки, а затем система обхода и индексирования данных нативных приложений может приоритизировать обход на основе популярности ссылок.3) The native application data crawling and indexing system can be used to maintain a list of those links actually viewed by the user in the native application and provide this list to the native application data crawling and indexing system. The crawling and indexing system for native app data uses this list as an additional link source in addition to the automatic discovery described in the previous step. In addition, the lists of links that are actually viewed can be used to determine link popularity, and then the crawling and indexing system of native apps can prioritize crawling based on link popularity.

В связи с этим, системы и способы, излагаемые в настоящем документе, могут обеспечивать автоматическое индексирование глубинных ссылок нативных приложений. Данные системы и способы могут дополнительно определять и использовать приоритизацию ссылок по фактической активности пользователя. Приоритизация позволяет, помимо прочего, оптимизировать использование ресурсов поиска. Наконец, излагаются системы и способы, которые могут согласовывать приложения с соответствующими веб-сайтами и без них, снимая ограничения существующих методов, которые требуют от приложений публиковать ссылки посредством соответствующих веб-страниц.In this regard, the systems and methods described herein can provide automatic indexing of native application deep links. These systems and methods may further define and use link prioritization based on actual user activity. Prioritization allows, among other things, to optimize the use of search resources. Finally, systems and methods are outlined that can match applications with and without their respective websites, overcoming the limitations of existing methods that require applications to publish links through their respective web pages.

Фиг. 1 представляет собой блок-схему примера среды 100, в которой генерируются глубинные ссылки для нативных приложений. Вычислительная сеть 102, такая как Интернет, соединяет веб-сайты 104 издателя ресурса, издателей 106 приложений, пользовательские устройства 108 и поисковую систему 120.Fig. 1 is a block diagram of an example environment 100 in which deep links are generated for native applications. A computer network 102, such as the Internet, connects resource publisher websites 104, application publishers 106, user devices 108, and search engine 120.

Веб-сайт 104 издателя ресурса содержит один или более веб-ресурсов 105, связанных с доменом и размещаемых одним или более серверами в одном или более местоположений. Как правило, веб-сайт издателя ресурса представляет собой набор веб-страниц, форматированных на языке разметки гипертекста (HTML), которые могут содержать текст, изображения, мультимедийный контент и элементы программирования. Каждый веб-сайт 104 поддерживается издателем контента, являющимся сущностью, которая управляет, администрирует и/или владеет веб-сайтом 104.The resource publisher website 104 contains one or more web resources 105 associated with a domain and hosted by one or more servers at one or more locations. Typically, a resource publisher's website is a set of hypertext markup language (HTML) formatted web pages that may contain text, images, multimedia content, and programming elements. Each website 104 is maintained by a content publisher, which is the entity that manages, administers and/or owns the website 104.

Ресурс веб-страницы представляет собой любые данные, которые могут предоставляться веб-сайтом 104 издателя по сети 102 и которые имеют адрес ресурса, например, унифицированный указатель ресурса (URL). Веб-ресурсы могут представлять собой, например, HTML-страницы, файлы изображений, видеофайлы, аудиофайлы и источники новостных каналов. Ресурсы могут включать в себя внедренную информацию, например, метаинформацию и гиперссылки, и/или внедренные команды, например, клиентские сценарии.A web page resource is any data that can be provided by a publisher website 104 over network 102 and that has a resource address, such as a Uniform Resource Locator (URL). Web resources can be, for example, HTML pages, image files, video files, audio files, and news feed sources. Resources may include embedded information, such as meta information and hyperlinks, and/or embedded commands, such as client scripts.

Веб-сайт 106 издателя приложения может также содержать один или более веб-ресурсов 105 и также предоставляет нативные приложения 107. Нативное приложение 107 представляет собой приложение, специально предназначенное для выполнения на конкретной операционной системе пользовательского устройства и машинных микропрограммных средствах. Нативные приложения 107 могут включать в себя множество версий, предназначенных для исполнения на различных платформах. Например, нативные приложения, соответствующие веб-сайту базы данных кинофильмов, могут содержать первое нативное приложение, которое исполняется на первом типе смартфона, второе нативное приложение, которое исполняется на втором типе смартфона, и третье нативное приложение, которое исполняется на первом типе планшета, и т.д.The application publisher website 106 may also contain one or more web resources 105 and also provide native applications 107. A native application 107 is an application specifically designed to run on a particular user device operating system and native firmware. Native applications 107 may include multiple versions designed to run on different platforms. For example, the native applications corresponding to the movie database website may include a first native application that runs on a first type of smartphone, a second native application that runs on a second type of smartphone, and a third native application that runs on a first type of tablet, and etc.

Страница приложения представляет собой конкретную среду отображения в нативном приложении, в которой отображается контент, такой как текст, изображения и т.п. Страница приложения является зависящей от конкретного нативного приложения, а нативное приложение является специализированным для конкретной операционной системы пользовательского устройства 108. Страница приложения отличается от визуализируемого веб-ресурса тем, что страница приложения генерируется в нативном приложении и является специализированной для него, в то время как веб-ресурс может визуализироваться в любом браузере, для которого ресурс веб-страницы является совместимым, и является независимым от операционной системы пользовательского устройства.An application page is a specific display environment in a native application that displays content such as text, images, and the like. The application page is dependent on a particular native application, and the native application is specialized for a particular operating system of the user device 108. The application page differs from a rendered web resource in that the application page is generated in and is specialized for the native application, while - the resource can be rendered in any browser for which the web page resource is compatible and is independent of the operating system of the user device.

Некоторые издатели 104 и 106 могут быть одинаковыми и предоставлять одинаковый контент и в веб-ресурсах, и в нативных приложениях. Администрирование передачи такого контента регулируется серверным приложением 130 издателя. Серверное приложение 130 издателя содержит хранилище 132 издателя, которое хранит контент, предоставляемый издателем, веб-сервер 134, который предоставляет контент из хранилища издателя в виде веб-ресурсов (например, веб-страниц), и сервер 136 нативных приложений, который регулирует запросы от нативного приложения. Веб-страницы соответствуют страницам нативных приложений, и, следовательно, для многих URI нативных приложений имеются соответствующие URI веб-страниц. Некоторые нативные приложения могут также попросту использовать те же URL, что и веб-страницы, которым они соответствуют. Контент хранилища 132 издателя доступно для хранения и на веб-ресурсах, и на соответствующих страницах веб-приложений. В связи с этим, такой контент называется «синхронизированным» контентом.Some publishers 104 and 106 may be the same and provide the same content in both web resources and native applications. Administration of the transmission of such content is governed by the server application 130 of the publisher. The publisher server application 130 includes a publisher store 132 that stores content provided by the publisher, a web server 134 that provides content from the publisher store in the form of web resources (e.g., web pages), and a native application server 136 that throttles requests from native application. Web pages correspond to native application pages, and therefore many native application URIs have corresponding web page URIs. Some native applications may also simply use the same URLs as the web pages they correspond to. The content of the publisher store 132 is available for storage both on the web resources and on the corresponding web application pages. As such, such content is referred to as "synchronized" content.

Примерами таких издателей являются издатели новостей, которые могут иметь «мобильное новостное приложение» для чтения новостного контента на мобильном устройстве. Новостной контент (например, текст новостного материала), предоставляемый в веб-ресурсах 105, является таким же контентом, как и предоставляемый соответствующими страницами приложения нативного приложения 107.Examples of such publishers are news publishers who may have a "mobile news app" for reading news content on a mobile device. The news content (eg, text of a news article) provided in the web resources 105 is the same content as provided by the corresponding application pages of the native application 107.

Пользовательское устройство 108 представляет собой электронное устройство, которое способно запрашивать и принимать ресурсы 105 веб-страниц и нативные приложения 107 по сети 102. Примеры пользовательских устройств 108 включают в себя персональные компьютеры, устройства мобильной связи и планшетные компьютеры.User device 108 is an electronic device that is capable of requesting and receiving web page resources 105 and native applications 107 over network 102. Examples of user devices 108 include personal computers, mobile communication devices, and tablet computers.

Веб-индекс 116 представляет собой индекс контента издателя, который, например, создан по результатам обхода веб-сайтов 104 издателя, путем приема новостных каналов данных с веб-сайтов 104 издателя или иными подходящими способами сбора и индексирования данных.The web index 116 is an index of publisher content, which is, for example, generated by crawling publisher websites 104, by ingesting news feeds from publisher websites 104, or by other suitable means of collecting and indexing data.

Индекс 114 наивных приложений хранит данные, относящиеся к нативным приложениям 107. Индекс 114 приложений хранит, например, список нативных приложений, предоставляемых издателями 104, и идентификаторов, которые идентифицируют нативные приложения. Кроме того, в некоторых реализациях издатели 104 могут задавать, что некоторые нативные приложения 107 используются для доступа к синхронизированным данным и их отображения, и данная информация может храниться в индексе приложения. Например, издатель новостей может задавать, что приложение для чтения новостей, которое он предоставляет, отображает синхронизированный контент, который отображается на веб-сайте издателя новостей.Naive app index 114 stores data related to native apps 107. App index 114 stores, for example, a list of native apps provided by publishers 104 and identifiers that identify native apps. In addition, in some implementations, publishers 104 may specify that some native applications 107 are used to access and display synchronized data, and this information may be stored in an application index. For example, a news publisher may specify that the news reader application it provides displays synchronized content that is displayed on the news publisher's website.

Пользовательские устройства 108 подают поисковые запросы в поисковую систему 110. В ответ на каждый запрос поисковая система 110 осуществляет доступ к веб-индексу 116 и индексу 114 приложений для идентификации контента, который относится к запросу. Поисковая система 110 может, например, идентифицировать ресурсы и приложения в форме результатов поиска веб-ресурсов и результатов поиска нативных приложений, соответственно, с помощью генератора 116 результатов поиска. После генерирования результаты поиска предоставляются в пользовательское устройство 108, от которого был принят запрос.User devices 108 submit search queries to search engine 110. In response to each query, search engine 110 accesses web index 116 and application index 114 to identify content that pertains to the query. The search engine 110 may, for example, identify resources and applications in the form of web resource search results and native application search results, respectively, using the search result generator 116 . Once generated, the search results are provided to the user device 108 from which the request was received.

Результат поиска веб-ресурсов представляет собой данные, генерируемые поисковой системой 110, которая идентифицирует веб-ресурс на основе контента ресурса, который удовлетворяет конкретному поисковому запросу. Результат поиска веб-ресурсов для ресурса может содержать заголовок веб-страницы, фрагмент текста, извлеченного из ресурса, и унифицированный идентификатор ресурса (URI) для данного ресурса, например, унифицированный указатель ресурса (URL) веб-страницы. При выборе в пользовательском устройстве результат поиска веб-ресурсов инициирует генерирование пользовательским устройством запроса для ресурса, расположенного в URL. Веб-ресурс, который принимается, отображается после этого в приложении-браузере.A web resource search result is data generated by the search engine 110 that identifies a web resource based on the content of the resource that satisfies a particular search query. A web resource search result for a resource may contain the title of the web page, a snippet of text retrieved from the resource, and a Uniform Resource Identifier (URI) for that resource, such as the Uniform Resource Locator (URL) of the web page. When selected on the user device, the web resource search result causes the user device to generate a request for the resource located in the URL. The web resource that is received is then displayed in the browser application.

Результат поиска нативных приложений задает нативное приложение и генерируется в ответ на поиск по индексу 114 приложений и веб-индексу 116, как подробнее описывается ниже. При выборе в пользовательском устройстве результат поиска нативных приложений инициирует запрос нативным приложением, установленным на пользовательском устройстве, синхронизированного контента. Как только нативное приложение принимает запрошенный контент, нативное приложение отображает контент в пользовательском интерфейсе нативного приложения.The native application search result specifies a native application and is generated in response to a search on the application index 114 and the web index 116, as described in more detail below. When selected on the user device, the native app search result causes the native app installed on the user device to request the synchronized content. Once the native app receives the requested content, the native app displays the content in the native app's user interface.

Для генерирования индекса 114 приложений поисковая система использует систему 120 обхода и индексирования приложений. Фиг. 2 представляет собой блок-схему системы 120 обхода и индексирования приложений. Действие системы 120 применительно к нативным приложениям, которые используют URL, описывается со ссылкой на фиг. 3. Изменение действия нативных приложений, которые используют URL, описывается со ссылкой на фиг. 4.To generate the application index 114, the search engine uses an application crawling and indexing system 120 . Fig. 2 is a block diagram of an application crawling and indexing system 120. The operation of system 120 with respect to native applications that use a URL is described with reference to FIG. 3. Changing the behavior of native applications that use a URL is described with reference to FIG. four.

Фиг. 3 представляет собой функциональную схему примера процесса 300 для генерирования глубинных ссылок для нативных приложений. Процесс 300 реализуется в устройстве обработки данных одного или более компьютеров.Fig. 3 is a flow diagram of an example process 300 for generating deep links for native applications. Process 300 is implemented in a data processor of one or more computers.

Процесс 300 принимает в устройстве 204 сбора данных данные 202 привязки к издателям для нативных приложений, которые задают, для каждого нативного приложения, связанного издателя для нативного приложения (302). Например, издатели предоставляют данные о том, что конкретное нативное приложение связано с издателем, такие как связь идентификатора нативного приложения с идентификатором сайта издателя. Одним из примеров идентификатора сайта является доменное имя, но могут использоваться и другие типы данных для задания связи между издателем и нативным приложением.Process 300 receives, at data collector 204, native application publisher binding data 202 that specifies, for each native application, an associated publisher for the native application (302). For example, publishers provide data that a particular native app is associated with a publisher, such as the association of a native app ID with a publisher site ID. One example of a site identifier is a domain name, but other types of data can be used to define the relationship between the publisher and the native application.

Процесс 300 для нативного приложения на основе данных привязки к издателям определяет, связано ли нативное приложение с издателем, который предоставляет контент, адресуемый посредством URI, определенных для нативного приложения (304). Например, обходчик 206 пакета приложений извлекает из файла 109 манифеста приложения (или иных данных, задающих подобные спецификации приложения) схему, хост и путь формата URI для нативного приложения. Например, в случае манифеста для Android из секции интент-фильтра извлекается следующее:The process 300 for the native application, based on the publisher binding data, determines whether the native application is associated with a publisher that provides content addressed by the URIs defined for the native application (304). For example, the application package crawler 206 retrieves from the application manifest file 109 (or other data specifying similar application specifications) the schema, host, and URI format path for the native application. For example, in the case of an Android manifest, the following is extracted from the intent filter section:

<data android:scheme="http"<data android:scheme="http"

android:host="example.com"android:host="example.com"

android:pathPrefix="/gizmos" />android:pathPrefix="/gizmos" />

Здесь схема (‘scheme’) - "http", хост (‘host’) - "example.com", а путь (‘pathPrefix’, ‘префикс пути’) - "/gizmos". Данный процесс определяет шаблон URI для нативного приложения и то, определяет ли шаблон URI связанного издателя для нативного приложения, который совпадает со связанным издателем для нативного приложения, заданным данными 202 привязки к издателям. Чтобы проиллюстрировать, для приведенного выше примера данных, если данные 202 о связи задают схему "http" для нативного приложения и хост "example.com", а манифест 109 нативного приложения 107 задает ту же схему и хост, то нативное приложение связано с хостом.Here the scheme ('scheme') is "http", the host ('host') is "example.com", and the path ('pathPrefix', 'path prefix') is "/gizmos". This process determines the URI pattern for the native application and whether the URI pattern of the associated native application publisher matches the associated native application publisher specified by the publisher binding data 202 . To illustrate, for the example data above, if the association data 202 specifies the "http" scheme for the native application and the host "example.com" and the native application manifest 109 107 specifies the same scheme and host, then the native application is associated with the host.

Если результат определения является положительным, генератор 208 схемы URI сохраняет данные для нативного приложения в таблице 210 схемы URI, а затем процесс 300 выбирает URI-идентификаторы на основе шаблона URI для нативного приложения (306). Например, в некоторых реализациях селектор 212 URI получает шаблон URI из таблицы 210 схемы URI. Селектор 212 после этого отыскивает в веб-индексе 116 URL, которые содержат шаблон URI. В приведенном выше примере подходящие URL, которые содержат http://example.com/gizmos/, будут обрабатываться селектором 212. Селектор 212 может отбрасывать URL, которые могут содержать указание на то, что они не должны анализироваться при обходе; которые недавно отыскивались и индексировались для нативного приложения, которые указаны как удаленные или неактивные; или URL, которые соответствуют каким-либо иным критериям исключения.If the result of the determination is positive, the URI scheme generator 208 stores the data for the native application in the URI scheme table 210, and then the process 300 selects URIs based on the native application URI template (306). For example, in some implementations, the URI selector 212 receives the URI pattern from the URI schema table 210 . The selector 212 then searches the web index 116 for URLs that contain the URI pattern. In the example above, eligible URLs that contain http://example.com/gizmos/ will be processed by selector 212. Selector 212 may discard URLs that may contain an indication that they should not be parsed when crawled; that have been recently searched and indexed for the native app and that are listed as deleted or inactive; or URLs that meet some other exclusion criteria.

Остальные выбираемые URL предоставляются процессору 214 URI, который собирает данные из контента, доступного с помощью URL. Процесс 300 после этого индексирует контент, доступный с помощью URL, для нативного приложения в индексе, который допускает возможность поиска поисковой системой (308). Сбор и индексирование данных может осуществляться любым подходящим процессом. В одном из примеров реализации система 120 создает экземпляр (инстанцирует) виртуальной машины, эмулирующей операционную систему для пользовательского устройства. Виртуальная машина может в некоторых реализациях являться модифицированной версией операционной системы и содержит средства извлечения (экстракторы), которые извлекают данные из страниц приложений, как подробнее описывается ниже.The remaining selectable URLs are provided to the URI processor 214, which collects data from the content accessed by the URL. The process 300 then indexes the URL-accessible content for the native application in an index that is searchable by a search engine (308). Data collection and indexing may be carried out by any suitable process. In one implementation example, system 120 instantiates (instantizes) a virtual machine that emulates an operating system for a user device. The virtual machine may, in some implementations, be a modified version of the operating system and contain extraction tools (extractors) that extract data from application pages, as described in more detail below.

Система 120 также инстанцирует в виртуальной машине нативное приложение 107, которое генерирует страницы приложений для отображения на пользовательском устройстве в нативном приложении 107, а затем осуществляет доступ в виртуальной машине к страницам приложения нативного приложения, генерируемым в ответ на обработку выбранных URL. Для каждой страницы приложения система 110 генерирует данные о странице приложения, описывающие контент страницы приложения. Контент страницы может содержать, например, текст, отображаемый на странице приложения; изображения, отображаемые на странице приложения; ссылки на странице приложения на другие страницы приложения или другие веб-ресурсы; и прочий контент, который подходит для индексирования.The system 120 also instantiates a native application 107 in the virtual machine that generates application pages for display on the user device in the native application 107 and then accesses the native application application pages generated in response to processing the selected URLs in the virtual machine. For each application page, system 110 generates application page data describing the content of the application page. Page content may include, for example, text displayed on the application page; images displayed on the application page; links on the application page to other application pages or other web resources; and other content that is suitable for indexing.

В некоторых реализация виртуальная машина содержит экстракторы, которые извлекают данные контента для индексирования. Извлеченные данные контента представляют собой, например, данные, которые предоставляются в процесс визуализации нативного приложения. Процесс визуализации визуализирует контент на основе данных для отображения на пользовательском устройстве. Использование экстракторов предусматривает более точную идентификацию различного контента страницы приложения. Например, текстовый экстрактор извлекает текстовые данные, предоставляемые в процесс визуализации нативного приложения. Текстовые данные задают текст, который должен визуализироваться в странице приложения. Таким образом, вместо того, чтобы обрабатывать изображение страницы приложения или обрабатывать двоичные данные отображения, виртуальная машина принимает фактический текст, который должен визуализироваться в среде нативного приложения 107.In some implementations, the virtual machine contains extractors that extract content data for indexing. The extracted content data is, for example, data that is provided to the rendering process of the native application. The rendering process renders content based on data for display on the user device. The use of extractors provides a more accurate identification of the various content of the application page. For example, a text extractor extracts text data that is provided to the rendering process of a native application. The text data specifies the text that should be rendered on the application page. Thus, instead of processing the application page image or processing binary display data, the virtual machine receives the actual text to be rendered in the native application environment 107.

Аналогичным образом могут использоваться другие экстракторы, такие как экстрактор изображений и экстрактор списков. Экстрактор изображений предоставляет данные об изображении, которое должно визуализироваться в среде нативного приложения 107, а экстрактор списков предоставляет данные о списке прокручиваемых элементов, который визуализируется в среде нативного приложения 107. Могут также извлекаться другие данные, такие как данные о ссылках страницы приложения, описывающие ссылки на странице приложения, которые ссылаются на другую страницу приложения; данные о ссылках веб-страницы, описывающие ссылки на странице приложения, которые ссылаются на веб-ресурс, упоминаемый унифицированным указателем ресурса, и которые при выборе инстанцируют приложение-браузер, который визуализирует ресурс в среде браузера отдельно от нативного приложения; и т.д.Other extractors, such as an image extractor and a list extractor, can be used similarly. The image extractor provides data about the image to be rendered in the native application environment 107, and the list extractor provides data about the list of scrollable items to be rendered in the native application environment 107. Other data may also be extracted, such as application page link data describing the links. on the application page that link to another application page; web page link data describing links on an application page that link to a web resource referred to by the uniform resource locator and that, when selected, instantiates a browser application that renders the resource in a browser environment separate from the native application; etc.

Описанные выше экстракторы и другие подходящие экстракторы данных могут быть реализованы с помощью подходящих обработчиков данных для конкретной операционной системы. Например, для операционной системы AndroidTM экстракторы могут быть реализованы с помощью объектов TextView, объектов ImageView и объектов ListView, соответственно. Виртуальная машина обрабатывает объекты для извлечения соответствующих данных, например, путем введения команд, которые инициируют сохранение виртуальной машиной для индексирования соответствующих данных, которые предоставляются для визуализации.The extractors described above and other suitable data extractors can be implemented using suitable data handlers for a particular operating system. For example, for the Android TM operating system, extractors can be implemented using TextView objects, ImageView objects, and ListView objects, respectively. The virtual machine processes the objects to retrieve the relevant data, for example by issuing commands that cause the virtual machine to store to index the relevant data that is provided for rendering.

Возвращаясь к 304, если результат определения является отрицательным, то процесс 300 не обрабатывает URI-идентификаторы издателя (310). Это упрощает индексирование контента издателя только для нативных приложений, которые связаны с издателем (например, публикуются издателем или утверждаются издателем для отображения контента издателя).Returning to 304, if the result of the determination is negative, then process 300 does not process publisher URIs (310). This makes it easier to index publisher content only for native apps that are associated with a publisher (for example, published by a publisher or approved by a publisher to display publisher content).

Для нативных приложений, поддерживающих конфигурируемое создание глубинных ссылок, которое не обязательно соответствует веб-сайту, для генерирования глубинных ссылок используется другой процесс. Фиг. 4 представляет функциональную схему еще одного примера процесса для генерирования глубинных ссылок для нативных приложений. Процесс 400 реализуется в устройстве обработке данных одного или более компьютеров.For native apps that support configurable deep linking that doesn't necessarily match the website, a different process is used to generate deep links. Fig. 4 is a flow diagram of another example process for generating deep links for native applications. Process 400 is implemented in a data processor of one or more computers.

Процесс 400 определяет шаблон URI для нативного приложения (402). Например, может осуществляться доступ к манифесту 109 приложения для определения схемы URI. Схема URI может использоваться для задания URI-ресурса нативного приложения «верхнего уровня», либо может использоваться для выбора URI, которые уже индексированы для нативного приложения.Process 400 determines the URI template for the native application (402). For example, the application manifest 109 may be accessed to determine the URI scheme. The URI scheme can be used to specify a "top-level" native application resource URI, or can be used to select URIs that are already indexed for the native application.

Процесс 400 инстанцирует нативное приложение и выбирает первый URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения (404). Например, инстанцируется виртуальная машина, и на виртуальной машине инстанцируется также нативное приложение. URI предоставляется в нативное приложение, и визуализируется страница приложения.Process 400 instantiates a native application and selects a first URI based on the URI pattern to generate the application page in the native application display environment (404). For example, a virtual machine is instantiated, and a native application is also instantiated on the virtual machine. The URI is provided to the native app and the app page is rendered.

Процесс 400 начинает итеративный процесс обнаружения (406). Данный процесс будет продолжаться до тех пор, пока не будет обработан полный набор URI.Process 400 starts an iterative discovery process (406). This process will continue until the full set of URIs has been processed.

Процесс 400 определяет по странице приложения исходящие URI, в том числе, на первой странице приложения (408). Например, API нативного приложения определяет по данным страницы приложения URI, которые ссылаются на другие URI нативного приложения. Такое определение может выполняться, например, путем обработки текста, извлеченного из страницы приложения, для согласований с шаблоном URI, генерируемой по манифесту 109; либо на основе API, выбирающего текст разметки, который задает исходящие URI.Process 400 determines outgoing URIs from the application page, including those on the first page of the application (408). For example, the native app API determines URIs from the app page data that refer to other native app URIs. Such determination may be performed, for example, by processing text retrieved from the application page to match a URI pattern generated by manifest 109; or based on an API that selects markup text that specifies outgoing URIs.

Процесс 400 выбирает один или более исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения (410). В некоторых реализациях выбираются все исходящие URI. В некоторых реализациях выбираются только исходящие URI, согласующиеся с шаблоном URI нативного приложения.Process 400 selects one or more outgoing URIs to generate one or more next application pages in the native application display environment (410). In some implementations, all outgoing URIs are selected. In some implementations, only outgoing URIs that match the native application's URI pattern are selected.

Процесс 400 индексирует данные страницы приложения для каждой из указанных одной или более следующих страниц приложения в индексе (412). Как описано выше, система 110 может использовать виртуальную машину или какую-либо иную конструкцию для извлечения данных страницы приложения для индексирования.Process 400 indexes application page data for each of the specified one or more next application pages in the index (412). As described above, system 110 may use a virtual machine or some other construct to retrieve application page data for indexing.

Процесс 400 определяет, завершился ли итеративный процесс обнаружения (414). Если итеративный процесс обнаружения завершился, то процесс 400 завершает индексирование приложения для нативного приложения (416). В противном случае, процесс 400 возвращается к этапу 406 и начинает еще одну итерацию.Process 400 determines if the iterative discovery process has completed (414). If the iterative discovery process has completed, then process 400 ends indexing the application for the native application (416). Otherwise, process 400 returns to block 406 and starts another iteration.

В некоторых реализациях, когда реальные пользователи просматривают контент в нативных приложениях, API нативного приложения может использоваться для извещения системы 120 обхода и индексирования приложений о ссылках, которые в действительности просматриваются пользователями. Система 120 обхода и индексирования приложений может использовать эту информацию в качестве дополнительного источника ссылок помимо естественного обнаружения, описанного выше. Кроме того, система 120 обхода и индексирования приложений может также приоритизировать обход на основе популярности ссылок.In some implementations, when real users are viewing content in native applications, the native application API can be used to notify the application crawling and indexing system 120 of the links that are actually being viewed by users. Application crawling and indexing system 120 can use this information as an additional source of links beyond the natural discovery described above. In addition, application crawling and indexing system 120 may also prioritize crawling based on link popularity.

Варианты осуществления изобретения и операций, излагаемых в данном описании, могут быть реализованы в цифровых электронных схемах, либо в компьютерных программных средствах, микропрограммных средствах или аппаратных средствах, включая структуры, излагаемые в данном описании, и их структурные эквиваленты, либо в комбинациях одного или более из них. Варианты осуществления изобретения, излагаемого в данном описании, могут быть реализованы в виде одной или более компьютерных программ, т.е. одного или более модулей компьютерных программных команд, кодированных в запоминающем носителе компьютера для исполнения устройством обработки данных или для управления его работой. В качестве альтернативы или в дополнение, программные команды могут кодироваться в искусственно генерируемом распространяющемся сигнале, например, генерируемом машиной электрическом, оптическом или электромагнитном сигнале, который генерируется для кодирования информации для передачи в подходящее принимающее устройство для исполнения устройством обработки данных. Запоминающий носитель компьютера может представлять собой - либо быть включенным в - машиночитаемое запоминающее устройство, машиночитаемую запоминающую подложку, массив или устройство памяти с произвольной или последовательной выборкой, либо комбинацию одного или более из них. Кроме того, несмотря на то, что запоминающий носитель компьютера не является распространяющимся сигналом, запоминающий носитель компьютера может являться источником или адресатом компьютерных программных команд, кодированных в искусственно генерируемом распространяющемся сигнале. Запоминающий носитель компьютера может также представлять собой - либо быть включенным в - один или более отдельных физических компонентов или сред (например, множество CD, дисков или иные запоминающие устройства).Embodiments of the invention and the operations set forth herein may be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures set forth herein and their structural equivalents, or in combinations of one or more of them. Embodiments of the invention described herein may be implemented as one or more computer programs, i.e. one or more computer program instruction modules encoded in a computer storage medium for execution by or control of the data processing device. Alternatively or in addition, the program instructions may be encoded in an artificially generated propagating signal, such as a machine generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiving device for execution by a data processing device. The computer storage medium may be, or be included in, a computer-readable storage device, a computer-readable storage medium, an array or random access or sequential storage device, or a combination of one or more of these. In addition, although computer storage media is not a propagating signal, computer storage media may be the source or destination of computer program instructions encoded in an artificially generated propagating signal. A computer storage medium may also be - or be included in - one or more separate physical components or media (eg, a plurality of CDs, disks, or other storage devices).

Операции, излагаемые в данном описании, могут быть реализованы в виде операций, выполняемых устройством обработки данных с данными, хранящимися в одном или более машиночитаемых запоминающих устройств или принимаемыми из других источников.The operations described herein may be implemented as operations performed by a data processing device on data stored in one or more computer-readable memories or received from other sources.

Термин «устройство обработки данных» охватывает все виды устройств, приспособлений и машин для обработки данных, включая в качестве примера программируемый процессор, компьютер, систему на кристалле или множество систем на кристалле, либо комбинации вышеуказанного. Данное устройство может содержать, помимо аппаратных средств, код, который создает среду выполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограммные средства процессора, пакет протоколов, систему управления базами данных, операционную систему, межплатформенную среду исполнения, виртуальную машину или комбинацию одного или более из них. Устройство и среда выполнения могут реализовывать различные отличающиеся друг от друга инфраструктуры модели вычислений, такие как веб-службы, распределенные вычисления и инфраструктуры сетевых коллективных вычислений.The term "data processing device" embraces all kinds of data processing devices, appliances and machines, including by way of example a programmable processor, a computer, a system on a chip, or a plurality of systems on a chip, or combinations of the foregoing. This device may contain, in addition to hardware, code that creates an execution environment for the computer program in question, for example, code that makes up processor firmware, a protocol package, a database management system, an operating system, a cross-platform execution environment, a virtual machine, or a combination of one or more of them. The device and the runtime environment may implement various different computing model infrastructures such as web services, distributed computing, and networked computing infrastructures.

Компьютерная программа (иначе называемая программой, программным средством, программным приложением, сценарием или кодом) может быть записана в любой форме языка программирования, включая компилируемые или интерпретируемые языки, декларативные или процедурные языки, и может быть развернута в любой форме, в том числе, в виде автономной программы или в виде модуля, компонента, подпрограммы, объекта или иного блока, подходящего для использования в вычислительной среде. Компьютерная программа может, но не обязательно должна соответствовать файлу в файловой системе. Программа может храниться в части файла, которая содержит другие программы или данные (например, один или более сценариев, хранящихся в документе на языке разметки), в одном файле, предназначенном для рассматриваемой программы, или во множестве согласованных файлов (например, файлов, которые хранят один или более модулей, подпрограмм или частей кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на множестве компьютеров, которые расположены в одном месте или распределены по множеству мест и взаимодействуют с помощью сети передачи данных.A computer program (otherwise referred to as a program, software tool, software application, script, or code) may be written in any form of a programming language, including compiled or interpreted languages, declarative or procedural languages, and may be deployed in any form, including as a stand-alone program, or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in the file system. A program may be stored in a portion of a file that contains other programs or data (for example, one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coherent files (for example, files that store one or more modules, subroutines, or pieces of code). A computer program may be deployed to run on a single computer or on multiple computers that are located in a single location or distributed across multiple locations and interact via a data communication network.

Потоки процессов и логические потоки, описанные в данном описании, могут осуществляться одним или более программируемыми процессорами, выполняющими одну или более компьютерных программ для осуществления действий путем выполнения операций над входными данными и генерирования выходных результатов. Процессоры, подходящие для выполнения компьютерной программы, включают в себя в качестве примера и универсальные, и специализированные микропроцессоры, а также любой один или более процессоров любого вида цифрового компьютера. Как правило, процессор принимает команды и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, либо из обоих. Важнейшими элементами компьютера являются процессор для выполнения действий в соответствии с командами и одно или более запоминающих устройств для хранения команд и данных. Как правило, компьютер также содержит одно или более массовых запоминающих устройств для хранения данных, например, магнитные, магнитооптические диски или оптические диски, либо функционально связан с ними для приема от них данных или передачи на них данных или и того, и другого. Однако компьютер не обязательно должен содержать такие устройства. Кроме того, компьютер может быть встроен в другое устройство, например, мобильный телефон, персональный цифровой помощник (PDA), мобильный аудиоплеер или видеоплеер, игровую приставку, приемник Глобальной Системы Позиционирования (GPS) или переносное запоминающее устройство (например, флэш-накопитель с интерфейсом универсальной последовательной шины (USB). Устройства, подходящие для хранения компьютерных программных команд и данных, включают в себя все формы энергонезависимой памяти, мультимедийных и запоминающих устройств, включая в качестве примера полупроводниковые запоминающие устройства, например, стираемое программируемое постоянное запоминающее устройство (EPROM), электрически-стираемое программируемое постоянное запоминающее устройство (EEPROM) и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски и съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут комплектоваться специализированными логическими схемами или входить в их состав.The process flows and logical flows described herein may be implemented by one or more programmable processors executing one or more computer programs to perform actions by performing operations on input data and generating output results. Processors suitable for executing a computer program include, by way of example, both general purpose and specialized microprocessors, as well as any one or more processors of any kind of digital computer. Typically, the processor receives instructions and data from read-only memory or random access memory, or both. The most important elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Typically, the computer also includes or is operatively coupled to one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, to receive data from or transmit data to them, or both. However, the computer does not have to contain such devices. In addition, the computer may be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (such as a flash drive with a Universal Serial Bus (USB) Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, multimedia, and storage devices, including, by way of example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) and flash memory devices magnetic disks such as internal hard disks and removable disks magneto-optical disks and CD-ROMs and DVD-ROMs The processor and memory may be configured with dedicated logic circuits or included b in their composition.

Для обеспечения взаимодействия с пользователем варианты осуществления изобретения, излагаемого в данном описании, могут быть реализованы на компьютере, имеющем устройство отображения, например, монитор с ЭЛТ (электронно-лучевой трубкой) или ЖКД (жидкокристаллическим дисплеем) для отображения информации пользователю, а также клавиатуру и указательное устройство, например, мышь или трекбол, с помощью которых пользователь может обеспечивать ввод в компьютер. Для обеспечения взаимодействия с пользователем могут также использоваться другие виды устройств; например, обеспечиваемая с пользователем обратная связь может представлять собой любую форму сенсорной обратной связи, например, визуальную обратную связь, акустическую обратную связь или тактильную обратную связь, а ввод от пользователя может приниматься в любой форме, включая акустический, речевой или тактильный ввод. Кроме того, компьютер может взаимодействовать с пользователем путем отправки документов в устройство, которое используется пользователем, и приема от него документов; например, путем отправки веб-страниц в веб-браузер на пользовательском устройстве пользователя в ответ на запросы, принимаемые от веб-браузера.To provide user interaction, embodiments of the invention described herein may be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user, as well as a keyboard and a pointing device, such as a mouse or trackball, with which a user can provide input to a computer. Other kinds of devices may also be used to provide user interaction; for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, acoustic feedback, or tactile feedback, and input from the user may be in any form, including acoustic, speech, or tactile input. In addition, the computer can interact with the user by sending documents to and receiving documents from the device being used by the user; for example, by sending web pages to a web browser on the user's user device in response to requests received from the web browser.

Варианты осуществления изобретения, излагаемого в данном описании, могут быть реализованы в вычислительной системе, которая содержит внутренний компонент, например, в виде сервера данных, либо которая содержит компонент промежуточного уровня, например, сервер приложений, либо которая содержит внешний компонент, например, компьютер пользователя, имеющий графический пользовательский интерфейс или веб-браузер, с помощью которого пользователь может взаимодействовать с реализацией изобретения, излагаемого в данном описании, либо любую комбинацию одного или более таких компонентов заднего плана, промежуточного уровня или переднего плана. Компоненты системы могут взаимодействовать с помощью любой формы или среды цифровой передачи данных, например, сети передачи данных. Примеры сетей передачи данных включают в себя локальную вычислительную сеть (ʺLANʺ) и глобальную вычислительную сеть (ʺWANʺ), объединенную сеть (например, Интернет) и одноранговые сети (например, специальные одноранговые сети).Embodiments of the invention described herein may be implemented in a computing system that contains an internal component, such as a data server, or that contains a middleware component, such as an application server, or that contains an external component, such as a user's computer. having a graphical user interface or web browser through which a user can interact with an implementation of the invention described herein, or any combination of one or more of such background, middleware, or foreground components. The components of the system can communicate using any form or medium of digital communication, such as a data network. Examples of data communication networks include a local area network ('LAN') and a wide area network ('WAN'), internetwork (eg, the Internet), and peer-to-peer networks (eg, ad hoc peer-to-peer networks).

Вычислительная сеть может включать в себя пользователей и серверы. Пользователь и сервер, как правило, удалены друг от друга и обычно взаимодействуют по сети передачи данных. Взаимоотношение пользователя и сервера возникает благодаря компьютерным программам, выполняемым на соответствующих компьютерах и имеющих взаимоотношение «пользователь-сервер» друг с другом. В некоторых вариантах осуществления сервер передает данные (например, HTML-страницу) в пользовательское устройство (например, в целях отображения данных пользователю, взаимодействующему с пользовательским устройством, и приема от него вводимых пользователем данных). Данные, генерируемые в пользовательском устройстве (например, результат взаимодействия пользователя), могут приниматься от пользовательского устройства в сервере.The computer network may include users and servers. The user and the server are usually remote from each other and usually interact over a data network. The user-server relationship arises from computer programs running on respective computers and having a user-server relationship with each other. In some embodiments, the server transmits data (eg, an HTML page) to the user device (eg, for the purpose of displaying the data to a user interacting with the user device and receiving user input from the user). Data generated at the user device (eg, the result of user interaction) may be received from the user device at the server.

Несмотря на то, что данное описание содержит множество конкретных подробностей реализации, они должны трактоваться не как ограничения на объем любых изобретений или того, что может быть заявлено, а, скорее, как описания признаков, характерных для конкретных вариантов осуществления конкретных изобретений. Некоторые признаки, которые излагаются в данном описании применительно к отдельным вариантам осуществления, могут также быть реализованы вместе в одном варианте осуществления. И наоборот, различные признаки, которые излагаются применительно к одному варианту осуществления, могут также быть реализованы во множестве вариантов осуществления по отдельности или в любой подходящей подкомбинации. Кроме того, несмотря на то, что признаки могли быть изложены выше как действующие в некоторых комбинациях и даже изначально заявляемые в таком качестве, один или более признаков из заявляемой комбинации могут в некоторых случаях быть исключены из комбинации, а заявляемая комбинация может быть направлена на подкомбинацию или вариант подкомбинации.Although this description contains many specific implementation details, they should not be construed as limitations on the scope of any inventions or what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Some of the features that are set forth in this description in relation to individual variants of implementation may also be implemented together in one embodiment. Conversely, various features that are set forth in relation to one embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. In addition, while the features may have been set forth above as operating in some combinations, and even as originally claimed as such, one or more of the features from the claimed combination may in some cases be excluded from the combination, and the claimed combination may be directed to a subcombination. or a subcombination option.

Аналогичным образом, несмотря на то, что операции отображены на чертежах в конкретном порядке, это не следует понимать как требующее того, чтобы такие операции выполнялись в конкретном изображенном порядке или в последовательном порядке, или чтобы для достижения необходимых результатов выполнялись все иллюстрированные операции. При определенных условиях многозадачность и параллельная обработка могут оказаться предпочтительными. Кроме того, разделение различных компонентов системы в вышеописанных вариантах осуществления не следует понимать как требующее такого разделения во всех вариантах осуществления, при этом следует понимать, что описанные программные компоненты и системы, как правило, могут быть объединены друг с другом в едином программном продукте или упакованы во множество программных продуктов.Similarly, although the operations are shown in the drawings in a specific order, this should not be understood as requiring that such operations be performed in the particular order depicted or in sequential order, or that all the illustrated operations be performed to achieve the desired results. Under certain conditions, multitasking and parallel processing may be preferable. In addition, the separation of the various system components in the above embodiments should not be understood to require such separation in all embodiments, it being understood that the described software components and systems may generally be combined with each other in a single software product or packaged. in many software products.

Таким образом, описаны конкретные варианты осуществления изобретения. Прочие варианты осуществления находятся в пределах объема. определяемого нижеследующей формулой изобретения. В некоторых случаях действия, перечисленные в формуле изобретения, могут выполняться в другом порядке и, тем не менее, достигать необходимых результатов. Кроме того, процессы, показанные на прилагаемых чертежах, не обязательно требуют конкретного изображенного порядка или последовательного порядка для достижения необходимых результатов. В некоторых реализациях многозадачность и параллельная обработка могут оказаться предпочтительными.Thus, specific embodiments of the invention are described. Other embodiments are within the scope. defined by the following claims. In some cases, the steps listed in the claims may be performed in a different order and still achieve the desired results. In addition, the processes shown in the accompanying drawings do not necessarily require the specific order depicted or sequential order to achieve the desired results. In some implementations, multitasking and parallel processing may be preferred.

Положение 1. Компьютерно-реализуемый способ, осуществляемый устройством обработки данных, содержащим один или более компьютеров, обменивающихся данными, каковой способ содержит этапы, на которых:Statement 1. A computer-implemented method carried out by a data processing device comprising one or more computers exchanging data, which method comprises the steps of:

принимают данные привязки к издателям для нативных приложений, которые задают, для каждого нативного приложения, связанного издателя для этого нативного приложения;receiving publisher binding data for native applications that specifies, for each native application, an associated publisher for that native application;

для каждого нативного приложения из набора нативных приложений, определяют на основе данных привязки к издателям, связано ли это нативное приложение с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса (URI), определенных для данного нативного приложения;for each native application of the set of native applications, determining, based on the publisher binding data, whether the native application is associated with a publisher that provides content addressed by the Uniform Resource Identifiers (URIs) defined for that native application;

только для нативных приложений, которые определены как связанные с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса, определенных для нативного приложения:only for native apps that are defined as being associated with a publisher that provides content addressed by the Uniform Resource Identifiers defined for the native app:

выбирают унифицированные идентификаторы ресурса на основе шаблона URI для нативного приложения; иselecting Uniform Resource Identifiers based on the URI template for the native application; and

индексируют контент, доступный с помощью унифицированного идентификатора ресурса для нативного приложения, в индексе, который приспособлен для поиска по нему поисковой системой.indexing the content accessed by the native application Uniform Resource Identifier in an index that is searchable by a search engine.

Положение 2. Компьютерно-реализуемый способ согласно положению 1, в котором упомянутое определение на основе данных привязки к издателям того, связано ли нативное приложение с издателем, который предоставляет контент, адресуемый посредством URI, определенных для нативного приложения, содержит этапы, на которых:Claim 2: The computer-implemented method of Claim 1, wherein said determining, based on publisher binding data, whether the native application is associated with a publisher that provides content addressed by the URIs defined for the native application comprises the steps of:

определяют шаблон URI для нативного приложения;define a URI template for the native application;

определяют, задает ли шаблон URI связанного издателя для нативного приложения, который совпадает со связанным издателем для нативного приложения, заданным данными привязки к издателям; иdetermining whether the URI template of the associated native application publisher matches the associated native application publisher specified by the publisher binding data; and

определяют, что нативное приложение связано с издателем, только в тех случаях, когда шаблон URI для нативного приложения задает связанного издателя для нативного приложения, который совпадает со связанным издателем для нативного приложения, заданным данными привязки к издателям.determine that the native application is associated with a publisher only when the native application URI pattern specifies an associated native application publisher that matches the associated native application publisher specified by the publisher binding data.

Положение 3. Компьютерно-реализуемый способ по п. 2, в котором упомянутое определение шаблона URI для нативного приложения содержит этап, на котором обрабатывают файл манифеста нативного приложения для данных, описывающих шаблон URI.Proposition 3. The computer-implemented method of claim 2, wherein said definition of a native application URI template comprises processing a native application manifest file for data describing the URI template.

Положение 4. Компьютерно-реализуемый способ согласно положению 2, в котором данные привязки к издателям для каждого нативного приложения задают связь между доменом издателя и идентификатором нативного приложения, соответствующим нативному приложению.Claim 4: The computer-implemented method of Claim 2, wherein the publisher binding data for each native application defines an association between a publisher domain and a native application identifier corresponding to the native application.

Положение 5. Компьютерно-реализуемый способ согласно положению 4, в котором упомянутое определение того, задает ли шаблон URI связанного издателя для нативного приложения, содержит этап, на котором определяют, имеется ли в URI имя хоста, которое соответствует домену издателя, причем соответствие имени хоста URI домену издателя приводит к положительному результату определения, а несоответствие имени хоста URI домену издателя приводит к отрицательному результату определения.Claim 5. The computer-implemented method of Claim 4, wherein said determining whether the URI pattern specifies an associated publisher for a native application comprises determining whether the URI has a hostname that matches the publisher's domain, wherein the hostname matches The URI with the publisher's domain results in a positive result, and a URI hostname mismatch with the publisher's domain results in a negative result.

Положение 6. Компьютерно-реализуемый способ согласно положению 2, в котором при упомянутом выборе URI на основе шаблона URI для нативного приложения выбирают из индекса те URI, которые включают в себя шаблон URI.Claim 6. The computer-implemented method of Claim 2 wherein said URI selection based on the URI template for the native application selects from the index those URIs that include the URI template.

Положение 7. Компьютерно-реализуемый способ согласно положению 6, в котором URI являются унифицированными указателями ресурса (URL).Claim 7. A computer-implemented method according to clause 6, wherein the URIs are Uniform Resource Locators (URLs).

Положение 8. Компьютерно-реализуемый способ согласно положению 2, в котором упомянутый выбор URI на основе шаблона URI для нативного приложения содержит этапы, на которых:Claim 8. The computer-implemented method of Claim 2, wherein said selecting a URI based on a URI pattern for a native application comprises:

инстанцируют нативное приложение и выбирают первый URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения;instantiating a native application and selecting a first URI based on the URI pattern to generate an application page in a native application display environment;

выполняют итеративную обработку связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка включает в себя, для каждой итерации, этапы, на которых:perform iterative processing of the linked application pages for the native application up to the occurrence of a stop event, and the iterative processing includes, for each iteration, the steps in which:

определяют, из страницы приложения, исходящие URI, в том числе, на первой странице приложения; иdetermine, from the application page, outgoing URIs, including those on the first page of the application; and

выбирают один или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения.selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment.

Положение 9. Компьютерно-реализуемый способ, осуществляемый устройством обработки данных, содержащим один или более компьютеров, обменивающихся данными, каковой способ содержит этапы, на которых:Statement 9. A computer-implemented method carried out by a data processing device comprising one or more computers exchanging data, which method comprises the steps of:

определяют шаблон унифицированного идентификатора ресурса (URI) для нативного приложения;defining a Uniform Resource Identifier (URI) template for the native application;

инстанцируют нативное приложение и выбирают первый URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения;instantiating a native application and selecting a first URI based on the URI pattern to generate an application page in a native application display environment;

индексируют данные страницы приложения этой страницы приложения в индексе, который приспособлен для поиска по нему поисковой системой;indexing the application page data of that application page in an index that is searchable by a search engine;

выполняют итеративную обработку связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка включает в себя, для каждой итерации, этапы, на которых:perform iterative processing of the linked application pages for the native application up to the occurrence of a stop event, and the iterative processing includes, for each iteration, the steps in which:

определяют, из страницы приложения, исходящие URI, в том числе, на первой странице приложения;determine, from the application page, outgoing URIs, including those on the first page of the application;

выбирают один или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения;selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment;

индексируют данные страницы приложения для каждой из одной или более следующих страниц приложения в индексе.indexing application page data for each of the one or more next application pages in the index.

Положение 10. Компьютерно-реализуемый способ согласно положению 9, в котором упомянутый выбор одного или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения содержит этапы, на которых:Claim 10. The computer-implemented method of claim 9, wherein said selecting one or more of the outgoing URIs to generate one or more next application pages in a native application display environment comprises the steps of:

для каждого исходящего URI определяют, согласуется ли этот исходящий URI с шаблоном URI; иfor each outgoing URI, determining whether this outgoing URI matches the URI pattern; and

выбирают только те исходящие URI, которые согласуются с шаблоном URI.select only outgoing URIs that match the URI pattern.

Положение 11. Компьютерно-реализуемый способ согласно положению 10, в котором при упомянутом определении того, согласуется ли исходящий URI с шаблоном URI, определяют, содержит ли исходящий URI шаблон URI.Claim 11. The computer-implemented method according to clause 10, wherein, in said determination of whether an outgoing URI matches a URI pattern, determining whether the outgoing URI contains the URI pattern.

Положение 12. Система, содержащая:Statement 12. System containing:

устройство обработки данных; иdata processing device; and

программные средства, хранящиеся в энергонезависимом машиночитаемом носителе, хранящим команды, которые являются исполняемыми устройством обработки данных и которые при таком исполнении предписывают устройству обработки данных выполнять операции, включающие в себя операции, чтобы:software stored on a non-volatile computer-readable medium that stores instructions that are executable by a data processing device and that, when executed, cause the data processing device to perform operations, including operations to:

принимать данные привязки к издателям для нативных приложений, которые задают, для каждого нативного приложения, связанного издателя для этого нативного приложения;receive publisher binding data for native applications that specifies, for each native application, an associated publisher for that native application;

для каждого нативного приложения из набора нативных приложений, определять на основе данных привязки к издателям, связано ли это нативное приложение с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса (URI), определенных для данного нативного приложения;for each native application in the set of native applications, determine, based on the publisher affinity data, whether the native application is associated with a publisher that provides content addressed by the Uniform Resource Identifiers (URIs) defined for that native application;

только для нативных приложений, которые определены как связанные с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса, определенных для нативного приложения:only for native apps that are defined as being associated with a publisher that provides content addressed by the Uniform Resource Identifiers defined for the native app:

выбирать унифицированные идентификаторы ресурса на основе шаблона URI для нативного приложения; иselect Uniform Resource Identifiers based on the URI pattern for the native application; and

индексировать контент, доступный с помощью унифицированного идентификатора ресурса для нативного приложения, в индексе, который приспособлен для поиска по нему поисковой системой.index the content accessed by the native app Uniform Resource Identifier in an index that is searchable by a search engine.

Положение 13. Система согласно положению 12, в которой упомянутое определение на основе данных привязки к издателям того, связано ли нативное приложение с издателем, который предоставляет контент, адресуемый посредством URI, определенных для нативного приложения, содержит:Claim 13: A system according to clause 12, wherein said determining, based on publisher affinity data, whether the native application is associated with a publisher that provides content addressed by the URIs defined for the native application comprises:

определение шаблона URI для нативного приложения;defining a URI template for a native application;

определение того, задает ли шаблон URI связанного издателя для нативного приложения, который совпадает со связанным издателем для нативного приложения, заданным данными привязки к издателям; иdetermining whether the URI template of the associated native application publisher matches the associated native application publisher specified by the publisher binding data; and

определение того, что нативное приложение связано с издателем, только в тех случаях, когда шаблон URI для нативного приложения задает связанного издателя для нативного приложения, который совпадает со связанным издателем для нативного приложения, заданным данными привязки к издателям.determining that the native application is associated with a publisher only when the native application URI pattern specifies an associated native application publisher that matches the associated native application publisher specified by the publisher binding data.

Положение 14. Система согласно положению 13, в которой упомянутое определение шаблона URI для нативного приложения включает в себя обработку файла манифеста нативного приложения для данных, описывающих шаблон URI.Claim 14. The system as claimed in Claim 13, wherein said native application URI template definition includes processing a native application manifest file for data describing the URI template.

Положение 15. Система согласно положению 13, в которой данные привязки к издателям для каждого нативного приложения задают связь между доменом издателя и идентификатором нативного приложения, соответствующим нативному приложению.Claim 15: A system as in clause 13, wherein the publisher binding data for each native application defines an association between a publisher domain and a native application identifier corresponding to the native application.

Положение 16. Система согласно положению 15, в которой упомянутое определение того, задает ли шаблон URI связанного издателя для нативного приложения, содержит определение того, имеется ли в URI имя хоста, которое соответствует домену издателя, причем соответствие имени хоста URI домену издателя приводит к положительному результату определения, а несоответствие имени хоста URI домену издателя приводит к отрицательному результату определения.Clause 16: The system as claimed in Clause 15, wherein said determination of whether the associated publisher URI template for the native application specifies whether the URI contains a hostname that matches the publisher's domain, wherein matching the URI's hostname to the publisher's domain results in a positive the result of the determination, and a mismatch between the host name of the URI and the domain of the publisher results in a negative result of the determination.

Положение 17. Система согласно положению 13, в которой упомянутый выбор URI на основе шаблона URI для нативного приложения содержит выбор из индекса тех URI, которые включают в себя шаблон URI.Claim 17. The system as claimed in Claim 13, wherein said selection of a URI based on a URI pattern for a native application comprises selecting from an index of those URIs that include the URI pattern.

Положение 18. Система согласно положению 17, в которой URI являются унифицированными указателями ресурса (URL).Clause 18. A system under clause 17 in which the URIs are Uniform Resource Locators (URLs).

Положение 19. Система согласно положению 18, в которой упомянутый выбор URI на основе шаблона URI для нативного приложения содержит:Clause 19. A system according to clause 18, wherein said URI selection based on a URI pattern for a native application comprises:

инстанцирование нативного приложения и выбор первого URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения;instantiating the native application and selecting a first URI based on the URI template to generate an application page in the native application display environment;

итеративную обработку связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка включает в себя для каждой итерации:iteratively processing the linked application pages for the native application until a stop event occurs, where the iterative processing includes, for each iteration:

определение, из страницы приложения, исходящих URI, в том числе, на первой странице приложения; иdetermining, from the application page, outgoing URIs, including those on the first page of the application; and

выбор одного или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения.selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment.

Положение 20. Система, содержащая:Statement 20. A system comprising:

устройство обработки данных; иdata processing device; and

программные средства, хранящиеся в энергонезависимой машиночитаемом носителе, хранящем команды, которые являются исполняемыми устройством обработки данных и которые при таком исполнении предписывают устройству обработки данных выполнять операции, содержащие:software stored in a non-volatile computer-readable medium that stores instructions that are executable by the data processing device and which, when executed, cause the data processing device to perform operations comprising:

определение шаблона унифицированного идентификатора ресурса (URI) для нативного приложения;defining a Uniform Resource Identifier (URI) template for the native application;

инстанцирование нативного приложения и выбор первого URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения;instantiating the native application and selecting a first URI based on the URI template to generate an application page in the native application display environment;

индексирование данных страницы приложения этой страницы приложения в индексе, который приспособлен для поиска по нему поисковой системой;indexing the application page data of that application page in an index that is searchable by a search engine;

итеративную обработку связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка включает в себя для каждой итерации:iteratively processing the linked application pages for the native application until a stop event occurs, where the iterative processing includes, for each iteration:

определение, из страницы приложения, исходящих URI, в том числе, на первой странице приложения;determining, from the application page, outgoing URIs, including those on the first page of the application;

выбор одного или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения;selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment;

индексирование данных страницы приложения для каждой из одной или более следующих страниц приложения в индексе.indexing application page data for each of the one or more next application pages in the index.

Положение 21. Энергонезависимый машиночитаемый носитель, хранящий команды, которые являются исполняемыми устройством обработки данных и которые при таком исполнении предписывают устройству обработки данных выполнять операции, содержащие этапы, на которых:Statement 21. A non-volatile computer-readable medium storing instructions that are executable by a data processing device and which, when executed, cause the data processing device to perform operations comprising the steps of:

принимают данные привязки к издателям для нативных приложений, которые задают, для каждого нативного приложения, связанного издателя для этого нативного приложения;receiving publisher binding data for native applications that specifies, for each native application, an associated publisher for that native application;

для каждого нативного приложения из набора нативных приложений, определяют на основе данных привязки к издателям, связано ли это нативное приложение с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса (URI), определенных для данного нативного приложения;for each native application of the set of native applications, determining, based on the publisher binding data, whether the native application is associated with a publisher that provides content addressed by the Uniform Resource Identifiers (URIs) defined for that native application;

только для нативных приложений, которые определены как связанные с издателем, который предоставляет контент, адресуемый посредством унифицированных идентификаторов ресурса, определенных для нативного приложения:only for native apps that are defined as being associated with a publisher that provides content addressed by the Uniform Resource Identifiers defined for the native app:

выбирают унифицированный идентификатор ресурса на основе шаблона URI для нативного приложения;selecting a Uniform Resource Identifier based on the URI pattern for the native application;

индексируют контент, доступный с помощью унифицированных идентификаторов ресурса для нативного приложения, в индексе, который приспособлен для поиска по нему поисковой системой.indexing the content accessed by the native application Uniform Resource Identifiers in an index that is searchable by a search engine.

Положение 22. Энергонезависимый машиночитаемый носитель, хранящий команды, которые являются исполняемыми устройством обработки данных и которые при таком исполнении предписывают устройству обработки данных выполнять операции, содержащие этапы, на которых:Statement 22. A non-volatile computer-readable medium storing instructions that are executable by a data processing device and which, when executed, cause the data processing device to perform operations comprising the steps of:

определяют шаблон унифицированного идентификатора ресурса (URI) для нативного приложения;defining a Uniform Resource Identifier (URI) template for the native application;

инстанцируют нативное приложение и выбирают первый URI на основе шаблона URI для генерирования страницы приложения в среде отображения нативного приложения;instantiating a native application and selecting a first URI based on the URI pattern to generate an application page in a native application display environment;

индексируют данные страницы приложения этой страницы приложения в индексе, который приспособлен для поиска по нему поисковой системой;indexing the application page data of that application page in an index that is searchable by a search engine;

выполняют итеративную обработку связанных ссылками страниц приложения для нативного приложения вплоть до наступления события остановки, причем итеративная обработка содержит, для каждой итерации, этапы, на которых:perform iterative processing of the linked application pages for the native application until a stop event occurs, the iterative processing comprising, for each iteration, steps in which:

определяют, из страницы приложения, исходящие URI, в том числе, на первой странице приложения;determine, from the application page, outgoing URIs, including those on the first page of the application;

выбирают один или более из исходящих URI для генерирования одной или более следующих страниц приложения в среде отображения нативного приложения;selecting one or more of the outgoing URIs to generate one or more next application pages in the native application display environment;

индексируют данные страницы приложения для каждой из одной или более следующих страниц приложения в индексе.indexing application page data for each of the one or more next application pages in the index.

Claims (29)

1. Компьютерно-реализуемый способ автоматического генерирования глубинных ссылок нативных приложений, осуществляемый устройством обработки данных, содержащим один или более компьютеров, обменивающихся данными, при этом способ содержит этапы, на которых:1. A computer-implemented method for automatically generating deep links of native applications, carried out by a data processing device containing one or more computers exchanging data, the method comprising the steps of: принимают для нативного приложения данные, задающие шаблон унифицированного идентификатора ресурса (URI) для этого нативного приложения, при этом шаблон URI задает соответственного издателя для данного нативного приложения, причем эти данные включают в себя имя хоста и префикс пути;receiving data for the native application specifying a Uniform Resource Identifier (URI) template for the native application, the URI template specifying the corresponding publisher for the native application, the data including a hostname and a path prefix; генерируют из шаблона URI множество URI для упомянутого нативного приложения, причем каждый URI включает в себя имя хоста и префикс пути, присоединенный к этому имени хоста;generating from the URI template a plurality of URIs for said native application, each URI including a hostname and a path prefix appended to that hostname; для, по меньшей мере, одного или более URI из упомянутого множества URI, генерируют глубинную ссылку для упомянутого нативного приложения, причем глубинная ссылка включает в себя URI и дополнительные данные, которые присоединены к этому URI; иfor at least one or more URIs from said set of URIs, generating a deep link for said native application, the deep link including the URI and additional data that is attached to that URI; and сохраняют упомянутое множество URI в хранилище данных.storing said plurality of URIs in a data store. 2. Компьютерно-реализуемый способ по п. 1, в котором хранилищем данных является индекс, приспособленный для поиска по нему поисковой системой.2. The computer-implemented method of claim 1, wherein the data store is an index adapted to be searched by a search engine. 3. Компьютерно-реализуемый способ по п. 1, в котором упомянутый прием данных, задающих шаблон URI для нативного приложения, содержит этап, на котором обрабатывают файл манифеста нативного приложения на предмет данных, описывающих шаблон URI.3. The computer-implemented method of claim 1, wherein said receiving data specifying a URI template for a native application comprises processing the native application manifest file for data describing the URI template. 4. Компьютерно-реализуемый способ по п. 1, в котором имя хоста совпадает с именем упомянутого соответственного издателя упомянутого нативного приложения.4. The computer-implemented method of claim 1, wherein the hostname matches the name of said respective publisher of said native application. 5. Компьютерно-реализуемый способ по п. 1, в котором URI являются унифицированными указателями ресурса (URL).5. The computer-implemented method of claim 1, wherein the URIs are Uniform Resource Locators (URLs). 6. Система для автоматического генерирования глубинных ссылок нативных приложений, содержащая:6. System for automatic generation of deep links of native applications, containing: устройство обработки данных; иdata processing device; and программное обеспечение, хранящееся в долговременном машиночитаемом носителе, содержащее инструкции, которые являются исполняемыми устройством обработки данных и которые при таком исполнении предписывают устройству обработки данных выполнять операции, содержащие:software stored in a non-volatile computer-readable medium containing instructions that are executable by a data processing device and which, when executed, cause the data processing device to perform operations comprising: прием, для нативного приложения, данных, задающих шаблон унифицированного идентификатора ресурса (URI) для этого нативного приложения, при этом шаблон URI задает соответственного издателя для данного нативного приложения, причем эти данные включают в себя имя хоста и префикс пути,receiving, for a native application, data specifying a Uniform Resource Identifier (URI) template for that native application, wherein the URI template specifies the appropriate publisher for that native application, the data including a hostname and a path prefix, генерирование, из шаблона URI, множества URI для упомянутого нативного приложения, причем каждый URI включает в себя имя хоста и префикс пути, присоединенный к этому имени хоста,generating, from the URI template, a plurality of URIs for said native application, each URI including a hostname and a path prefix appended to that hostname, для, по меньшей мере, одного или более URI из упомянутого множества URI, генерирование глубинной ссылки для упомянутого нативного приложения, причем глубинная ссылка включает в себя URI и дополнительные данные, которые присоединены к этому URI, иfor at least one or more URIs from said set of URIs, generating a deep link for said native application, wherein the deep link includes the URI and additional data that is attached to that URI, and сохранение упомянутого множества URI в хранилище данных.storing said plurality of URIs in a data store. 7. Система по п. 6, в которой хранилищем данных является индекс, приспособленный для поиска по нему поисковой системой.7. The system of claim 6, wherein the data store is an index adapted to be searched by a search engine. 8. Система по п. 6, в которой упомянутый прием данных, задающих шаблон URI для нативного приложения, содержит обработку файла манифеста нативного приложения на предмет данных, описывающих шаблон URI.8. The system of claim 6, wherein said receiving data specifying a URI template for a native application comprises processing the native application manifest file for data describing the URI template. 9. Система по п. 6, при этом имя хоста совпадает с именем упомянутого соответственного издателя упомянутого нативного приложения.9. The system of claim 6, wherein the host name is the same as the name of said respective publisher of said native application. 10. Система по п. 6, при этом URI являются унифицированными указателями ресурса (URL).10. The system of claim 6, wherein the URIs are Uniform Resource Locators (URLs). 11. Долговременный машиночитаемый носитель, в котором хранятся инструкции, исполняемые устройством обработки данных, которые при таком исполнении предписывают устройству обработки данных выполнять операции, содержащие:11. A non-volatile computer-readable medium that stores instructions executable by a data processing device that, if so executed, instruct the data processing device to perform operations comprising: прием, для нативного приложения, данных, задающих шаблон унифицированного идентификатора ресурса (URI) для этого нативного приложения, при этом шаблон URI задает соответственного издателя для данного нативного приложения, причем эти данные включают в себя имя хоста и префикс пути;receiving, for the native application, data specifying a Uniform Resource Identifier (URI) template for that native application, the URI template specifying the appropriate publisher for that native application, the data including a hostname and a path prefix; генерирование, из шаблона URI, множества URI для упомянутого нативного приложения, причем каждый URI включает в себя имя хоста и префикс пути, присоединенный к этому имени хоста;generating, from the URI template, a plurality of URIs for said native application, each URI including a hostname and a path prefix appended to that hostname; для, по меньшей мере, одного или более URI из упомянутого множества URI, генерирование глубинной ссылки для упомянутого нативного приложения, причем глубинная ссылка включает в себя URI и дополнительные данные, которые присоединены к этому URI; иfor at least one or more URIs from said set of URIs, generating a deep link for said native application, the deep link including the URI and additional data that is attached to that URI; and сохранение упомянутого множества URI в хранилище данных.storing said plurality of URIs in a data store. 12. Долговременный машиночитаемый носитель по п. 11, при этом хранилищем данных является индекс, приспособленный для поиска по нему поисковой системой.12. The durable computer-readable medium of claim 11, wherein the data store is an index adapted to be searched by a search engine. 13. Долговременный машиночитаемый носитель по п. 11, в котором упомянутый прием данных, задающих шаблон URI для нативного приложения, содержит обработку файла манифеста нативного приложения на предмет данных, описывающих шаблон URI.13. The durable computer-readable medium of claim 11, wherein said receiving data specifying a URI template for a native application comprises processing a native application manifest file for data describing the URI template. 14. Долговременный машиночитаемый носитель по п. 11, при этом имя хоста совпадает с именем упомянутого соответственного издателя упомянутого нативного приложения.14. The durable computer-readable medium of claim 11, wherein the host name is the same as the name of said respective publisher of said native application. 15. Долговременный машиночитаемый носитель по п. 11, при этом URI являются унифицированными указателями ресурса (URL).15. The durable computer-readable medium of claim 11, wherein the URIs are Uniform Resource Locators (URLs).
RU2018133614A 2014-06-25 2015-06-25 Deep links for native applications RU2774319C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462017193P 2014-06-25 2014-06-25
US62/017,193 2014-06-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2016150421A Division RU2668726C2 (en) 2014-06-25 2015-06-25 Depth references for native applications

Publications (3)

Publication Number Publication Date
RU2018133614A RU2018133614A (en) 2018-10-23
RU2018133614A3 RU2018133614A3 (en) 2021-11-30
RU2774319C2 true RU2774319C2 (en) 2022-06-17

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU110847U1 (en) * 2011-05-05 2011-11-27 Игорь Викторович Лебедев INFORMATION AND SEARCH SYSTEM
US20120005433A1 (en) * 2010-06-30 2012-01-05 Oracle International Corporation Response header invalidation
US20130311301A1 (en) * 2012-05-17 2013-11-21 Ad-Vantage Networks, Inc. Content easement and management system for internet access providers and premise operators
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview
US20140358887A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Application content search management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005433A1 (en) * 2010-06-30 2012-01-05 Oracle International Corporation Response header invalidation
RU110847U1 (en) * 2011-05-05 2011-11-27 Игорь Викторович Лебедев INFORMATION AND SEARCH SYSTEM
US20130311301A1 (en) * 2012-05-17 2013-11-21 Ad-Vantage Networks, Inc. Content easement and management system for internet access providers and premise operators
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview
US20140358887A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Application content search management

Similar Documents

Publication Publication Date Title
RU2668726C2 (en) Depth references for native applications
KR102208988B1 (en) Indexing application pages of native applications
US10068028B1 (en) Deep link verification for native applications
US9547721B2 (en) Native application search results
JP6363738B2 (en) Search results for native applications
US9146972B2 (en) Ranking of presentation modes for particular content
JP6580708B2 (en) Application part deep links to corresponding resources
US11003728B1 (en) Native application search results
RU2774319C2 (en) Deep links for native applications