:wave: Have any of you used <tap-linkedin-ads>? :t...
# singer-taps
r
đź‘‹ Have any of you used tap-linkedin-ads? đź§µ
When following the verify app step, we could not find
Marketing Developer Platform
as an option in the LinkedIn developers portal. There is a
Advertising API
option — has anyone successfully gotten approval for this and used the permissions with this tap?
t
Hey Ravi! We’re actually going to be landing our own variant of tap-linkedin-ads in the MeltanoLabs org on GitHub later this week. Might be worth checking out. cc @edward_ryan
g
Hi Ravi - Did you get any joy from tap-linkedin-ads? I've been experimenting with https://hub.meltano.com/extractors/tap-linkedin-ads--meltanolabs/ but it seems to be ignoring the setting for which ad accounts to extract data from. Any suggestions? @taylor - might be interesting for you too?
r
Hi @gary_elliott - tl;dr — No, no joy…_yet._ For the meltanolabs one, we couldn’t figure out is how to get the LinkedInAds Owner ID. Do you know how to get that value?
My teammate @alexa_steiner has been exploring the taps — I’ll let her chime in
g
Yeah, I couldn't figure that out, but I looked on here and owner id didn't seem to be required https://github.com/MeltanoLabs/tap-linkedin-ads
t
@neil_gorman can you chime in here?
a
I was a little confused by the README. It seems that the table (which states that the Owner ID is not required) conflicts with the list of variables that are required to be set for use with Meltano. https://github.com/MeltanoLabs/tap-linkedin-ads#meltano-variables I still haven't been able to successfully run the tap. I've been getting an error about having a missing or bad parameter so I'm still troubleshooting that.
g
My meltano.yml looks something like this
name: tap-linkedin-ads variant: meltanolabs pip_url: git+https://github.com/MeltanoLabs/tap-linkedin-ads.git config: accounts: '********' campaign: '********' start_date: '2023-05-20T000000+00:00' user_agent: *********** api_version: '202302' select: - account.id - account.status - campaign.account - campaign.account_id - campaign.id - campaign.name
The other bits like TAP_LINKEDIN_ADS_ACCESS_TOKEN are set in .env
I can get it to run, but it seems to ignore the accounts I've specified.
e
Hi all, we helped develop this tap and will circle back shortly @alexa_steiner thank you for the feedback on README, we can clarify this
p
I have a draft PR with some proposed changes and cleanup https://github.com/MeltanoLabs/tap-linkedin-ads/pull/57
n
Hey @alexa_steiner @gary_elliott: Owner ID is a required config option and is listed under configuration, but was set to false in the settings table. @ravi_thinakkal: The Owner ID can be found by making a request to the adAccounts endpoint: https://api.linkedin.com/rest/adAccounts?q=search&amp;start=0&amp;count=10 It can be found in the response within “reference”. Example in postman:
r
Awesome @neil_gorman!
g
Thanks @neil_gorman . I can get the tap to run. But I give it an account id and a campaign id
But the tap seems to ignore those config settings and I get other campaigns from other account ids.
e
Thank you for flagging @gary_elliott, we are checking this out and will circle back today with a solution
n
Hey @gary_elliott, we tested the connector using 1) ENV variables, 2) hardcoding meltano.yml settings and 3) hardcoding Meltano configs, but it runs fine. Can you confirm that the account id you are using in the parameter is the same as the account id’s connected to your LinkedIn campaigns? You can check to see what campaigns are attached to an account id in the LinkedIn campaigns manager (ss) The campaigns endpoint pulls all campaign data available to your access token, and is not specific to
account
or any Meltano settings
@edward_ryan @lucas_thorne tagging you for visibility
g
@neil_gorman - Thanks for the support. I really appreciate you looking into this. I can confirm: Account ID is the same one in LI Ad account, meltano.yml and API token. (ending 333) Campaign ID is the same in LI Ad account and meltano.yml (ending 693) Screenshots attached. Any other suggestions?
e
Hi @gary_elliott, I work with @neil_gorman at RM. Thank you for using this Meltano tap! To my knowledge, the "campaigns" endpoint does not use the
accounts
config. Your app settings / access token ultimately drive the
account_id
values you see in SQL.
accounts
in the tap is used for the "AccountUsers" and "VideoAds" endpoints If you create an access token tied only to one ad account does that change the SQL output? We are also happy to meet with you in a working session to review @lucas_thorne @ethan_stein for visibility (let's make this clearer in docs)
p
If I'm understanding the thread correctly it sounds like the tap isnt filtering campaigns using the accounts setting. I'm not sure if its intended to or not and what the limitations of the API are but from a quick browse of the singer-io code it looks like they set an
account_filter
attribute on their stream which then gets used in some conditional logic to add some parameters to the request in https://github.com/singer-io/tap-linkedin-ads/blob/3e07935eedf2ca9a600018ac780470ec294410a2/tap_linkedin_ads/sync.py#LL113C29-L113C50. The odd thing is that those parameters dont seem to be documented in https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structur[…]e/create-and-manage-campaigns?view=li-lms-2023-05&amp;tabs=http. If someone has a chance can they test it the
search.account.values[]
parameter works? If so its probably an easy add.
g
@edward_ryan - The access token is only tied to one ad account and the output is the same. @pat_nadolny - You've summed it up nicely. The tap doesn't seem to use the account or the campaign settings to filter.
e
Thanks @pat_nadolny. We are looking into that feature now and should have an update by tomorrow @gary_elliott thank you for the feedback. We will keep you posted as well cc: @lucas_thorne @ethan_stein @neil_gorman
g
@edward_ryan - How's it going? Any updates?
l
Hey @gary_elliott, I work with Ed and Neil at RM, I am taking over as point of contact for this issue. We are working on an update to Tap-LinkedIn-Ads which is compatible with the newest LinkedIn version 202305 update, which will be done shortly. This new LinkedIn version uses both the account and campaigns settings in its requests to the campaigns endpoint, which should narrow your campaign data to only your account setting. We will update you once that is merged.
Hey @gary_elliott, We have migrated the 202305 version of the LinkedIn tap. These changes will limit campaigns data to the account IDs that you provide. Happy to set up time to walk through it. Let me know if you have any questions and thank you for your patience, Lucas
g
@lucas_thorne Thanks for the update. I've got it working. Can I give the config multiple campaign or creative ids? It seems to only allow 1 value in the campaign_group, campaign, creative config settings. As you can imagine, most campaign_groups contain many campaigns and each campaign can contain dozens of creatives.
l
Hey @gary_elliott, I'm glad that fixed your problem. The current version only allows you to run a pipeline for a single id.
@gary_elliott We are working to update this and should have it ready by end of month. I will keep you updated!
a
Hi there! I have been working on implementing the LinkedIn Ads tap and am running into an issue when using the tap with the redshift target. The stream that I'm trying to pull in is the
ad_analytics_by_campaign
stream. The issue that I'm running into is that the tap is using the
campaign_id
and
daterange
as the key properties for the table, but
daterange
is always null so only one row gets inserted into the table for each
campaign_id
. I've tried setting different
table-key-properties
in the metadata for that stream, but that wasn't successful. Is there anything else that I can try here? Thanks!
e
Hi @alexa_steiner thank you for flagging this. We are checking it out
a
I created a fork of the tap-linkedin-ads repository today and found that changing the primary_keys here gave me the results that I expected. I changed the line to be:
Copy code
primary_keys = ["campaign_id", "day"]
and was able to load in a row for each day for each campaign id.
p
@alexa_steiner great! Would you be open to creating a PR to the meltano labs repo to get this fix added? 🙏
a