2017-08-24 6 views
0

質問があります - 「Deal Viewed」と「Deal Claimed」を表示するにはどうすればよいですか?event_selectorsにこれらの2つのイベントを含めて見ることができますその取引を見た人たちは、取引を主張した。しかし、私はORの代わりにANDが必要です。Mixpanel JQLフィルタAND条件の2つのイベント

Below is my jql  
    function main() {  
     return join( 
     Events({  
     from_date: '2017-08-24', 
     to_date: '2017-08-24',  
     event_selectors:[{event:"Offer Viewed", selector: 'properties["Offer  
     Type"]=="Deal"' && 'properties["Offer 
    Title"]=="testDealtestDealtestDeal"'},  
          {event:"Offer Claimed"}]  
     }),   
    People(),  
    { type:"inner"}  
    );  
    }   

答えて

0

私はこれを直接行うことはできないと思います。あなたができることは、AND条件に一致するプロファイルID、つまり両方のイベントを送信したプロファイルを見つけることです。あなたはこのようなイベントにグループ化する使用して行うことができます。)

function main() { 
    return Events({ 
    from_date: '2017-11-23', 
    to_date: '2017-11-24', 
    event_selectors: [ 
     { event: "Offer Viewed", selector: 'properties["Offer  
    Type"] == "Deal"'}, 
     { event: "Offer Claimed"} 
    ] 
    }) 

    // Find unique event-name/ID pairs. There will be 1-2 rows for each ID. 
    .groupBy(["name", "properties.$id"], mixpanel.reducer.any()) 
    .map(e => { return {"event" : e.key[0], "id" : e.key[1]} }) 

    // Find IDs for profiles that sent both events 
    // (i.e. that are returning 2 items after grouping on ID) 
    .groupBy(["id"], mixpanel.reducer.count()) 
    .filter(e => { return e.value === 2}) 
    .map(e => { return {"id" : e.key[0]} }) 
} 

をしかし、あなたが人々(と、それに参加しようとしたとき、あなたはJQLのこの制限で立ち往生にバインドされています:

Error validating script: Uncaught exception Error: join(Events(), People()) is the only form of join JQL supports. 
    return join(

これを回避する方法の1つは、イベントを送信するたびにプロファイルプロパティを設定することです。私たちがたくさん使っているのは、Offer Viewedを送ったときにプロファイルの更新を行い、プロファイルのプロパティをOffer Viewed At=$timestampに設定するパターンです。そうすれば、イベントでの作業を省略して、プロファイルのプロパティでフィルタリングするだけで済みます。

あなたの他の選択肢は上記のクエリを使用して、残りのイベントをイベントのレベルで取得することです。