修复adjust归因失败
This commit is contained in:
@@ -129,11 +129,12 @@ class CloakAdSourceGuard
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $enabledPlatforms PLATFORM_* 常量列表
|
||||
* @param string $spmId
|
||||
* @param array $enabledPlatforms PLATFORM_* 常量列表
|
||||
* @param string $spmId
|
||||
* @param string|array|null $fpUrls DB_FP 真实页 URL(用于 Adjust 宏检测)
|
||||
* @return string query 字符串(不含前导 ?)
|
||||
*/
|
||||
public static function buildAdLinkQuery(array $enabledPlatforms, $spmId)
|
||||
public static function buildAdLinkQuery(array $enabledPlatforms, $spmId, $fpUrls = null)
|
||||
{
|
||||
$spmId = trim((string) $spmId);
|
||||
if (empty($enabledPlatforms)) {
|
||||
@@ -154,6 +155,10 @@ class CloakAdSourceGuard
|
||||
}
|
||||
}
|
||||
|
||||
if (in_array(self::PLATFORM_FB, $enabledPlatforms, true)) {
|
||||
$parts = array_merge($parts, self::buildAdjustMacroQueryParts($fpUrls));
|
||||
}
|
||||
|
||||
if ($spmId !== '') {
|
||||
$parts[] = 'ad_spm_id=' . rawurlencode($spmId);
|
||||
}
|
||||
@@ -161,6 +166,41 @@ class CloakAdSourceGuard
|
||||
return implode('&', $parts);
|
||||
}
|
||||
|
||||
/**
|
||||
* DB_FP 为 Adjust 链接时,追加 p1–p6 等 Facebook 宏到广告链接
|
||||
*
|
||||
* @param string|array|null $fpUrls
|
||||
* @return string[]
|
||||
*/
|
||||
private static function buildAdjustMacroQueryParts($fpUrls)
|
||||
{
|
||||
require_once __DIR__ . '/Cloak/AttributionUrlMerger.php';
|
||||
|
||||
$fpUrl = '';
|
||||
if (is_array($fpUrls)) {
|
||||
foreach ($fpUrls as $url) {
|
||||
$url = trim((string) $url);
|
||||
if ($url !== '') {
|
||||
$fpUrl = $url;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$fpUrl = trim((string) $fpUrls);
|
||||
}
|
||||
|
||||
if ($fpUrl === '' || !AttributionUrlMerger::needsAttributionMerge($fpUrl)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$parts = [];
|
||||
foreach (AttributionUrlMerger::parseAdjustMacroKeys($fpUrl) as $key => $macro) {
|
||||
$parts[] = rawurlencode((string) $key) . '=' . $macro;
|
||||
}
|
||||
|
||||
return $parts;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成 10–12 位随机字母数字 ad_spm_id
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user