Criteo

概述

Criteo

本指南将引导您逐步了解如何使用Branch Universal Ads使用 Criteo 设置广告系列,并跟踪每个设备,平台和渠道 广告的转化。 Universal Ads提供了完整跟踪所需的一切,包括丰富的数据供Criteo Engine进行优化。

1.完整的通用广告先决条件

可能需要开发者

以下通用广告先决条件包括提供URI方案和其他可能需要开发人员的组件:

需要开发人员

以下通用广告先决条件涉及应用代码的更改:

2.启用集成

  1. 访问Branch仪表板上的广告页面
  2. 从边栏中选择Partner Management
  3. 搜索您的Universal Ads Partner
  4. 选择Criteo 并点击Save & Enable

3.启用回发

启用广告合作伙伴后,基本回发将自动针对安装购买等事件激活。

然后,您可以添加额外的回传 ,例如,如果你想添加回发的特定于您的应用程序,如自定义事件账户创建

如果您确实需要将'其他数据传递给广告伙伴,则还可以编辑回发

3a. Resetting Postbacks

有时您可能需要重置伙伴'的设置。即当一个合作伙伴更新他们的回发模板或当你也许'已经取得的合作伙伴安装过程中的错误。重置合作伙伴'的设置可让您使用正确的信息重新启用合作伙伴集成,以准确地度量和属性转换。

禁用广告合作伙伴

重置合作伙伴设置将:

  • 禁用广告伙伴。
  • 清除所有已保存的凭据和已设置的回发。
  • 将广告伙伴恢复为基本配置。

更新回发

  • 请执行 NOT 重置Criteo回发设置,因为它将覆盖以前的回发。
  • 确保逐步将事件回发的旧版本替换为新版本。

4. Criteo链接选项

4a。目录深层链接

推荐的

分支链接可用作通用链接或应用程序链接,以及延迟的深层链接,这意味着在所有Criteo广告系列中都可以实现更好的转化。

相同的Branch链接将进行测量以及深层链接,因此'不需要额外的"个仅跟踪"链接。事实上,如果你'重科使用链接作为广告活动的链接,你不应该' T选用额外的服务器到服务器跟踪为好。

Criteo接受包含产品详细信息和链接的目录。我们建议您用分支链接替换您的Web链接。

为目录创建http深链接

为产品Feed创建深层链接的最简单方法是为每个产品创建一个 "长链接"

  1. 以您的基本域为例 https://example.app.link
  2. 添加您的深层链接数据作为查询参数。确保对每个查询参数进行URI编码!例如 https://example.app.link?product_id=123&category=shoes
  3. 如果应用未安装' t,则添加任意后备网址 ,例如https://example.app.link?product_id=123&category=shoes&$fallback_url=https%3A%2F%2Fbranch.io%2Funiversal-ads%2F
  4. 最后,添加此字符串,其中包含将数据正确分类所需的分析参数 。如果您想添加更多,那就去吧! %243p=a_criteo&~feature=paid%20advertising

您的最终链接如下所示,并且可以添加其他查询参数。

https://example.app.link?product_id=123&category=shoes&$fallback_url=https%3A%2F%2Fbranch.io%2Funiversal-ads%2F&%243p=a_criteo&~feature=paid%20advertising

为目录创建URI方案深层链接

某些类型的Criteo广告活动需要URI方案样式的深层链接而不是HTTP深层链接。幸运的是,您还可以创建与Branch兼容的URI方案跟踪链接。

  1. 从您的URI方案开始 example://
  2. 追加open?link_click_id=a- 。例如: example://open?link_click_id=a-
  3. 创建链接数据的JSON Blob,包括 "~feature":"paid advertising", "$3p":"a_criteo"

例如:

{"~feature":"paid advertising", "$3p":"a_criteo", "~campaign":"My Summer Campaign", "product_id":1234, "category":"shoes"}
  1. Base64编码您的JSON Blob。

  2. 将其附加到您的基本链接,即可完成'操作!

example://link_click_id=a-eyJ+ZmVhdHVyZSI6InBhaWQgYWR2ZXJ0aXNpbmciLCAiJDNwIjoiYV9jcml0ZW8iLCAifmNhbXBhaWduIjoiTXkgU3VtbWVyIENhbXBhaWduIiwgInByb2R1Y3RfaWQiOjEyMzQsICJjYXRlZ29yeSI6InNob2VzIn0=

4b。静态广告系列深层链接

