Firebase应用索引

概述

Google '的App Indexing是一个尝试在移动设备上执行的Google搜索中公开应用结果的项目。该项目的正式名称为Firebase App Indexing。

从较高的角度来看,App Indexing有两个主题需要考虑。

  • 结果,排名和相关性基于网页抓取。 App Indexing不能提高结果的相关性。
  • 应用索引功能使网络搜索结果打开您的应用。

启用应用索引后,您可能还希望对网站进行以下更改:

  • 使您现有的网站支持Apple '的通用链接和Android '的应用链接。之后,您所有的链接都将正确打开该应用程序,然后完成' 。
    • 在Google抓取页面时,将未公开的标头<link rel="alternate" .. 标签添加到您的网站。Branch可以使用autoAppIndex()来帮助完成此任务,如下所述。

如果Google知道您的网站打开了该应用程序,当它出现在搜索结果中并且用户安装了该应用程序时,该应用程序将代替该网站打开,从而在自然搜索门户中实现“应用索引”结果。

科'的App索引整合是专为企业,不要'吨有一个网站,并希望科举办的网站他们。如果您有网站,Branch可以通过WebSDK功能autoAppIndex() (在此处描述动态注入App Indexing标签。

请注意,为了使您从此功能获得流量,您的“Branch”链接将需要出现在搜索结果中。刚刚,我们' ve利用AMP技术增强了我们的应用索引功能,以利用Google '对这些页面的新优先级。

定义您的内容

在Google中列出您的应用程序内容的第一步是告诉Branch什么是内容以及内容应如何出现在搜索中。假设您按照我们的入门指南进行操作,那么您已经通过创建Branch Universal Objects内容建立了索引。您可以使用本机SDK创建这些对象,只需在其中设置OG标记参数即可。

  • iOS-Objective C

    
      BranchUniversalObject *branchUniversalObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:@"item/12345"];
      // Facebook OG tags -- this will overwrite any defaults you set up on the Branch Dashboard
      branchUniversalObject.title = @"My Content Title";
      branchUniversalObject.contentDescription = @"My Content Description";
      branchUniversalObject.imageUrl = @"https://example.com/mycontent-12345.png";
    
      // Add any additional custom OG tags here
      [branchUniversalObject addMetadataKey:@"$og_video" value:@"http://mysite/video.mpg"];
    
  • iOS-Swift

      let branchUniversalObject: BranchUniversalObject = BranchUniversalObject(canonicalIdentifier: "item/12345")
      // Facebook OG tags -- this will overwrite any defaults you set up on the Branch Dashboard
      branchUniversalObject.title = "My Content Title"
      branchUniversalObject.contentDescription = "My Content Description"
      branchUniversalObject.imageUrl = "https://example.com/mycontent-12345.png"
    
      // Add any additional custom OG tags here
      branchUniversalObject.addMetadataKey("$og_video", value: "http://mysite/video.mpg")
    
  • 安卓

       BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
                      .setCanonicalIdentifier("item/12345")
      // Facebook OG tags -- This will overwrite any defaults you have set on the Branch Dashboard
                      .setTitle("My Content Title")
                      .setContentDescription("My Content Description")
                      .setContentImageUrl("https://example.com/mycontent-12345.png")
    
      // Add any additional custom OG tags here
                      .setContentMetadata(new ContentMetadata().addCustomMetadata("$og_video", "http://mysite/video.mpg"));
    

启用应用索引

在分支仪表板的有机搜索页面上启用自动生成站点地图。选中Automatic sitemap generation 复选框。

图像

启用此功能后,您的应用将包含在我们的夜间工作中,以自动生成站点地图。这些站点地图可以由Google抓取,然后可以对所有包含的链接建立索引。

你后'已经启用应用程式索引,该页面将展示以下数据:

  1. 站点地图文件的最后生成日期(包括至少一个链接)
  2. Branch已包含在站点地图中的独特作品内容的链接总数
  3. Google上次抓取您的链接的日期
  4. Google抓取您的内容的链接的总次数

站点地图本身以及有关Google抓取链接的Google统计信息都是通过每晚减少地图的作业来更新的。

图像

Google不会针对具有自定义域的应用抓取站点地图

如果您'为Branch链接重新使用自定义域,则Google不会抓取您自动生成的站点地图。

高级

配置现有网站以进行App索引编制

如果您已经拥有自己的网站,建议您配置自己的网站以进行App Indexing,而不要使用Branch '的托管App Indexing。您希望您的主网站以及您的域名和SEO果汁出现在Google中,而不是尝试将您的app.link 域名推送到搜索结果中。因此,我们建议您通过几个步骤为您的网站配置应用索引。

尽管文献索引令人困惑,但App Indexing只是在安装后打开您的应用程序,而在没有安装时又回到您的网站。实际上,你不要'吨需要使用任何谷歌的'用工具(火力地堡的App Indexing)来做到这一点。仅需为iOS上的Universal Link和Android上的App Link配置您的域即可。以下是更多详细信息:

