Skip to content
Last updated

Microsoft Advertising

Microsoft Advertisingは、ユーザーがオンライン広告ソリューションを使用して顧客にリーチするのを支援するプラットフォームです。ユーザーは、Microsoftのプロパティとパートナーサイト全体で、検索、ディスプレイ、動画、およびネイティブ広告のキャンペーンを作成および管理できます。Microsoft Advertisingは、パフォーマンスを最適化し、広告の結果を測定し、ユーザーのオーディエンスをターゲットにするためのツールと機能も提供します。Microsoft Advertisingを使用すると、ユーザーはビジネスを成長させ、広告目標を達成できます。

前提条件

  • TD Toolbeltを含むTreasure Dataの基本的な知識。
  • Microsoft Advertising > Audience Libraryの基本的な知識。

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

TD Consoleを使用したMicrosoft Advertisingからのインポート

認証の作成

この統合では、OAuth認証を使用します。以下の手順に従って、Microsoft Advertisingアカウントへの接続を確立してください。

  1. Integrations Hubを選択します。
  2. Catalogを選択します。
  3. カタログで統合を名前「Microsoft Advertising」で検索するか、カテゴリ「Advertising」でフィルタリングします。
  4. アイコンにマウスを合わせて、Create Authenticationを選択します。
  5. Microsoft Advertisingアカウントにログインし、OAuth同意画面でリクエストを承認します。システムはカタログにリダイレクトします。
  6. Microsoft Advertisingを再度開き、認証の詳細を保存します。

Audience Libraryでcustomer matchオーディエンスを作成する(オプション)

すでにcustomer matchオーディエンスがある場合は、この手順をスキップしてください。

customer matchタイプのオーディエンスは、以下の手順でMicrosoft AdvertisingのAudience Libraryから作成できます。

  1. オーディエンスを作成し、オーディエンスの名前を指定し、タイプ = Customer match listを選択します。
  2. Microsoftが提供するテンプレートを使用します。
  3. Customer Match規約に同意して、新しいオーディエンスを作成します。
  4. 次のステップで使用するために、Account ID (aid=)、Customer ID (cid=)、およびAudience IDの値を取得します。

クエリの定義

現在のところ、customer matchオーディエンスはメールのみをサポートしています。クエリの結果には他の列が含まれる場合がありますが、必須で取得されるのはメールのみです。

この例では、35歳以上のすべてのユーザーからメールをエクスポートします。

SELECT
 email
FROM
 user_pii_short
WHERE  age > 35

エクスポート結果の設定

確立された認証を使用して、クエリ結果をMicrosoft Advertisingオーディエンスにエクスポートする手順に従ってください。

  1. Upload Type: 現在、Customer List Itemsのみがサポートされています。

  2. Account ID: Audience LibraryのオーディエンスへのURLから、aid=xxxxxx

  3. Customer ID: Audience LibraryのオーディエンスへのURLから、cid=xxxxx

  4. Audience ID: Audience Libraryから。customer match listオーディエンスを使用してください。

  5. Upload Action: Add、Remove、Replaceのアップロードアクションを選択します。

    • アクションが「Add」の場合、サービスはクエリ結果からCustomer List Itemレコードを追加しようとします。
    • アクションが「Remove」に設定されている場合、サービスはクエリ結果からCustomer List Itemレコードを削除しようとします。
    • アクションタイプが「Replace」に設定されている場合、このリストの以前のすべてのcustomer matchデータが削除され、サービスはクエリ結果からCustomer List Itemレコードを追加しようとします。
  6. Max waiting time: 分単位、15 <= max waiting time <= 1380デフォルト = 60 これは、アップロードをMicrosoftサービスに引き渡した後、アップロードジョブの次のステータスを待機する時間です。最大待機時間より前に次のステータスに達した場合、アップロードジョブは完了としてマークされます。

  7. クエリが定義されたので、クエリを実行します。

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

CLIを使用したAdobe Analyticsからのインポート

CLIを使用してコネクタを設定するには、以下の手順に従ってください。

'td' Command v0.11.9以降のインストール

最新のTreasure Data Toolbeltをインストールできます。

$ td --version

設定ファイルの作成

以下の例のように設定ファイル(例:load.yml)を準備します。前提条件 この例では、データベースからデータフィードをダンプし、Microsoft Advertisingにエクスポートします。

  • database_type: TDがサポートするデータベース(mysql、postgres、など)
  • datatbase_url: ターゲットデータベースに接続するためのURL。
  • database_port: ターゲットデータベースに接続するためのポート。
  • user_name: ターゲットデータベースに接続するための認証情報。
  • password: ターゲットデータベースに接続するための認証情報。
  • database_schema: ターゲットデータベース上の既存のスキーマ名。
  • select: ターゲットテーブルからデータを選択するSQL。
  • table: テーブル名。
  • where: データを選択するためのSQL条件。

ロードジョブの実行

ロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されているデータベースとテーブルを指定する必要があります。

td connector:issue load.yml

実行のスケジューリング

定期的なAdobe Analyticsインポートのために、定期的なデータコネクタの実行をスケジュールできます。高可用性を確保するために、スケジューラーを慎重に設定しています。この機能を使用することで、ローカルデータセンターでcronデーモンを使用する必要がなくなります。

スケジュールの作成

新しいスケジュールは、td connector:createコマンドを使用して作成できます。 スケジュールの名前、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびData Connector設定ファイルが必要です。 cronパラメータは、@hourly@daily@monthlyの3つのオプションも受け入れます。 デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートします。PST、CSTなどのタイムゾーンの略語は*サポートされておらず*、予期しないスケジュールにつながる可能性があります。

$ td connector:create \    daily_ms_ads_import \    "10 0 * * *" \    load.yml

スケジュールの一覧表示

現在スケジュールされているエントリの一覧は、td connector:listで確認できます

スケジュールの設定と履歴の表示

スケジュールエントリの実行設定は、td connector:showで表示できます

td connector:show daily_ms_advertising_exportName

設定可能なオプション

ParametersDescriptionTypeDefault valueRequire?
typems_adsである必要がありますStringRequired
refresh_client現在、Customer List Itemsのみがサポートされています。StringRequired
upload_typeStringRequired
account_idAccount ID: Audience LibraryのオーディエンスへのURLから、aid=xxxxxxNumberRequired
customer_idCustomer ID: Audience LibraryのオーディエンスへのURLから、cid=xxxxxStringRequired
audience_idAudience Libraryから。customer match listオーディエンスを使用してください。StringRequired
upload_actionアップロードアクションを選択 - Add - Remove - ReplaceEnumAddRequired
wait_for_next_status大きな入力の場合、小さなバッチに分割して1つずつ更新する必要があります。この属性は、現在のアップロードが完了(SuccessFailedステータス)するのを待つか、次のバッチに移る前に待たないかを決定します。- true: <waiting_time_in_minutes>に達するまで次のステータスを待ちます - false: バッチを実行し、完了を待たずに次のバッチを処理します。Booleantrue
waiting_time_in_minutesバッチが完了するのをプロセスが待機する時間。この時間を過ぎるとタイムアウトまたは失敗として扱われます。Number60
skip_invalid_record- true: すべての無効なレコードはスキップされます。 - false: すべてのレコードを送信します。Booleantrue