只需要一个链接?它' S容易使用的仪表盘处创建一个一次性的链接。下面的流程提供了如何创建链接的例子,但你'会想你的Criteo解决方案工程师协商,以指定所需要的。

  1. 首先,在Criteo Partner Manager UI的右上角单击创建广告链接

    图像

  2. 首先,选择一种广告格式。对于App Install或App Engagement广告系列,您'想要选择 Only App 格式。

    要批量为动态产品广告创建链接,请选择产品链接 ,用于购物或动态再营销广告系列。这将带您为具有通用链接和URI方案的Criteo创建深度链接产品Feed

    图像

  3. 如果'已经选择一个简单的应用互动环节,你'会与它的名称开始。选择一些可以在以后需要时轻松找到的内容。您的广告格式和广告合作伙伴应该已经选择,但是如果不是'吨,则可以随意选择。这'是你们等选择合适的广告合作伙伴分析以后很重要。单击配置选项继续。

    图像

  4. 这是您添加深度链接接数据和分析标记的机会。

    • 深度链接数据用于向应用程序提供产品信息,因此应用程序可以将客户带到应用程序中的正确内容。
    • Analytics(分析)标记对于以后的细分非常重要,因此请点击 Analytics (分析子标签添加渠道和广告系列值。

      图像

  5. 点击立即创建链接 ,您就拥有了跟踪链接!以该链接为例,将其提供给您的Criteo解决方案工程师。

    图像

4c。服务器到服务器的跟踪链接

如果只需要服务器到服务器的跟踪链接,则可以使用与上面的选项2相同的流程。

但是,最后添加以下内容:

  • &%24s2s=true 在链接的末尾,因此我们知道这是服务器到服务器的链接。

  • 设备ID宏,对于iOS设备为&%24idfa= ,对于Android设备为&%24aaid=

  • IOS或ANDROID的设备OS宏%24os=

  • 通过URL参数或HTTP标头发送IP客户端的地址。

    • IP标头可覆盖单击时的IP信息。例如x-ip-override: {IP ADDRESS}

    • IP URL参数&device_ip={IP_Address}

进阶设定

添加静态跟踪交易

静态跟踪交易是一个自定义模板,它将替换默认的PURCHASE(跟踪交易)模板。您应该在Criteo Partner Manager UI中的 Postback Config 下看到STATIC_TRACK_TRANSACTION作为事件。您可以从STATIC_TRACK_TRANSACTION复制回发模板,然后将其粘贴到PURCHASE回发中,以替换先前的回发。单击屏幕底部的保存 ,那么'很好!

发送旅行活动的日期

Criteo可以根据旅行搜索日期优化广告系列。要将旅行搜索日期报告给Criteo,请执行以下步骤:

  1. 在您的应用中,使用键dindout向事件中添加自定义元数据 ,并分别使用格式'YYYY-MM-DD' 的日期字符串表示出站和出站航班的日期。
  2. 在“分支”仪表板中,导航到广告合作伙伴管理器“ Criteo”条目中的“ 回发配置
  3. 找到您要编辑的回发,并在相关位置添加以下字符串。例如,对于_VIEW_ITEM_,事件数组中的另一个事件为' 。
{"event":"vs","din":<@json>${(custom_data.din)!}</@json>,"dout":<@json>${(custom_data.dout)!}</@json>}

发送哈希邮件

Criteo接受来自广告系列的哈希电子邮件。要发送哈希电子邮件,请遵循以下逻辑。

  1. 在您的应用中,使用键md5_hashed_email和事件值MD5哈希电子邮件地址向事件添加自定义元数据 。请不要发送未散发的电子邮件到Branch。
  2. 在“分支”仪表板中,导航到广告合作伙伴管理器“ Criteo”条目中的“ 回发配置
  3. 找到您要编辑的回发,并在相关位置添加以下字符串。通常,这将是"events" 数组中的另一个事件。请注意, OPEN INSTALL 事件不支持此参数。
{"event":"setHashedEmail", "email":[<@json>${(custom_data.md5_hashed_email)!}</@json>]}

附录

发送非分支深层链接

Criteo要求在应用打开时将所有深层链接(包括非分支链接)发送到其服务器。科没有按' Ť的连线默认提供这一点,所以你'您需要更新您的SDK初始化支持这一点。

如果使用任何身份验证或登录库,请确保在将所有令牌,密码和其他敏感信息传递给Branch之前,先将其删除。

要将$criteo_deep_link_url 传递给Branch,请将此代码添加到您的AppDelegate或相关的Activity / Application中。您的文件中可能已经包含一些此代码,因此只需复制相关的Branch片段即可。

iOS

- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray *))restorationHandler {

    // NOTE: you should sanitize and ensure no sensitive is passed from
    // userActivity.webpageURL.absolutelString.

    [[Branch getInstance] setRequestMetadataKey:@"$criteo_deep_link_url" value:userActivity.webpageURL.absoluteString];
    [[Branch getInstance] continueUserActivity:userActivity];

    // Process non-Branch userActivities here...
    return YES;
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

    // NOTE: you should sanitize and ensure no sensitive is passed from
    // url.absolutelString.

    [[Branch getInstance] setRequestMetadataKey:@"$criteo_deep_link_url" value:url.absoluteString];
    // Required. Returns YES if Branch link, else returns NO
    [[Branch getInstance]
        application:application
            openURL:url
  sourceApplication:sourceApplication
         annotation:annotation];

    // Process non-Branch URIs here...
    return YES;
}
// repond to universal link URLs
func application(_
        application: UIApplication,
        continue userActivity: NSUserActivity,
        restorationHandler: @escaping ([Any]?) -> Void
    ) -> Bool {

        // NOTE: you should sanitize the webpage URL to ensure no sensitive data is passed.
        Branch.getInstance().setRequestMetadataKey("$criteo_deep_link_url", value: userActivity.webpageURL?.absoluteString);
        let branchHandled = Branch.getInstance().continue(userActivity)
        if (userActivity.activityType == NSUserActivityTypeBrowsingWeb) {
            if let url = userActivity.webpageURL,
               !branchHandled {
               // handle other universal links here.
            }
        }

        // Apply your logic to determine the return value of this method
        return true
    }

    // Respond to URL scheme links
    func application(_ application: UIApplication,
                     open url: URL,
                     sourceApplication: String?,
                     annotation: Any) -> Bool {
        // NOTE: you should sanitize the URI scheme to ensure no sensitive data is passed.
        Branch.getInstance().setRequestMetadataKey("$criteo_deep_link_url", value: url.absoluteString)
        let branchHandled = Branch.getInstance().application(application,
                                                             open: url,
                                                             sourceApplication: sourceApplication,
                                                             annotation: annotation
        )
        if(!branchHandled) {
            // If not handled by Branch, do other deep link routing for the Facebook SDK, Pinterest SDK, etc
        }
        return true
    }