建议:将通用链接和应用链接支持添加到您的域

这是迄今为止利用谷歌应用程序索引的最简单的方法,和每个对话是我们推荐的方式' VE曾与自己的球队。您需要做的就是在您的域和相应的应用程序上配置通用链接和Android应用程序链接。

我们'已经放在一起对我们的博客一些方便指南:

如果您需要帮助,请随时给我们留言。

替代方案:让WebSDK将App Indexing标签注入您的网页

如果您不想实现通用链接或应用链接,则可以允许WebSDK在网页的头部之间插入应用索引元标记。这些标签允许Google '的网络抓取漫游器通过URI方案启动您的应用,从而为您的应用内容编制索引。

这要求:

  1. 要集成的Branch,用于基于URI的深度链接接。请确保完成以下指南的步骤1、2、3和4(仅适用于 iOS ):

  2. 使用适当的参数(参见下文)对autoAppIndex() (WebSDK函数)进行调用。

    确保您'将该代码段从此处放置在网页的<head></head> 标签之间。然后将branch.autoAppIndex({..}) 置于branch.init() 以下,并使用以下可选参数:

Key
"androidPackageName" Android App '的包名称
"androidURL" 您的Android应用的自定义方案,例如: example/home/cupertino/12345 其中example 是应用'的URI方案)和home/cupertino/12345 路由到应用中唯一内容的路线
"iosAppId" iOS应用程序的iTunes App Store ID
"iosURL" 针对您的iOS应用的自定义方案,例如: example/home/cupertino/12345
"data" 您想要传递给应用程序的任何其他深度链接接数据
branch.autoAppIndex({
    iosAppId:'123456789',
    iosURL:'example/home/cupertino/12345',
    androidPackageName:'com.somecompany.app',
    androidURL:'example/home/cupertino/12345',
    data:{"walkScore":65, "transitScore":50}
}, function(err) { console.log(err); });

WebSDK初始化后,该函数将使用以下格式在网页的头部之间插入Firebase App Indexing标签:

<html>
<head>
  ...
  <link rel="alternate" href="android-app://{androidPackageName}/{androidURL}?{branch_tracking_params_and_additional_deep_link_data}"/>
  <link rel="alternate" href="ios-app://{iosAppId}/{iosURL}?{branch_tracking_params_and_additional_deep_link_data}"/>
  ...
</head>
<body></body>

:如果未指定上述可选参数,Branch将尝试使用页面' s App Links 标签构建Firebase App Indexing标签。

或者,如果指定了可选参数,但Firebase App Indexing标签已经存在,则此功能将在这些标签的末尾附加Branch跟踪参数,并忽略传递给.autoAppIndex()

出于调试目的,您可以右键点击Chrome中网页上的任意位置,然后点击“检查”,以检查该方法是否正确插入了这些标签。之后,切换页面'的HTML的头部,您将看到动态生成的Firebase App Indexing标签。

有关谷歌Analytics(分析) '的企图索引你的应用程序'通过这些标记S含量可以从源代码分析在Dashboard中找到,其中channelFirebase App IndexingfeatureAuto App Indexing

使用网站站长工具进行测试

我们已经在Google '的官方博客上阅读到Googlebot在将网页编入索引之前会呈现javascript,但是有时它可能会选择不这样做。我们不清楚的原因。因此,当您尝试以Googlebot身份获取和呈现时,作为此功能的一部分而创建的动态生成的App Indexing元标记可能会或可能不会出现在使用网站站长工具进行的测试中。

将应用流量归因于自然搜索

好奇您的内容效果如何-带来了多少点击和安装?

我们会自动将这些链接上的点击标记为来自Google App索引。在控制台' s 摘要页面的点击流部分,您可以过滤这些点击。只需选择channel: google_searchfeature: google_app_index

隐藏索引中的内容

并非所有内容都是公开的,也不是所有内容都应公开索引。如果要启用Branch '的自动站点地图生成功能,但要排除某些内容,则可以将该内容标记为私有。您应该为单个“Branch通用对象”设置内容索引模式。此属性称为 contentIndexMode

  • iOS-Objective C

      BranchUniversalObject *branchUniversalObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:@"item/12345"];
      branchUniversalObject.contentIndexMode = ContentIndexModePrivate;
    
  • iOS-Swift

      let branchUniversalObject: BranchUniversalObject = BranchUniversalObject(canonicalIdentifier: "item/12345")
      branchUniversalObject.contentIndexMode = ContentIndexModePrivate
    
  • Android-Java

       BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
                      .setCanonicalIdentifier("item/12345")
                      .setContentIndexingMode(BranchUniversalObject.CONTENT_INDEX_MODE.PRIVATE);
    

4个月前更新

Firebase应用索引


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。