スマートスクリプトの機能 マーケターの要件に従って設定が行われている限り、スマートスクリプトは正確なWeb-to-Appアトリビューションを提供します。開発者が追加の変更を行う必要がある場合は、スクリプトをカスタマイズすることが可能です。以下のセクションでは、スクリプト内のさまざまなプロパティと機能を順を追って説明し、例を紹介します。
ログレベルを設定する 必要に応じて、setLogLevel関数を使用してブラウザーのコンソールのログレベルを設定します。createLink関数を呼び出す前に、この機能を呼び出す必要があります。引数はdebug、warn、error、noneを指定できます。デフォルトのログレベル値はdebugです。
AdjustSmartScript.setLogLevel('warn')
リンクを作成する 指定されたマッピングオブジェクトのプロパティを使用してAdjustリンクを作成するには、createLink関数を使用してください。
const mapping = { /* mapping object properties */ }
AdjustSmartScript.createLink(mapping)
スクリプトのバージョンを取得する スマートスクリプトのバージョンを確認するには、getVersion関数を使用します。
AdjustSmartScript.getVersion()
createLink
メソッドには、mapping
オブジェクトを渡す必要があります。また、mapping
オブジェクトには、以下のプロパティを必ず定義してください。
defaultLinkToken
(string
)ネットワークリンクトークンが適用されない場合、またはネットワーク設定が提供されない場合に使用されるリンクトークン。 campaign
(object
)キャンペーン情報を含むオブジェクト。 adgroup
(object
)アドグループ情報を含むオブジェクト。 creative
(object
)クリエイティブ情報を含むオブジェクト。 campaign
、 adgroup
、および creative
オブジェクトには、以下のプロパティを含める必要があります。
in
(string | string[]
)キャンペーン、アドグループ、またはクリエイティブの名前として使用される、URL検索クエリ文字列のキーを指定する文字列、または文字列の配列
配列が渡されると、スクリプトはGETパラメーターから名前を見つけ、transform
関数が存在する場合はそれら全てを渡します。指定がない場合、スクリプトは最初に見つかった空でない値をキャンペーン、広告グループ、またはクリエイティブの名前として使用します。 また、以下のプロパティも指定できます。
transform
(function
)in
の値で呼び出される関数。キャンペーン、アドグループ、またはクリエイティブの最終的な名称として使用される文字列値を返します。transform
が文字列を返さない場合やエラーを返した場合、スクリプトは最初に見つかった空でない値をそれぞれの名称として使用します。defaultValue
(string
)in
の値がtransform
関数で見つからない場合に使用します。ディープリンクを実装している場合は、mapping
オブジェクトで次のパラメーターを定義する必要があります。
domain
(string
)ブランドドメイン。 ディープリンクを実装していない場合は、ブランドドメインを定義できます。ドメインが指定されていない場合は、app.adjust.com
リンクが作成されます。 iosAppSchema
(string
)iOSのアプリスキーム。 androidAppSchema
(string
)Androidのアプリスキーム。 ディープリンクを実装している場合は、以下のパラメーターを定義できます。
iosDeeplinkPath
(string
)iOSのディープリンクパス。 androidDeeplinkPath
(string
)Androidのディープリンクパス。 mapping
オブジェクトでは、以下のパラメーターを定義できます。
inputUrl
(string
)モバイルサイトのランディングページのURL。値を指定しない場合、スクリプトは window.location.href
値を現在のページURLとして使用します。 label (
object`)このパラメーターを使用すると、カスタムデータを送信できます。詳細については、ヘルプセンターのドキュメントをご覧ください。 networks
(object
)ネットワーク情報を含むキーと値のオブジェクト。 networks
オブジェクトには、ネットワーク名を表す少なくとも1つのキーを含める必要があります。以下のキーがサポートされています。
値は、以下のプロパティを含むオブジェクトである必要があります。
linkToken
(string
)キーで定義されたネットワークのリンクトークン。 customParameters
(object
)カスタムパラメーターの情報を含むオブジェクト。 customParameters
オブジェクトには、以下のプロパティを含める必要があります。
in
(string | string[]
)カスタム名として使用するURL検索クエリ文字列のキーとなる文字列または文字列の配列。 配列が渡されると、スクリプトはGETパラメーターから名前を見つけ、transform
関数が存在する場合はそれら全てを渡します。指定がない場合、スクリプトは最初に見つかった空でない値をカスタム名として使用します。 out
(string
)Adjustリンクに書き込むカスタムパラメーター名を指定する文字列。 また、以下のプロパティも指定できます。
transform
(function
)in
の値で呼び出される関数。最終的なカスタム名である文字列値を返します。transform
が文字列を返さない場合やエラーを返した場合、スクリプトは最初に見つかった空でない値をカスタム名として使用します。defaultValue
(string
)in
の値がtransform
関数で見つからない場合に使用します。全て展開する
リンクトークンとキャンペーンパラメーターを使用する
const mapping = {
inputUrl: "https://www.landing.com?campaign_name=Summer2024&ad_group=SomeGroup",
defaultLinkToken: "abcd123",
campaign: { in: "campaign_name" },
adgroup: { in: "ad_group" },
creative: { in: "element" }
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://app.adjust.com/abcd123?campaign=Summer2024&adgroup=SomeGroup
ネットワークプロパティを持つ様々なパートナーにリンクトークンを設定する
const mapping = {
defaultLinkToken: "abcd1234",
networks: {
meta: { linkToken: 'efgh5678'},
google_ads: { linkToken: 'ijkl9012' }
},
campaign: { in: "c" },
adgroup: { in: "a" },
creative: { in: "cr" }
}
const link1 = AdjustSmartScript.createLink({
...mapping,
inputUrl: "https://www.landing.com?c=Summer2024&a=SomeGroup&cr=banner&gclid=CLICK_ID"
});
console.log(link1)
// expected output: https://app.adjust.com/ijkl9012?gclid=CLICK_ID&campaign=Summer2024&adgroup=SomeGroup&creative=banner
const link2 = AdjustSmartScript.createLink({
...mapping,
inputUrl: "https://www.landing.com?c=Winter2025&a=AnotherGroup&cr=image&fbclid=FB_CLICK_ID"
});
console.log(link2)
// expected output: https://app.adjust.com/efgh5678?fbclid=FB_CLICK_ID&campaign=Winter2025&adgroup=AnotherGroup&creative=image
transformプロパティとdefaultValueプロパティを使用して、Adjustリンクの値を書き換える
const mapping = {
inputUrl: "https://www.landing.com?utm_content=logo_image&utm_medium=social&utm_source=some-source&utm_campaign=new_campaign",
defaultLinkToken: "example123",
domain: "branded.go.link",
campaign: {
in: "utm_campaign",
defaultValue: "dummy-name"
},
adgroup: {
in: ["utm_source", "utm_medium"],
transform: function(values) { return (values[0] && values[1]) ? `${values[0]}: ${values[1]}` : undefined; }
},
creative: {
in: "utm_content",
transform: function(values) { return values[0] ? `ad_${values[0]}` : 'ad_default' }
}
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://branded.go.link?adj_token=example123&adj_campaign=new_campaign&adj_adgroup=some-source%3A%20social&adj_creative=ad_logo_image
Adjustリンクにカスタムパラメーターを書き込む
const mapping = {
inputUrl: "https://www.landing.com?user_id=id&cr=logo_image&ad=some_adset&c=new_campaign&product=my_product",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
customParameters: [{
in: ['product', 'user_id'],
out: 'ref_code',
transform: function (values) {
const product = values[0]
const userId = values[1]
if (product && userId) {
return `${userId}+${product}`
}
return ''
}
}]
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link?adj_token=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image&ref_code=id%2Bmy_product
iOSのディープリンク
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
iosAppSchema: "app",
iosDeeplinkPath: "path/to/screen",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link/path/to/screen?adjust_t=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image
Androidのディープリンク
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
androidAppSchema: "scheme",
androidDeeplinkPath: "some/path",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link/some/path?adjust_t=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image
iOSとAndroidのディープリンク
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
androidAppSchema: "scheme",
androidDeeplinkPath: "some/path",
iosAppSchema: "app",
iosDeeplinkPath: "path/to/screen",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://hello.go.link/path/to/screen?adjust_t=abcd1234&adjust_deeplink=scheme%3A%2F%2Fsome%2Fpath&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image
スマートスクリプトは、ブラウザーのコンソールにログを出力します。指定したマッピングでスクリプトがどのように動作するかをテストし、正しいリンクが生成されることを確認することをおすすめします。
ブラウザーで、開発者向けツールコンソールに移動します。 スマートスクリプトを実装したWebページに移動します。 [adjust-smart-script]
プレフィックスを持つログがない場合は、ページを更新します。まだログが表示されない場合は、以下のことを確認してください。コードは、AdjustSmartScript.setLogLevel('error')
またはAdjustSmartScript.setLogLevel('none')
を呼び出してログを抑制しません。 コードは、AdjustSmartScript.createLink(params)
関数を呼び出します。 inputUrl
プロパティの様々な値を使用して、複数のユースケースをテストできます。例えば、Metaキャンペーンを実施していて、オーガニックユーザーもランディングページにアクセスすることが予想される場合、キャンペーンとMetaのパラメーターを含むURLと、追加パラメーターを含まないURLの両方を設定することができます。
ログの例
[adjust-smart-script]: No networks configured
[adjust-smart-script]: Use defaultLinkToken to create adjust link
[adjust-smart-script]: Found value for campaign is new_campaign
[adjust-smart-script]: Found value for adgroup is some_adset
[adjust-smart-script]: Found value for creative is logo_image
[adjust-smart-script]: Transformed value for ref_code is id+my_product
[adjust-smart-script]: Misconfigured deep link: no valid androidAppSchema provided