Skip to main content

`tap-linkedin-ads` is a Singer tap for linkedin, built with the Meltano SDK for Singer Taps.

Project description

tap-linkedin-ads

Singer tap for extracting data from the LinkedIn Ads Marketing API.

Built with the Meltano Singer SDK.

Capabilities

  • catalog
  • state
  • discover
  • about
  • stream-maps
  • schema-flattening

Settings

Setting Required Default Description
access_token True None The token to authenticate against the API service
start_date True None The earliest record date to sync
end_date False 2023-05-09 02:04:18.151589 The latest record date to sync
user_agent False tap-linkedin-ads <api_user_email@your_company.com> API ID
api_version False 202207 LinkedInAds API Version
accounts True None LinkedInAds Account ID
campaign True None LinkedInAds Campaign ID
owner True None LinkedInAds Owner ID
stream_maps False None Config object for stream maps capability. For more information check out Stream Maps.
stream_map_config False None User-defined config values to be used within map expressions.
flattening_enabled False None 'True' to enable schema flattening and automatically expand nested properties.
flattening_max_depth False None The max depth to flatten schemas.

A full list of supported settings and capabilities is available by running: tap-linkedin-ads --about

Owner

The owner setting is required for pulling data from the VideoAds endpoint. You can find the owner ID by making a request to the adAccounts endpoint:

https://api.linkedin.com/rest/adAccounts?q=search&start=0&count=10

The owner ID can be found in the response under "reference": "urn:li:organization:{OWNER}"

Installation

pipx install git+https://github.com/MeltanoLabs/tap-linkedin-ads.git@main

Authentication

The tap requires a LinkedInAds OAuth 2.0 access token to make API requests

The access token requires the following permissions:

r_ads: read ads rw_ads: read-write ads r_ads_reporting: read ads reporting

Access tokens expire after 60 days and require a user to manually authenticate again. See the LinkedInAds API docs for more info

Usage

AdAnalytics API Column Limitation

The AdAnalytics endpoint in the LinkedInAds API can call up to 20 columns at a time, we can create child classes which have 20 columns in them, we can merge their output with get records function.

SDK X-Restli-Protocol Limitation

The creatives endpoint requires X-Restli-Protocol to be set to 2.0.0. The request URL for tap-linkedin-ads uses parentheses ‘()’. '(' and ')' are typically encoded in a request URL, but are not when the X-Restli-Protocol is 2.0.0. An SDK update for expanded escape characters is currently WIP [link github issue]

Metadata Columns

  • add_metadata_columns: Setting this config to 'true' adds the _SDC_BATCHED_AT, _SDC_DELETED_AT and _SDC_EXTRACTED_AT metadata columns to the loaded tables

Elastic License 2.0

The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software.

Executing the Tap Directly

tap-linkedin-ads --version
tap-linkedin-ads --help
tap-linkedin-ads --config CONFIG --discover > ./catalog.json

Contributing

This project uses parent-child streams. Learn more about them here.

Initialize your Development Environment

pipx install poetry
poetry install

Create and Run Tests

Create tests within the lib_tap_linkedin_ads_sdk/tests subfolder and then run:

poetry run pytest

You can also test the tap-linkedin-ads CLI interface directly using poetry run:

poetry run tap-linkedin-ads --help

Testing with Meltano

Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.

Next, install Meltano (if you haven't already) and any needed plugins:

# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-linkedin-ads
meltano install tap-linkedin-ads

Now you can test and orchestrate using Meltano:

# Test invocation:
meltano invoke tap-linkedin-ads --version
# OR run a test `elt` pipeline:
meltano elt tap-linkedin-ads target-jsonl

SDK Dev Guide

See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meltano_tap_linkedin_ads-0.0.1a2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

meltano_tap_linkedin_ads-0.0.1a2-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file meltano_tap_linkedin_ads-0.0.1a2.tar.gz.

File metadata

File hashes

Hashes for meltano_tap_linkedin_ads-0.0.1a2.tar.gz
Algorithm Hash digest
SHA256 f2d5e481ac76db19ec5e5d83c67b9afac63e8333dbc54d20239d9efe4489f3e6
MD5 bbd7bd447400754df80c2347447060d3
BLAKE2b-256 7372fb51a7e200caa7d813b015d6c846486d282676250b742577a69934180327

See more details on using hashes here.

File details

Details for the file meltano_tap_linkedin_ads-0.0.1a2-py3-none-any.whl.

File metadata

File hashes

Hashes for meltano_tap_linkedin_ads-0.0.1a2-py3-none-any.whl
Algorithm Hash digest
SHA256 66a9916a087f42e1879e072d24cf034718ef3f27ae75942d6aa7c32aa38a099d
MD5 0488aca0b789d43c00f38e4bc897f93a
BLAKE2b-256 1738d99f99ea689f7006eeba59aceae964b6788860caa41d4d4a836a547ed055

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page