安卓

在应用程序onCreate 或Deep Link Activity ' s onStart初始化之前。
您将要保留onCreateonNewIntent的值。 mIntentData是活动中定义的String字段。

@Override
protected void onCreate() {
    // NOTE: be sure to remove sensitive / PII data from the intent data coming in.
    mIntentData = this.getIntent().getData().toString();
    // other operations below
}

@Override
public void onNewIntent(Intent intent) {
    // NOTE: be sure to remove sensitive / PII data from the intent data coming in.
    mIntentData = this.getIntent().getData().toString();
    // other operations below
}


Branch.getInstance().setRequestMetadata(""$criteo_deep_link_url"", mIntentData);

...

Branch.sessionBuilder(this)...init();

使用setIdentity识别用户

分支允许您标识用户,并将这些用户标识发送给Criteo。

用于标识用户的方法称为setIdentity ,而您设置的值称为developer_identity 。在您的应用程序中的用户登录事件上对此进行设置,Branch会将其用于归因于该用户的所有后续事件。

不要发送带有setIdentity的电子邮件或PII

为了尊重用户隐私,请不要使用姓名,电子邮件或其他可识别信息作为您的开发者身份。

分支和Criteo事件映射

Branch支持全套Criteo事件。请与您的Criteo解决方案工程师联系,以确保您'确定了适合您的应用的事件。

重要的实施细节

  • 对于“分支事件分类”为“ "自定义事件”,“ "事件,必须按下表所示命名事件。

  • 对于具有附加元数据键的事件,必须使用特定键在事件上设置“自定义数据”,以便为您正确配置回发。

例如,对于" UI_STATUS " ,代码段如下所示:

iOS

BranchEvent *event     = [BranchEvent customEventWithName:@"UI_STATUS"];
event.customData       = (NSMutableDictionary*) @{
  "ui_status": "subscriber"
  };
event.logEvent() // Log the event.
let event = BranchEvent.customEventWithName("UI_STATUS")
event.customData       = [
  "ui_status": "subscriber"
]
event.logEvent() // Log the event.

安卓

new BranchEvent("UI_STATUS")
	    .addCustomDataProperty("ui_status", "subscriber")
	    .logEvent(MainActivity.this);
Branch活动名称 店名 分支活动分类 其他元数据键
OPEN 查看主页& app SDK默认 $criteo_deep_link_url
INSTALL 安装 SDK默认 None
VIEW_ITEMS 查看清单 内容事件 None
VIEW_ITEM 查看产品 内容事件 None
VIEW_CART 查看购物篮 商业活动 None
PURCHASE 追踪交易 商业活动 None
PURCHASE* 静态交易 商业活动 None
ACHIEVE_LEVEL 用户界面级别 用户生命周期事件 ui_level
UNLOCK_ACHIEVEMENT UI成就 用户生命周期事件 ui_achievement
COMPLETE_REGISTRATION 注册 用户生命周期事件 None
COMPLETE_TUTORIAL 教程完成 用户生命周期事件 None
UI_STATUS UI状态 自订活动 ui_status
UI_LOGIN UI登录 自订活动 None
SUBSCRIPTION 订阅 自订活动 None
LOW_PRIORITY 低优先级 自订活动 None
HIGH_PRIORITY 高优先级 自订活动 None
ABANDONED_BASKET 被遗弃的篮子 自订活动 None

静态跟踪交易回发可用作“购买回发”的自定义版本。请参阅高级配置进行设置。

2个月前更新


Criteo


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

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