|
@@ -75,9 +75,25 @@
|
|
|
nzTitle="点击率"
|
|
nzTitle="点击率"
|
|
|
[nzValue]="formatPercentage(overallStats.clickThroughRate || 0)"
|
|
[nzValue]="formatPercentage(overallStats.clickThroughRate || 0)"
|
|
|
></nz-statistic>
|
|
></nz-statistic>
|
|
|
|
|
+ <div class="statistic-subtext">
|
|
|
|
|
+ 点击数: {{ overallStats.opened || 0 }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div nz-col [nzSpan]="4">
|
|
<div nz-col [nzSpan]="4">
|
|
|
|
|
+ <nz-statistic
|
|
|
|
|
+ nzTitle="实际点击率"
|
|
|
|
|
+ [nzValue]="
|
|
|
|
|
+ formatPercentage(overallStats.actualClickThroughRate || 0)
|
|
|
|
|
+ "
|
|
|
|
|
+ ></nz-statistic>
|
|
|
|
|
+ <div class="statistic-subtext">
|
|
|
|
|
+ 点击人数: {{ overallStats.openedUsers || 0 }} / 展示人数:
|
|
|
|
|
+ {{ overallStats.displayedUsers || 0 }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <div nz-col [nzSpan]="4">
|
|
|
<nz-statistic
|
|
<nz-statistic
|
|
|
nzTitle="失败率"
|
|
nzTitle="失败率"
|
|
|
[nzValue]="
|
|
[nzValue]="
|
|
@@ -87,7 +103,7 @@
|
|
|
<div class="statistic-subtext">
|
|
<div class="statistic-subtext">
|
|
|
失败数: {{ overallStats.failed || 0 }}
|
|
失败数: {{ overallStats.failed || 0 }}
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div> -->
|
|
|
</div>
|
|
</div>
|
|
|
</nz-card>
|
|
</nz-card>
|
|
|
|
|
|
|
@@ -146,6 +162,20 @@
|
|
|
></span>
|
|
></span>
|
|
|
失败数
|
|
失败数
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span
|
|
|
|
|
+ class="legend-color"
|
|
|
|
|
+ style="background-color: #482880"
|
|
|
|
|
+ ></span>
|
|
|
|
|
+ 展示用户
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span
|
|
|
|
|
+ class="legend-color"
|
|
|
|
|
+ style="background-color: #0066cc"
|
|
|
|
|
+ ></span>
|
|
|
|
|
+ 打开用户
|
|
|
|
|
+ </div>
|
|
|
<div>
|
|
<div>
|
|
|
<span class="legend-line" style="border-color: #13c2c2"></span>
|
|
<span class="legend-line" style="border-color: #13c2c2"></span>
|
|
|
送达率
|
|
送达率
|
|
@@ -158,6 +188,10 @@
|
|
|
<span class="legend-line" style="border-color: #722ed1"></span>
|
|
<span class="legend-line" style="border-color: #722ed1"></span>
|
|
|
点击率
|
|
点击率
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span class="legend-line" style="border-color: #fb56fb"></span>
|
|
|
|
|
+ 实际点击率
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</nz-card>
|
|
</nz-card>
|
|
|
</div>
|
|
</div>
|
|
@@ -257,6 +291,32 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortStrategyTable('displayedUsers')">
|
|
|
|
|
+ 展示用户
|
|
|
|
|
+ <span *ngIf="strategySortField === 'displayedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ strategySortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
|
|
+ <th (click)="sortStrategyTable('openedUsers')">
|
|
|
|
|
+ 打开用户
|
|
|
|
|
+ <span *ngIf="strategySortField === 'openedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ strategySortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortStrategyTable('failed')">
|
|
<th (click)="sortStrategyTable('failed')">
|
|
|
失败数
|
|
失败数
|
|
|
<span *ngIf="strategySortField === 'failed'">
|
|
<span *ngIf="strategySortField === 'failed'">
|
|
@@ -270,6 +330,7 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+
|
|
|
<th (click)="sortStrategyTable('deliveredRate')">
|
|
<th (click)="sortStrategyTable('deliveredRate')">
|
|
|
送达率
|
|
送达率
|
|
|
<span *ngIf="strategySortField === 'deliveredRate'">
|
|
<span *ngIf="strategySortField === 'deliveredRate'">
|
|
@@ -309,6 +370,19 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortStrategyTable('actualClickThroughRate')">
|
|
|
|
|
+ 实际点击率
|
|
|
|
|
+ <span *ngIf="strategySortField === 'actualClickThroughRate'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ strategySortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortStrategyTable('tokenInvalidationRate')">
|
|
<th (click)="sortStrategyTable('tokenInvalidationRate')">
|
|
|
失败率
|
|
失败率
|
|
|
<span *ngIf="strategySortField === 'tokenInvalidationRate'">
|
|
<span *ngIf="strategySortField === 'tokenInvalidationRate'">
|
|
@@ -351,10 +425,15 @@
|
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
|
<td>{{ item.opened || 0 }}</td>
|
|
<td>{{ item.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.openedUsers || 0 }}</td>
|
|
|
<td>{{ item.failed || 0 }}</td>
|
|
<td>{{ item.failed || 0 }}</td>
|
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{ formatPercentage(item.actualClickThroughRate || 0) }}
|
|
|
|
|
+ </td>
|
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr [nzExpand]="item.expanded">
|
|
<tr [nzExpand]="item.expanded">
|
|
@@ -381,10 +460,13 @@
|
|
|
<th>送达数</th>
|
|
<th>送达数</th>
|
|
|
<th>展示数</th>
|
|
<th>展示数</th>
|
|
|
<th>打开数</th>
|
|
<th>打开数</th>
|
|
|
|
|
+ <th>展示人数</th>
|
|
|
|
|
+ <th>打开人数</th>
|
|
|
<th>失败数</th>
|
|
<th>失败数</th>
|
|
|
<th>送达率</th>
|
|
<th>送达率</th>
|
|
|
<th>展示率</th>
|
|
<th>展示率</th>
|
|
|
<th>点击率</th>
|
|
<th>点击率</th>
|
|
|
|
|
+ <th>实际点击率</th>
|
|
|
<th>失败率</th>
|
|
<th>失败率</th>
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
@@ -395,7 +477,10 @@
|
|
|
<td>{{ daily.sent || 0 }}</td>
|
|
<td>{{ daily.sent || 0 }}</td>
|
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
|
|
|
+
|
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.openedUsers || 0 }}</td>
|
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
@@ -406,6 +491,13 @@
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{
|
|
|
|
|
+ formatPercentage(
|
|
|
|
|
+ daily.actualClickThroughRate || 0
|
|
|
|
|
+ )
|
|
|
|
|
+ }}
|
|
|
|
|
+ </td>
|
|
|
<td>
|
|
<td>
|
|
|
{{
|
|
{{
|
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
@@ -515,6 +607,32 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortTemplateTable('displayedUsers')">
|
|
|
|
|
+ 展示用户
|
|
|
|
|
+ <span *ngIf="templateSortField === 'displayedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ templateSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
|
|
+ <th (click)="sortTemplateTable('openedUsers')">
|
|
|
|
|
+ 打开用户
|
|
|
|
|
+ <span *ngIf="templateSortField === 'openedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ templateSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortTemplateTable('failed')">
|
|
<th (click)="sortTemplateTable('failed')">
|
|
|
失败数
|
|
失败数
|
|
|
<span *ngIf="templateSortField === 'failed'">
|
|
<span *ngIf="templateSortField === 'failed'">
|
|
@@ -528,6 +646,7 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+
|
|
|
<th (click)="sortTemplateTable('deliveredRate')">
|
|
<th (click)="sortTemplateTable('deliveredRate')">
|
|
|
送达率
|
|
送达率
|
|
|
<span *ngIf="templateSortField === 'deliveredRate'">
|
|
<span *ngIf="templateSortField === 'deliveredRate'">
|
|
@@ -567,6 +686,19 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortTemplateTable('actualClickThroughRate')">
|
|
|
|
|
+ 实际点击率
|
|
|
|
|
+ <span *ngIf="templateSortField === 'actualClickThroughRate'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ templateSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortTemplateTable('tokenInvalidationRate')">
|
|
<th (click)="sortTemplateTable('tokenInvalidationRate')">
|
|
|
失败率
|
|
失败率
|
|
|
<span *ngIf="templateSortField === 'tokenInvalidationRate'">
|
|
<span *ngIf="templateSortField === 'tokenInvalidationRate'">
|
|
@@ -609,10 +741,15 @@
|
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
|
<td>{{ item.opened || 0 }}</td>
|
|
<td>{{ item.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.openedUsers || 0 }}</td>
|
|
|
<td>{{ item.failed || 0 }}</td>
|
|
<td>{{ item.failed || 0 }}</td>
|
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{ formatPercentage(item.actualClickThroughRate || 0) }}
|
|
|
|
|
+ </td>
|
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr [nzExpand]="item.expanded">
|
|
<tr [nzExpand]="item.expanded">
|
|
@@ -639,10 +776,13 @@
|
|
|
<th>送达数</th>
|
|
<th>送达数</th>
|
|
|
<th>展示数</th>
|
|
<th>展示数</th>
|
|
|
<th>打开数</th>
|
|
<th>打开数</th>
|
|
|
|
|
+ <th>展示人数</th>
|
|
|
|
|
+ <th>打开人数</th>
|
|
|
<th>失败数</th>
|
|
<th>失败数</th>
|
|
|
<th>送达率</th>
|
|
<th>送达率</th>
|
|
|
<th>展示率</th>
|
|
<th>展示率</th>
|
|
|
<th>点击率</th>
|
|
<th>点击率</th>
|
|
|
|
|
+ <th>实际点击率</th>
|
|
|
<th>失败率</th>
|
|
<th>失败率</th>
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
@@ -654,6 +794,8 @@
|
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.openedUsers || 0 }}</td>
|
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
@@ -664,6 +806,13 @@
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{
|
|
|
|
|
+ formatPercentage(
|
|
|
|
|
+ daily.actualClickThroughRate || 0
|
|
|
|
|
+ )
|
|
|
|
|
+ }}
|
|
|
|
|
+ </td>
|
|
|
<td>
|
|
<td>
|
|
|
{{
|
|
{{
|
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
@@ -761,6 +910,28 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortCcTable('displayedUsers')">
|
|
|
|
|
+ 展示用户
|
|
|
|
|
+ <span *ngIf="ccSortField === 'displayedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ ccSortDirection === 'ascend' ? 'caret-up' : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
|
|
+ <th (click)="sortCcTable('openedUsers')">
|
|
|
|
|
+ 打开用户
|
|
|
|
|
+ <span *ngIf="ccSortField === 'openedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ ccSortDirection === 'ascend' ? 'caret-up' : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortCcTable('failed')">
|
|
<th (click)="sortCcTable('failed')">
|
|
|
失败数
|
|
失败数
|
|
|
<span *ngIf="ccSortField === 'failed'">
|
|
<span *ngIf="ccSortField === 'failed'">
|
|
@@ -805,6 +976,17 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortCcTable('actualClickThroughRate')">
|
|
|
|
|
+ 实际点击率
|
|
|
|
|
+ <span *ngIf="ccSortField === 'actualClickThroughRate'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ ccSortDirection === 'ascend' ? 'caret-up' : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortCcTable('tokenInvalidationRate')">
|
|
<th (click)="sortCcTable('tokenInvalidationRate')">
|
|
|
失败率
|
|
失败率
|
|
|
<span *ngIf="ccSortField === 'tokenInvalidationRate'">
|
|
<span *ngIf="ccSortField === 'tokenInvalidationRate'">
|
|
@@ -836,10 +1018,15 @@
|
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
|
<td>{{ item.opened || 0 }}</td>
|
|
<td>{{ item.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.openedUsers || 0 }}</td>
|
|
|
<td>{{ item.failed || 0 }}</td>
|
|
<td>{{ item.failed || 0 }}</td>
|
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{ formatPercentage(item.actualClickThroughRate || 0) }}
|
|
|
|
|
+ </td>
|
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr [nzExpand]="item.expanded">
|
|
<tr [nzExpand]="item.expanded">
|
|
@@ -866,10 +1053,13 @@
|
|
|
<th>送达数</th>
|
|
<th>送达数</th>
|
|
|
<th>展示数</th>
|
|
<th>展示数</th>
|
|
|
<th>打开数</th>
|
|
<th>打开数</th>
|
|
|
|
|
+ <th>展示人数</th>
|
|
|
|
|
+ <th>打开人数</th>
|
|
|
<th>失败数</th>
|
|
<th>失败数</th>
|
|
|
<th>送达率</th>
|
|
<th>送达率</th>
|
|
|
<th>展示率</th>
|
|
<th>展示率</th>
|
|
|
<th>点击率</th>
|
|
<th>点击率</th>
|
|
|
|
|
+ <th>实际点击率</th>
|
|
|
<th>失败率</th>
|
|
<th>失败率</th>
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
@@ -881,6 +1071,8 @@
|
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.openedUsers || 0 }}</td>
|
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
@@ -891,6 +1083,13 @@
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{
|
|
|
|
|
+ formatPercentage(
|
|
|
|
|
+ daily.actualClickThroughRate || 0
|
|
|
|
|
+ )
|
|
|
|
|
+ }}
|
|
|
|
|
+ </td>
|
|
|
<td>
|
|
<td>
|
|
|
{{
|
|
{{
|
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
@@ -988,6 +1187,32 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortImageTable('displayedUsers')">
|
|
|
|
|
+ 展示用户
|
|
|
|
|
+ <span *ngIf="imageSortField === 'displayedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ imageSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
|
|
+ <th (click)="sortImageTable('openedUsers')">
|
|
|
|
|
+ 打开用户
|
|
|
|
|
+ <span *ngIf="imageSortField === 'openedUsers'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ imageSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortImageTable('failed')">
|
|
<th (click)="sortImageTable('failed')">
|
|
|
失败数
|
|
失败数
|
|
|
<span *ngIf="imageSortField === 'failed'">
|
|
<span *ngIf="imageSortField === 'failed'">
|
|
@@ -1040,6 +1265,19 @@
|
|
|
></i>
|
|
></i>
|
|
|
</span>
|
|
</span>
|
|
|
</th>
|
|
</th>
|
|
|
|
|
+ <th (click)="sortImageTable('actualClickThroughRate')">
|
|
|
|
|
+ 实际点击率
|
|
|
|
|
+ <span *ngIf="imageSortField === 'actualClickThroughRate'">
|
|
|
|
|
+ <i
|
|
|
|
|
+ nz-icon
|
|
|
|
|
+ [nzType]="
|
|
|
|
|
+ imageSortDirection === 'ascend'
|
|
|
|
|
+ ? 'caret-up'
|
|
|
|
|
+ : 'caret-down'
|
|
|
|
|
+ "
|
|
|
|
|
+ ></i>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </th>
|
|
|
<th (click)="sortImageTable('tokenInvalidationRate')">
|
|
<th (click)="sortImageTable('tokenInvalidationRate')">
|
|
|
失败率
|
|
失败率
|
|
|
<span *ngIf="imageSortField === 'tokenInvalidationRate'">
|
|
<span *ngIf="imageSortField === 'tokenInvalidationRate'">
|
|
@@ -1084,10 +1322,15 @@
|
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
<td>{{ item.delivered || 0 }}</td>
|
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
<td>{{ item.displayCount || 0 }}</td>
|
|
|
<td>{{ item.opened || 0 }}</td>
|
|
<td>{{ item.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ item.openedUsers || 0 }}</td>
|
|
|
<td>{{ item.failed || 0 }}</td>
|
|
<td>{{ item.failed || 0 }}</td>
|
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.deliveredRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.displayRate || 0) }}</td>
|
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.clickThroughRate || 0) }}</td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{ formatPercentage(item.actualClickThroughRate || 0) }}
|
|
|
|
|
+ </td>
|
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
<td>{{ formatPercentage(item.tokenInvalidationRate || 0) }}</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr [nzExpand]="item.expanded">
|
|
<tr [nzExpand]="item.expanded">
|
|
@@ -1114,10 +1357,14 @@
|
|
|
<th>送达数</th>
|
|
<th>送达数</th>
|
|
|
<th>展示数</th>
|
|
<th>展示数</th>
|
|
|
<th>打开数</th>
|
|
<th>打开数</th>
|
|
|
|
|
+ <th>展示人数</th>
|
|
|
|
|
+ <th>打开人数</th>
|
|
|
<th>失败数</th>
|
|
<th>失败数</th>
|
|
|
<th>送达率</th>
|
|
<th>送达率</th>
|
|
|
<th>展示率</th>
|
|
<th>展示率</th>
|
|
|
<th>点击率</th>
|
|
<th>点击率</th>
|
|
|
|
|
+
|
|
|
|
|
+ <th>实际点击率</th>
|
|
|
<th>失败率</th>
|
|
<th>失败率</th>
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
@@ -1129,6 +1376,8 @@
|
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
<td>{{ daily.delivered || 0 }}</td>
|
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
<td>{{ daily.displayCount || 0 }}</td>
|
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
<td>{{ daily.opened || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.displayedUsers || 0 }}</td>
|
|
|
|
|
+ <td>{{ daily.openedUsers || 0 }}</td>
|
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
<td>{{ daily.failed || 0 }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
{{ formatPercentage(daily.deliveredRate || 0) }}
|
|
@@ -1139,6 +1388,14 @@
|
|
|
<td>
|
|
<td>
|
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
{{ formatPercentage(daily.clickThroughRate || 0) }}
|
|
|
</td>
|
|
</td>
|
|
|
|
|
+
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {{
|
|
|
|
|
+ formatPercentage(
|
|
|
|
|
+ daily.actualClickThroughRate || 0
|
|
|
|
|
+ )
|
|
|
|
|
+ }}
|
|
|
|
|
+ </td>
|
|
|
<td>
|
|
<td>
|
|
|
{{
|
|
{{
|
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|
|
formatPercentage(daily.tokenInvalidationRate || 0)
|