Opportunity Targeting
Opportunity Targeting
Section titled “Opportunity Targeting”Matching respondents to the right opportunity is an important part of the REX integration. To target effectively, it’s helpful to understand how all the different parts works together. We’ve created some high-level diagrams to try to help simplify and unite the different targeting pieces.
Please Note
Section titled “Please Note”This is meant to be supplemental to our Opportunity Registry documentation. You can find the full details about opportunity targeting here.
Filters
Section titled “Filters”The three main components of filters are filter groups, filter objects and filters cells. For a respondent to successfully match filters they must do the following.
No Filters
Section titled “No Filters”Please note that it is common for
opportunitiesto have nofiltersdefined. In this case, everyone will qualify as long as they match the specified country, language, targeted device types, and open quota cells.
flowchart TB
f[filters]:::main -.-
fdes("Match all<br>filter groups.")
%% style f fill:#EC4A31,color:#fff
g(filter groups) -.-
gdes("Match at least<br/>one filter object.")
%% style g fill:#FFA799
o(filter objects) -.-
odes("Match ALL <br/>filter cells.")
%% style o fill:#FDCAA3
c([filter cells]) -.-
cdes("Match cell<br/>criteria.")
%% style c fill:#FCE3AB
%% main style
%% classDef main stroke:#1B365D,color:#000,padding:8px
%% class f,g,o,c main
%% description style
%% classDef desc fill:#EEF8FC,color:#000,stroke-width:0
%% class fdes,gdes,odes,cdes desc
%% link style
linkStyle 0,1,2,3 display:none
- Match all
filter groups. - To match a
filter groupa respondent must match at least 1filter objectof thefilter group. - Lastly, to match a
filter groupa respondent must match allfilter cellswithin thefilter object.
Match ✓
Section titled “Match ✓”flowchart TB
subgraph C
direction TB
gc ===
o5(OBJ):::o ===
c5a([CELL]):::c ===
c5b([CELL]):::c ===
GC2(("✓")):::match
gc[GRP]:::g ===
o4(OBJ):::o ===
c4a([CELL]):::c ===
c4b([CELL]):::c ===
GC1(("✓")):::match
end
subgraph B
direction TB
ga[GRP]:::g ===
o1(OBJ):::o ===
c1([CELL]):::c ===
GA(("✓")):::match
end
subgraph A
direction TB
gb(GRP):::g ---
o3(OBJ):::o ---
c3([CELL]):::c -.-
GB2(("⚠")):::mismatch
gb[GRP]:::g ===
o2(OBJ):::o ===
c2c([CELL]):::c === c2b([CELL]):::c === c2a([CELL]):::c ===
GB(("✓")):::match
end
Filter Mismatch ⚠
Section titled “Filter Mismatch ⚠”flowchart TB
subgraph "C"
direction TB
gc[GRP]:::g ---
o5(OBJ):::o ---
c5a([CELL]):::c -.-
GC2(("⚠")):::mismatch
gc ---
o4(OBJ):::o ---
c4a([CELL]):::c ---
c4b([CELL]):::c ---
c4c([CELL]):::c -.-
GC1(("⚠")):::mismatch
end
subgraph B
direction TB
ga[GRP]:::g ===
o1(OBJ):::o ===
c1a([CELL]):::c ===
c1b([CELL]):::c ===
GA(("✓")):::match
end
subgraph A
direction TB
gb[GRP]:::g ---
o2(OBJ):::o ---
c2a([CELL]):::c -.-
c2b([CELL]):::c -.-
GB2(("⚠")):::mismatch
gb ===
o3(OBJ):::o ===
c3a([CELL]):::c ===
c3b([CELL]):::c ===
c3c([CELL]):::c ===
GB(("✓")):::match
end
Filter Outline
Section titled “Filter Outline”flowchart TB
f[filter] --- fg1[filter group] & fg2[filter group] & fg3[filter group]
%% style f fill:#EC4A31,color:white
fg1:::g === fo1(filter object):::o === fc1([filter cell]):::c -.-
fc1val("attribute_id: 80<br/>negate: false<br/>range:<br/> from: 18<br/> to: 99"):::val -.-
fc1des("Include attribute 80<br/>values from 18 to 99."):::desc
fg2:::g === fo2(filter object):::o === fc2([filter cell]):::c -.-
fc2val("attribute_id: 1<br/>negate: true<br/>value: 1"):::val -.-
fc2des("Exclude attribute 1<br/>value 1"):::desc
fg3:::g === fo3(filter object):::o === fc3([filter cell]):::c -.-
fc3val("attribute_id: 8<br/>negate: false<br/>collection: 2169971"):::val -.-
fc3des("Include attribute 8<br/>values in collection 2169971 "):::desc
%% classDef g fill:#FFA799,color:#000,stroke:#1B365D
%% classDef o fill:#FDCAA3,color:#000,stroke:#1B365D
%% classDef c fill:#FCE3AB,color:#000,stroke:#1B365D
%% value style
%% classDef val fill:#000,color:#fafafa,stroke:#333
%% description style
%% classDef desc fill:#EEF8FC,color:#000,stroke-width:0
%% class fdes,gdes,odes,cdes desc
%% link style
linkStyle 6,10,14 display:none
Quotas
Section titled “Quotas”Quotas are very similar to filters, they are made up of quota groups, quota objects and quota cells. For a respondent to successfully match quotas they must meet the following criteria.
flowchart
q[quota]:::q -.-
fdes("Match all<br/>quota groups")
%% style q fill:#217AB5,color:#fff
g(quota groups):::g -.-
gdes("Match at least<br/>one quota object.")
%% style g fill:#95CFEC
o(quota objects):::o -.-
odes("Match all<br/>quota cells, count is <br/>greater than 0, and<br/>status is OPEN.")
%% style o fill:#DAE3F7
c([quota cells]):::c -.-
cdes("Match cell<br/>criteria.")
%% style c fill:#FCE3AB
%% main style
%% classDef main stroke:#1B365D,color:#000,padding:8px
%% class q,g,o,c main
%% description style
%% classDef desc fill:#EEF8FC,color:#000,stroke-width:0
%% class fdes,gdes,odes,cdes desc
%% link style
linkStyle 0,1,2,3 display:none
- Match all
quota groups. - To match a
quota groupa respondent must match at least1quota objectin thequota group. - The
quota groupmust have anOPENvalue forstatus, and thecountmust be greater than0.Warning!
Section titled “Warning!” - Additionally to match a
quota groupa respondent must match allquota cellswithin thequota object.
Match ✓
Section titled “Match ✓”flowchart TB
subgraph C
direction TB
qc[GRP]:::g ===
o5(OBJ):::o ===
o5des(OPEN<br>50):::desc ===
c5a([CELL]):::c ===
c5b([CELL]):::c ===
QC0(("✓")):::match
qc -.-
o6(OBJ):::o -.-
o6des(PAUSED<br>30):::desc -.-
c6a([CELL]):::c -.-
c6b([CELL]):::c -.-
c6c([CELL]):::c
end
subgraph B
direction TB
qb[GRP]:::g -.-
o2(OBJ):::o -.-
o2des(CLOSED<br>0):::desc -.-
c2a([CELL]):::c -.-
c2b([CELL]):::c
qb ===
o3(OBJ):::o ===
o3des(OPEN<br>60):::desc ===
c3a([CELL]):::c ===
c3b([CELL]):::c ===
QB0(("✓")):::match
qb ---
o4(OBJ):::o ---
o4des(OPEN<br>10):::desc ---
c4c([CELL]):::c -.-
c4b([CELL]):::c -.-
c4a([CELL]):::c
end
subgraph A
direction TB
qa[GRP]:::g ===
o1(OBJ):::o ===
o1des(OPEN<br>80):::desc ===
c1b([CELL]):::c ===
c1a([CELL]):::c ===
QA0(("✓")):::match
end
Quota Mismatch ⚠
Section titled “Quota Mismatch ⚠”flowchart TB
subgraph C
direction TB
qc[GRP]:::g ---
o5(OBJ):::o ---
o5des(OPEN<br>50):::desc ---
c5a([CELL]):::c -.-
c5b([CELL]):::c -.-
QC0(("⚠")):::mismatch
qc -.-
o6(OBJ):::o -.-
o6des(CLOSED<br>0):::desc -.-
c6a([CELL]):::c -.-
c6b([CELL]):::c
end
subgraph B
direction TB
qb[GRP]:::g ---
o2(OBJ):::o ---
o2des(OPEN<br>10):::desc ---
c2a([CELL]):::c ---
c2b([CELL]):::c -.-
QB0(("⚠")):::mismatch
qb -.-
o3(OBJ):::o -.-
o3des(PAUSED<br>70):::desc -.-
c3a([CELL]):::c -.-
c3b([CELL]):::c -.-
c3c([CELL]):::c
qb ---
o4(OBJ):::o ---
o4des(OPEN<br>10):::desc ---
c4a([CELL]):::c ---
c4b([CELL]):::c ---
c4c([CELL]):::c -.-
QB1(("⚠")):::mismatch
end
subgraph A
direction TB
qa[GRP]:::g ===
o1(OBJ):::o ===
o1des(OPEN<br>80):::desc ===
c1a([CELL]):::c ===
c1b([CELL]):::c ===
QA0(("✓")):::match
end
Quota Group Outline
Section titled “Quota Group Outline”flowchart TB
qg[quota group] --- qo1(quota object) & qo2(quota object) & qo3(quota object)
%% style qg fill:#95CFEC
qo1:::o === qo1val["status: CLOSED<br>count: 100"]:::val ---
qc1([quota cell]):::c === qc1val("attribute_id: 80<br>negate: true<br>range: <br> from: 18<br> to: 24"):::val -.-
qc2([quota cell]):::c === qc2val("attribute_id: 1<br>negate: false<br>value: 1"):::val -.-
qo1des("Exclude attribute 80 <br>values from 18 to 24.<br>Include attribute 1 <br>value 1"):::desc
qo2:::o === qo2val["status: PAUSED<br>count: 45"]:::val ---
qo2des("PAUSED quota<br>objects will result<br>in termination"):::desc -.-
qc3([quota cell]):::c === qc3val("attribute_id: 80<br>negate: false<br>range: <br> from: 18<br>
to: 24"):::val -.-
qc4([quota cell]):::c === qc4val("attribute_id: 1<br>negate: true<br>range: 1"):::val
qo3:::o === qo3val["status: CLOSED<br>count: 10"]:::val ---
qo3des("CLOSED quota<br>objects will result in<br>termination"):::desc -.-
qc5([quota cell]):::c ===
qc5val("attribute_id: 80<br>negate: false<br>range:<br> from: 18<br> to: 24"):::val
%% classDef o fill:#DAE3F7,stroke:#1B365D
%% classDef c fill:#FCE3AB,stroke:#1B365D
%% value style
%% classDef val fill:#000,color:#fafafa,stroke:#333
%% description style
%% classDef desc fill:#EEF8FC,color:#000,stroke-width:0
%% opacity
%% classDef opa opacity:.59
%% class qc3,qc3val,qc4,qc4val,qc5,qc5val opa
%% link
linkStyle 12,13,14,18 opacity:.59
%% link style
linkStyle 8,10,11,16,17 display:none
Opportunity
Section titled “Opportunity”Match ✓
Section titled “Match ✓”flowchart LR
%% start --- filter
%% b[end] --- quota
subgraph filter
direction TB
fg1[GRP]:::fg ===
fo1a(OBJ):::fo ===
fc1a([CELL]):::c ===
fc1b([CELL]):::c ===
fg1stat(("✓")):::match
fg2[GRP]:::fg ===
fo2a[OBJ]:::fo ===
fc2a([CELL]):::c ===
fg2stat(("✓")):::match
end
subgraph quota
direction TB
qg1[GRP]:::qg ===
qo1a(OBJ):::qo ===
qo1ades["OPEN<br>60"]:::desc ===
qc1a([CELL]):::c ===
qc1b([CELL]):::c ===
qg1stat(("✓")):::match
qg2[GRP]:::qg ===
qo2a(OBJ):::qo ===
qo2ades["OPEN<br>50"]:::desc ===
qc2a([CELL]):::c ===
qg2stat(("✓")):::match
qg2[GRP] -.-
qo3a(OBJ):::qo -.-
qo3ades["PAUSED<br>50"]:::desc -.-
qc3a([CELL]):::c -.-
qc3b([CELL]):::c -.-
qc3c([CELL]):::c
end
filter === quota
Filter Mismatch ⚠
Section titled “Filter Mismatch ⚠”flowchart LR
%% start --- filter
%% b[end] --- quota
subgraph filter
direction TB
fg1[GRP]:::fg ===
fo1a(OBJ):::fo ===
fc1a([CELL]):::c ===
fc1b([CELL]):::c ===
fg1stat(("✓")):::match
fg2[GRP]:::fg -.-
fo2a[OBJ]:::fo ---
fc2a([CELL]):::c ---
fg2stat(("⚠")):::mismatch
end
subgraph quota
direction TB
qg1[GRP]:::qg -.-
qo1a(OBJ):::qo -.-
qo1ades["OPEN<br>60"]:::desc -.-
qc1a([CELL]):::c -.-
qc1b([CELL]):::c
qg2[GRP]:::qg -.-
qo2a(OBJ):::qo -.-
qo2ades["OPEN<br>50"]:::desc -.-
qc2a([CELL]):::c
qg2[GRP]:::qg -.-
qo3a(OBJ):::qo -.-
qo3ades["PAUSED<br>50"]:::desc -.-
qc3a([CELL]):::c -.-
qc3b([CELL]):::c -.-
qc3c([CELL]):::c
end
filter -.- quota
Quota Mismatch ⚠
Section titled “Quota Mismatch ⚠”flowchart LR
%% start --- filter
%% b[end] --- quota
subgraph filter
direction TB
fg1[GRP]:::fg ===
fo1a(OBJ):::fo ===
fc1a([CELL]):::c ===
fc1b([CELL]):::c ===
fg1stat(("✓")):::match
fg2[GRP]:::fg ===
fo2a[OBJ]:::fo ===
fc2a([CELL]):::c ===
fg2stat(("✓")):::match
end
subgraph quota
direction TB
qg1[GRP]:::qg ===
qo1a(OBJ):::qo ===
qo1ades["OPEN<br>60"]:::desc ===
qc1a([CELL]):::c ===
qc1b([CELL]):::c ===
qg1stat(("✓")):::match
qg2[GRP]:::qg -.-
qo2a(OBJ):::qo -.-
qo2ades["CLOSED<br>30"]:::desc -.-
qc2a([CELL]):::c -.-
qc2b([CELL]):::c -.-
qc2c([CELL]):::c
qg2[GRP]:::qg -.-
qo3a(OBJ):::qo ---
qo3ades["OPEN<br>50"]:::desc ---
qc3a([CELL]):::c ---
qc3b([CELL]):::c -.-
qg2stat(("⚠")):::mismatch
end
filter === quota